Canary-Bereitstellungen von Amazon ECS - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Canary-Bereitstellungen von Amazon ECS

Bereitstellungen auf Canary leiten zunächst einen kleinen Prozentsatz des Datenverkehrs für erste Tests an die neue Version weiter und verlagern dann den gesamten verbleibenden Datenverkehr auf einmal, nachdem die kanarische Phase erfolgreich abgeschlossen wurde. Mit den kanarischen Bereitstellungen von Amazon ECS können Sie neue Service-Revisionen mit echtem Benutzerverkehr validieren und gleichzeitig das Risiko minimieren. Dieser Ansatz bietet eine kontrollierte Methode zur Implementierung von Änderungen mit der Möglichkeit, die Leistung zu überwachen und bei erkannten Problemen schnell ein Rollback durchzuführen.

Ressourcen, die für eine Bereitstellung auf Canary erforderlich sind

Die folgenden Ressourcen sind Teil der Bereitstellung von Amazon ECS Canary:

  • Verkehrsverlagerung — Der Prozess, den Amazon ECS verwendet, um den Produktionsverkehr zu verlagern. Bei kanarischen Amazon ECS-Bereitstellungen wird der Datenverkehr in zwei Phasen verlagert: zuerst auf den kanarischen Prozentsatz, dann bis die Bereitstellung abgeschlossen ist.

  • Canary-Prozentsatz — Der Prozentsatz des Datenverkehrs, der während des Testzeitraums an die neue Version weitergeleitet wurde.

  • Canary-Bake-Zeit — Die Dauer, für die die Canary-Version überwacht werden muss, bevor mit der vollständigen Bereitstellung fortgefahren wird.

  • Bereitstellungszeit — Die Zeit in Minuten, die Amazon ECS nach der Umstellung des gesamten Produktionsverkehrs auf die neue Service-Revision wartet, bevor die alte Service-Revision beendet wird. Dies ist die Dauer, in der sowohl die blaue als auch die grüne Service-Revision gleichzeitig ausgeführt werden, nachdem sich der Produktionsdatenverkehr verlagert hat.

  • Lebenszyklusphasen – Eine Reihe von Ereignissen während des Bereitstellungsvorgangs, z. B. „nach der Verschiebung des Produktionsdatenverkehrs“.

  • Lifecycle-Hook — Eine Lambda-Funktion, die in einer bestimmten Lebenszyklusphase ausgeführt wird. Sie können eine Funktion erstellen, die die Bereitstellung verifiziert.

  • Zielgruppe — Eine ELB-Ressource, die verwendet wird, um Anfragen an ein oder mehrere registrierte Ziele (z. B. EC2 Instanzen) weiterzuleiten. Wenn Sie einen Listener erstellen, geben Sie eine Zielgruppe für die Standardaktion an. Der Datenverkehr wird an die in der Listener-Regel angegebene Zielgruppe weitergeleitet.

  • Listener — Eine ELB-Ressource, die mithilfe des von Ihnen konfigurierten Protokolls und Ports nach Verbindungsanfragen sucht. Die Regeln, die Sie für einen Listener definieren, bestimmen, wie der Amazon ECS Anforderungen an registrierte Ziele weiterleitet.

  • Regel — Eine ELB-Ressource, die einem Listener zugeordnet ist. Eine Regel definiert, wie Anfragen weitergeleitet werden, und besteht aus einer Aktion, einer Bedingung und einer Priorität.

Überlegungen

Berücksichtigen Sie bei der Auswahl eines Bereitstellungstyps Folgendes:

  • Ressourcennutzung: Bei Bereitstellungen auf Canary werden während des Testzeitraums sowohl originale als auch Canary-Tasksets gleichzeitig ausgeführt, wodurch der Ressourcenverbrauch steigt.

  • Verkehrsaufkommen: Stellen Sie sicher, dass der Prozentsatz der Canary-Benutzer ausreichend Traffic generiert, um eine aussagekräftige Validierung der neuen Version zu ermöglichen.

  • Komplexität überwachen: Bei Bereitstellungen auf Canary müssen die Metriken zweier verschiedener Versionen gleichzeitig überwacht und verglichen werden.

  • Rollback-Geschwindigkeit: Bereitstellungen auf Canary ermöglichen ein schnelles Rollback, indem der Datenverkehr wieder auf den ursprünglichen Aufgabenbereich verlagert wird.

  • Risikominderung: Bereitstellungen auf Canary bieten eine hervorragende Risikominderung, indem sie das Risiko auf einen kleinen Prozentsatz von Benutzern beschränken.

  • Bereitstellungsdauer: Die Bereitstellungen auf den Kanarischen Inseln beinhalten Evaluierungszeiträume, die die Gesamtbereitstellungszeit verlängern, aber auch Möglichkeiten zur Validierung bieten.

