Ich habe die AWS-Dokumentation zu Bereitstellung von Versionen ohne Ausfallzeiten , aka CNAME swapping .
Wie yegor256 erklärt es in diese Antwort :
Das einzige, was es tut, ist nur den Austausch von zwei CNAMEs. Zum Beispiel haben Sie eine Umgebung foo-1 mit CNAME foo-1.example.com und eine weitere foo-2 mit CNAME foo-2.example.com. Nach der Auslagerungsoperation reagiert die Umgebung foo-1 auf Ссылка .
Das Problem ist also, dass Sie nicht sofort den gesamten Verkehr umschalten, sondern nur den neuen Verkehr. Vorhandener Datenverkehr wird weiterhin den vorherigen CNAME-Eintrag für bis zu TTL Sekunden verwenden, sodass zwei Versionen für diesen kurzen Zeitraum koexistieren (300 Sekunden oder mehr nach Arun Kumar ).
Das sieht für mich akzeptabel aus , wenn zwei Versionen der Anwendung zusammenarbeiten können .
Einige Releases unserer App enthalten jedoch Datenbank-Patches, die direkt nach dem Entfernen der alten Version und unmittelbar vor der Einführung der neuen Version ausgeführt werden müssen.
Es sieht also so aus, als ob der CNAME-Swapping für das, was wir tun, nicht gut genug ist, da die alte App-Version nach dem Patchen der Datenbank abbrechen würde.
Idealerweise möchte ich:
Dies würde die Ausfallzeit von 503 Service Unavailable
, nur auf wenige Sekunden reduzieren, wenn Patches angewendet werden .
Ist das möglich? Oder habe ich nicht das ganze Bild richtig gesehen, und fehlt mir eine einfachere Lösung?
Hier sind einige andere Strategien, die Sie verwenden können, um eine Zero-Downtime-Bereitstellung auf Elastic Beanstalk durchzuführen: Ссылка
Tags und Links elastic-beanstalk