So funktionieren Bereitstellungen auf Canary

Der Bereitstellungsprozess von Amazon ECS Canary folgt einem strukturierten Ansatz mit sechs verschiedenen Phasen, die sichere und zuverlässige Anwendungsupdates gewährleisten. Jede Phase dient einem bestimmten Zweck bei der Validierung und Umstellung Ihrer Anwendung von der aktuellen Version (blau) auf die neue Version (grün).

  1. Vorbereitungsphase: Erstellen Sie die grüne Umgebung neben der bestehenden blauen Umgebung.

  2. Bereitstellungsphase: Stellen Sie die neue Service-Revision in der grünen Umgebung bereit. Amazon ECS startet neue Aufgaben mit der aktualisierten Service-Revision, während die blaue Umgebung weiterhin den Produktionsdatenverkehr bedient.

  3. Testphase: Validieren Sie die grüne Umgebung mithilfe von Test-Datenverkehrs-Routing. Der Application Load Balancer leitet Testanfragen an die grüne Umgebung weiter, während der Produktionsverkehr weiterhin blau ist.

  4. Phase der Verkehrsverlagerung auf Canary: Während der Canary-Phase wird der konfigurierte Prozentsatz des Traffics auf die neue Green Service-Version umgestellt, gefolgt von einer Umstellung von 100,0% des Traffics auf die Green Service-Version

  5. Überwachungsphase: Überwachen Sie den Zustand der Anwendung, die Leistungsmetriken und den Alarmstatus während der Bake-Zeit. Ein Rollback-Vorgang wird eingeleitet, wenn Probleme erkannt werden.

  6. Abschlussphase: Schließen Sie die Bereitstellung ab, indem Sie die blaue Umgebung beenden.

Die Phase der Verkehrsverlagerung auf die Kanarischen Inseln folgt diesen Schritten:

  • Anfänglich — Die Bereitstellung beginnt damit, dass 100% des Datenverkehrs an die blaue (aktuelle) Service-Version weitergeleitet werden. Die grüne (neue) Dienstversion empfängt Testdatenverkehr, aber zunächst keinen Produktionsdatenverkehr.

  • Verkehrsverlagerung auf die Kanarischen Inseln — Dies ist eine zweistufige Strategie zur Verkehrsverlagerung.

    • Schritt 1:10,0% auf Grün, 90,0% auf Blau

    • Schritt 2:100,0% zu Grün, 0,0% zu Blau

  • Canary Bake Time — Wartet nach der Umstellung auf Canary Traffic auf eine konfigurierbare Dauer (Canary Bake Time), damit die Leistung der neuen Version bei der erhöhten Verkehrslast überwacht und validiert werden kann.

  • Lifecycle-Hooks — Optionale Lambda-Funktionen können während der Bereitstellung in verschiedenen Lebenszyklusphasen ausgeführt werden, um automatisierte Validierung, Überwachung oder benutzerdefinierte Logik durchzuführen. Für PRODUCTION_TRAFFIC_SHIFT konfigurierte Lambda-Funktionen oder Lifecycle-Hooks werden bei jedem Produktions-Traffic-Shift-Schritt aufgerufen.

Lebenszyklusphasen der Bereitstellung

Der Bereitstellungsprozess bei Canary durchläuft verschiedene Lebenszyklusphasen, von denen jede spezifische Verantwortlichkeiten und Validierungsprüfpunkte umfasst. Wenn Sie diese Phasen verstehen, können Sie den Bereitstellungsfortschritt überwachen und Probleme effektiv beheben.

Jede Lebenszyklusphase kann bis zu 24 Stunden dauern, und zusätzlich kann jeder Verkehrsverlagerungsschritt in PRODUCTION_TRAFFIC_SHIFT bis zu 24 Stunden dauern. Wir empfehlen, dass der Wert unter 24 Stunden bleibt. Das liegt daran, dass asynchrone Prozesse Zeit benötigen, um die Hooks auszulösen. Das System hat eine Zeitüberschreitung, schlägt bei der Bereitstellung fehl und leitet dann ein Rollback ein, wenn eine Phase 24 Stunden erreicht hat.

CloudFormation Bereitstellungen haben zusätzliche Timeout-Einschränkungen. Das CloudFormation 24-Stunden-Phasenlimit bleibt zwar in Kraft, erzwingt jedoch ein Limit von 36 Stunden für die gesamte Bereitstellung. CloudFormation schlägt bei der Bereitstellung fehl und leitet dann ein Rollback ein, wenn der Vorgang nicht innerhalb von 36 Stunden abgeschlossen ist.

Lebenszyklusphasen
Lebenszyklusphasen Description Unterstützung für Lebenszyklus-Hooks
RECONCILE_SERVICE Diese Phase tritt nur ein, wenn Sie eine neue Servicebereitstellung mit mehr als einer Service-Revision im Status ACTIVE starten. Ja
PRE_SCALE_UP Die grüne Service-Revision wurde nicht gestartet. Die blaue Service-Revision wickelt 100 % des Produktionsdatenverkehrs ab. Es gibt keinen Test-Datenverkehr. Ja
SCALE_UP Der Zeitpunkt, zu dem die grüne Service-Revision auf 100 % aufskaliert wird und neue Aufgaben gestartet werden. Die grüne Service-Revision bedient derzeit keinen Datenverkehr. Nein
POST_SCALE_UP Die grüne Service-Revision wurde gestartet. Die blaue Service-Revision wickelt 100 % des Produktionsdatenverkehrs ab. Es gibt keinen Test-Datenverkehr. Ja
TEST_TRAFFIC_SHIFT Die blauen und grünen Service-Revisionen werden ausgeführt. Die blaue Service-Revision wickelt 100 % des Produktionsdatenverkehrs ab. Die grüne Service-Revision wird von 0 auf 100 % des Test-Datenverkehrs migriert. Ja
POST_TEST_TRAFFIC_SHIFT Die Verlagerung des Test-Datenverkehrs ist abgeschlossen. Die grüne Service-Revision wickelt 100 % des Test-Datenverkehrs ab. Ja
PRODUCTION_TRAFFIC_SHIFT Der Canary-Produktionsdatenverkehr wird an die grüne Version weitergeleitet und der Lifecycle-Hook wird mit einem Timeout von 24 Stunden aufgerufen. Im zweiten Schritt wird der verbleibende Produktionsverkehr auf Green Revision umgestellt. Ja
POST_PRODUCTION_TRAFFIC_SHIFT Die Verlagerung des Produktionsdatenverkehrs ist abgeschlossen. Ja
BAKE_TIME Die Dauer, in der sowohl die blaue als auch die grüne Service-Revision gleichzeitig ausgeführt werden. Nein
CLEAN_UP Die blaue Service-Revision wurde vollständig auf 0 laufende Aufgaben herunterskaliert. Die grüne Service-Revision ist nach dieser Phase nun die Service-Revision der Produktion. Nein

Konfigurationsparameter

Für Bereitstellungen auf Canary sind die folgenden Konfigurationsparameter erforderlich:

  • Kanarischer Prozentsatz — Der Prozentsatz des Datenverkehrs, der während der kanarischen Phase an die neue Version des Dienstes weitergeleitet wurde. Dies ermöglicht Tests mit einer kontrollierten Teilmenge des Produktionsdatenverkehrs.

  • Canary Bake Time — Die Wartezeit während der Canary-Phase, bevor der restliche Traffic auf die neue Service-Version umgestellt wird. Dies gibt Zeit, um die neue Version zu überwachen und zu validieren.

Verwaltung des Datenverkehrs

Bei Bereitstellungen auf Canary werden Load Balancer-Zielgruppen verwendet, um die Verteilung des Datenverkehrs zu verwalten:

  • Ursprüngliche Zielgruppe — Enthält Aufgaben aus der aktuellen stabilen Version und erhält den Großteil des Datenverkehrs.

  • Kanarische Zielgruppe — Enthält Aufgaben aus der neuen Version und erhält einen kleinen Teil des Traffics zu Testzwecken.

  • Gewichtetes Routing — Der Load Balancer verwendet gewichtete Routing-Regeln, um den Verkehr auf der Grundlage des konfigurierten Canary-Prozentsatzes auf die Zielgruppen zu verteilen.

Überwachung und Validierung

Effektive Bereitstellungen auf Canary-Computern sind auf eine umfassende Überwachung angewiesen:

  • Zustandsprüfungen — Beide Aufgabensätze müssen Integritätsprüfungen bestehen, bevor sie Traffic empfangen.

  • Vergleich von Kennzahlen — Vergleichen Sie wichtige Leistungsindikatoren zwischen der Original- und der Canary-Version, wie Reaktionszeit, Fehlerrate und Durchsatz.

  • Automatisches Rollback — Konfigurieren Sie CloudWatch Alarme so, dass automatisch ein Rollback ausgelöst wird, wenn die Canary-Version eine verminderte Leistung aufweist.

  • Manuelle Validierung — Nutzen Sie den Testzeitraum, um Protokolle, Kennzahlen und Benutzerfeedback manuell zu überprüfen, bevor Sie fortfahren.

Bewährte Methoden für Bereitstellungen auf Canary

Folgen Sie diesen bewährten Methoden, um erfolgreiche Bereitstellungen mit Diensten auf Canary sicherzustellen.

Wählen Sie die entsprechenden Prozentsätze für den Traffic

Berücksichtigen Sie bei der Auswahl der prozentualen Verkehrszahlen auf Canary die folgenden Faktoren:

  • Fangen Sie klein an — Beginnen Sie mit 5 bis 10% des Traffics, um die Auswirkungen zu minimieren, falls Probleme auftreten.

  • Berücksichtigen Sie die Wichtigkeit von Anwendungen — Verwenden Sie kleinere Prozentsätze für unternehmenskritische Anwendungen und höhere Prozentsätze für weniger kritische Dienste.

  • Verkehrsaufkommen berücksichtigen — Stellen Sie sicher, dass der kanarische Prozentsatz ausreichend Traffic für eine aussagekräftige Validierung generiert.

Legen Sie angemessene Bewertungszeiträume fest

Konfigurieren Sie Evaluierungszeiträume auf der Grundlage der folgenden Überlegungen:

  • Genügend Zeit einplanen — Legen Sie Testzeiträume fest, die lang genug sind, um aussagekräftige Leistungsdaten zu erfassen, typischerweise 10—30 Minuten.

  • Verkehrsmuster berücksichtigen — Berücksichtigen Sie die Datenverkehrsmuster und die Spitzennutzungszeiten Ihrer Anwendung.

  • Balance zwischen Geschwindigkeit und Sicherheit — Längere Evaluierungszeiträume liefern mehr Daten, verlangsamen aber die Bereitstellungsgeschwindigkeit.

Implementieren Sie eine umfassende Überwachung

Richten Sie eine Überwachung ein, um die Leistung der Canary-Implementierung zu verfolgen:

  • Wichtige Kennzahlen — Überwachen Sie die Reaktionszeit, die Fehlerrate, den Durchsatz und die Ressourcenauslastung für beide Tasksets.

  • Alarmbasiertes Rollback — Konfigurieren Sie CloudWatch Alarme so, dass sie automatisch einen Rollback auslösen, wenn Metriken Schwellenwerte überschreiten.

  • Vergleichende Analyse — Richten Sie Dashboards ein, um Metriken zwischen Original- und Kanarienversionen zu vergleichen. side-by-side

  • Geschäftskennzahlen — Fügen Sie neben technischen Kennzahlen auch geschäftsspezifische Kennzahlen wie Konversionsraten oder Nutzerinteraktion hinzu.

Planen Sie Rollback-Strategien

Bereiten Sie sich mit diesen Strategien auf mögliche Rollback-Szenarien vor:

  • Automatisiertes Rollback — Konfigurieren Sie automatische Rollback-Trigger auf der Grundlage von Integritätsprüfungen und Leistungskennzahlen.

  • Manuelle Rollback-Verfahren — Dokumentieren Sie klare Verfahren für manuelles Rollback, wenn automatische Trigger nicht alle Probleme erfassen.

  • Rollback-Tests — Testen Sie regelmäßig Rollback-Verfahren, um sicherzustellen, dass sie bei Bedarf korrekt funktionieren.

Vor der Bereitstellung gründlich validieren

Sorgen Sie für eine gründliche Validierung, bevor Sie mit den Bereitstellungen auf Canary fortfahren:

  • Tests vor der Implementierung — Testen Sie die Änderungen in den Staging-Umgebungen vor der Bereitstellung von Canary gründlich.

  • Konfiguration der Integritätsprüfung — Stellen Sie sicher, dass Integritätsprüfungen die Anwendungsbereitschaft und Funktionalität genau widerspiegeln.

  • Überprüfung der Abhängigkeiten — Stellen Sie sicher, dass neue Versionen mit Downstream- und Upstream-Diensten kompatibel sind.

  • Datenkonsistenz — Stellen Sie sicher, dass Datenbankschemaänderungen und Datenmigrationen abwärtskompatibel sind.

Koordinieren Sie die Beteiligung des Teams

Sorgen Sie für eine effektive Teamkoordination bei Einsätzen auf Canary-Geräten:

  • Bereitstellungsfenster — Planen Sie die Bereitstellung von Canary-Programmen während der Geschäftszeiten, wenn die Teams für die Überwachung und Reaktion zur Verfügung stehen.

  • Kommunikationskanäle — Richten Sie klare Kommunikationskanäle für den Bereitstellungsstatus und die Eskalation von Problemen ein.

  • Rollenzuweisungen — Definieren Sie Rollen und Zuständigkeiten für die Überwachung, Entscheidungsfindung und Rollback-Ausführung.