Service Connect-Ressourcen für Amazon ECS-Blau/Grün-Bereitstellungen - Amazon Elastic Container Service

Service Connect-Ressourcen für Amazon ECS-Blau/Grün-Bereitstellungen

Wenn Sie Service Connect mit Blau/Grün-Bereitstellungen verwenden, müssen Sie bestimmte Komponenten konfigurieren, um ein korrektes Routing des Datenverkehrs zwischen den blauen und grünen Service-Revisionen zu ermöglichen. In diesem Abschnitt werden die erforderlichen Komponenten und ihre Konfiguration erläutert.

Übersicht über die Architektur

Service Connect erstellt sowohl Serviceerkennungs- als auch Service-Mesh-Funktionen über einen verwalteten Sidecar-Proxy, der automatisch in Ihre Amazon-ECS-Aufgaben eingefügt wird. Diese Proxys kümmern sich um Routing-Entscheidungen, Wiederholungen und die Erfassung von Metriken, während AWS Cloud Map das Service-Registry-Backend bereitstellt. Wenn Sie einen Service mit aktiviertem Service Connect bereitstellen, registriert sich der Service selbst in AWS Cloud Map, und die Client-Services erkennen ihn über den Namespace.

In einer standardmäßigen Service-Connect-Implementierung stellen Client-Services eine Verbindung zu logischen Service-Namen her, und der Sidecar-Proxy übernimmt das Routing zu den eigentlichen Service-Instances. Bei Blau-Grün-Bereitstellungen wird dieses Modell um das Routing von Test-Datenverkehr durch die Konfiguration testTrafficRules erweitert.

Bei einer Blau/Grün-Bereitstellung arbeiten die folgenden Schlüsselkomponenten zusammen:

  • Service-Connect-Proxy: Der gesamte Datenverkehr zwischen Services wird über den Service-Connect-Proxy geleitet, der Routing-Entscheidungen auf der Grundlage der Konfiguration trifft.

  • AWS Cloud Map-Registrierung: Sowohl blaue als auch grüne Bereitstellungen werden bei AWS Cloud Map registriert, aber die Grün-Bereitstellung wird zunächst als „Test“-Endpunkt registriert.

  • Test-Datenverkehrs-Routing: Die testTrafficRules in der Service-Connect-Konfiguration bestimmen, wie Test-Datenverkehr identifiziert und an die Grün-Bereitstellung weitergeleitet werden soll. Dies wird durch Header-basiertes Routing erreicht, bei dem spezifische HTTP-Header in den Anfragen den Datenverkehr an die Test-Revision weiterleiten. Standardmäßig erkennt Service Connect den x-amzn-ecs-blue-green-test-Header für HTTP-basierte Protokolle, wenn keine benutzerdefinierten Regeln angegeben sind.

  • Client-Konfiguration: Alle Clients im Namespace erhalten automatisch sowohl Produktions- als auch Testrouten, aber nur Anfragen, die den Testregeln entsprechen, werden an die Grün-Bereitstellung weitergeleitet.

Das Besondere an diesem Ansatz ist, dass er die Komplexität der Serviceerkennung bei Übergängen bewältigt. Wenn der Datenverkehr von der blauen zur grünen Bereitstellung wechselt, werden alle Konnektivitäts- und Erkennungsmechanismen automatisch aktualisiert. Es ist nicht erforderlich, DNS-Einträge zu aktualisieren, Load Balancer neu zu konfigurieren oder Änderungen der Serviceerkennung separat bereitzustellen, da das Service Mesh alles erledigt.

Routing und Testen des Datenverkehrs

Service Connect bietet erweiterte Funktionen für das Datenverkehrs-Routing für Blau/Grün-Bereitstellungen, einschließlich Header-basiertem Routing und Client-Alias-Konfiguration für Testszenarien.

Header-Regeln für Test-Datenverkehr

Bei Blau/Grün-Bereitstellungen können Sie Header-Regeln für den Test-Datenverkehr so konfigurieren, dass bestimmte Anfragen zu Testzwecken an die grüne (neue) Service-Revision weitergeleitet werden. Auf diese Weise können Sie die neue Version mit kontrolliertem Datenverkehr validieren, bevor Sie die Bereitstellung abschließen.

Service Connect verwendet Header-basiertes Routing, um Test-Datenverkehr zu identifizieren. Standardmäßig erkennt Service Connect den x-amzn-ecs-blue-green-test-Header für HTTP-basierte Protokolle, wenn keine benutzerdefinierten Regeln angegeben sind. Wenn dieser Header in einer Anforderung vorhanden ist, leitet der Service-Connect-Proxy die Anforderung automatisch zum Testen an die Grün-Bereitstellung weiter.

Mithilfe von Testdatenverkehrsheaderregeln können Sie:

  • Anfragen mit bestimmten Headern an die grüne Serviceversion weiterleiten

  • Neue Funktionen mit einem Teil des Datenverkehrs testen

  • Das Serviceverhalten vor dem vollständigen Cutover des Datenverkehrs validieren

  • Implementieren von Canary-Teststrategien

  • Integrationstests in einer produktionsähnlichen Umgebung durchführen

Der Header-basierte Routing-Mechanismus funktioniert nahtlos in Ihrer bestehenden Anwendungsarchitektur. Client-Services müssen sich des Blau/Grün-Bereitstellungsprozesses nicht bewusst sein – sie fügen einfach die entsprechenden Header hinzu, wenn sie Testanfragen senden, und der Service-Connect-Proxy verarbeitet die Routing-Logik automatisch.

Informationen zum Konfigurieren der Header-Regeln für Test-Datenverkehr finden Sie unter ServiceConnectTestTrafficHeaderRules in der API-Referenz zu Amazon Elastic Container Service.

Abgleich von Header-Regeln

Regeln für den Header-Abgleich definieren die Kriterien für das Routing des Testdatenverkehrs bei Blau/Grün-Bereitstellungen. Sie können mehrere übereinstimmende Bedingungen konfigurieren, um genau zu steuern, welche Anfragen an die grüne Serviceversion weitergeleitet werden.

Header-Matching unterstützt:

  • Exakte Übereinstimmung mit den Header-Werten

  • Überprüfung der Header-Präsenz

  • Musterbasiertes Matching

  • Mehrere Header-Kombinationen

Zu den Anwendungsfällen gehören beispielsweise das Weiterleiten von Anfragen mit bestimmten User-Agent-Zeichenfolgen, API-Versionen oder Feature-Flags zum Testen an den grünen Service.

Weitere Informationen zur Konfiguration des Header-Abgleichs finden Sie unter ServiceConnectTestTrafficHeaderMatchRules in der API-Referenz zu Amazon Elastic Container Service.

Client-Aliase für Blau/Grün-Bereitstellungen

Client-Aliase bieten stabile DNS-Endpunkte für Services bei Blau/Grün-Bereitstellungen. Diese ermöglichen ein nahtloses Routing des Datenverkehrs zwischen blauen und grünen Service-Revisionen, ohne dass Client-Anwendungen ihre Verbindungsendpunkte ändern müssen.

Während einer Blau/Grün-Bereitstellung verhalten sich Client-Aliase folgendermaßen:

  • Behalten konsistente DNS-Namen für Client-Verbindungen bei

  • Ermöglichen die automatische Verlagerung des Datenverkehrs zwischen Service-Revisionen

  • Support schrittweiser Strategien zur Migration von Datenverkehr

  • Stellen Rollback-Funktionen bereit, indem sie den Datenverkehr auf die blaue Revision umleiten

Sie können mehrere Client-Aliase für verschiedene Ports oder Protokolle konfigurieren, sodass komplexe Service-Architekturen die Konnektivität während der Bereitstellung aufrechterhalten können.

Weitere Informationen zur Konfiguration des Client-Alias finden Sie unter ServiceConnectClientAlias in der API-Referenz zu Amazon Elastic Container Service.

Bewährte Methoden für das Routing des Datenverkehrs

Beachten Sie bei der Implementierung des Datenverkehrs-Routings für Blau/Grün-Bereitstellungen mit Service Connect die folgenden bewährten Methoden:

  • Beginnen Sie mit headerbasierten Tests: Verwenden Sie Testdateverkehrsheaderregeln, um den grünen Service mit kontrolliertem Datenverkehr zu validieren, bevor Sie den gesamten Datenverkehr umschalten.

  • Zustandsprüfungen konfigurieren: Stellen Sie sicher, dass sowohl für blaue als auch für grüne Services entsprechende Zustandsprüfungen konfiguriert sind, um zu verhindern, dass Datenverkehr zu fehlerhaften Instances weitergeleitet wird.

  • Überwachen Sie die Servicemetriken: Verfolgen Sie die wichtigsten Leistungsindikatoren für beide Serviceversionen während der Bereitstellung, um Probleme frühzeitig zu erkennen.

  • Rollback-Strategie planen: Konfigurieren Sie Client-Aliase und Routing-Regeln, um ein schnelles Rollback zum blauen Service zu ermöglichen, falls Probleme festgestellt werden.

  • Testen Sie die Header-Abgleichslogik: Überprüfen Sie Ihre Header-Abgleichsregeln in einer Nicht-Produktionsumgebung, bevor Sie sie auf Produktionsbereitstellungen anwenden.

Workflow der Blau/Grün-Bereitstellung mit Service Connect

Wenn Sie wissen, wie Service Connect den Blau/Grün-Bereitstellungsprozess verwaltet, können Sie Ihre Bereitstellungen effektiv implementieren und Fehler beheben. Der folgende Workflow zeigt, wie die verschiedenen Komponenten in jeder Phase der Bereitstellung interagieren.

Bereitstellungsphasen

Eine Blau/Grün-Bereitstellung mit Service Connect durchläuft mehrere unterschiedliche Phasen:

  1. Ausgangszustand: Der blaue Service wickelt 100 % des Produktionsdatenverkehrs ab. Alle Client-Services im Namespace stellen über den in Service Connect konfigurierten logischen Service-Namen eine Verbindung zum blauen Service her.

  2. Grünen Service registrieren: Wenn die Grün-Bereitstellung gestartet wird, wird sie bei AWS Cloud Map als „Test“-Endpunkt registriert. Der Service-Connect-Proxy in den Client-Services empfängt automatisch sowohl Produktions- als auch Testroutenkonfigurationen.

  3. Test-Datenverkehrs-Routing: Anfragen, die die Test-Datenverkehr-Header (z. B. x-amzn-ecs-blue-green-test) enthalten, werden vom Service-Connect-Proxy automatisch an den grünen Service weitergeleitet. Der Produktionsdatenverkehr fließt weiterhin zum blauen Service.

  4. Vorbereitung der Datenverkehrsverlagerung: Nach erfolgreichen Tests bereitet der Bereitstellungsprozess die Verlagerung des Produktionsdatenverkehrs vor. Sowohl die blauen als auch die grünen Services sind weiterhin registriert und fehlerfrei.

  5. Verlagerung des Produktionsdatenverkehrs: Die Service-Connect-Konfiguration wird aktualisiert, um den Produktionsdatenverkehr an den grünen Service weiterzuleiten. Dies geschieht automatisch, ohne dass Aktualisierungen des Client-Services oder DNS-Änderungen erforderlich sind.

  6. Bake-Zeitraum: Die Dauer, in der sowohl blaue als auch grüne Service-Revisionen gleichzeitig ausgeführt werden, nachdem der Produktionsdatenverkehr verlagert wurde.

  7. Abmeldung des blauen Services: Nach erfolgreicher Verlagerung und Validierung des Datenverkehrs wird der blaue Service bei AWS Cloud Map abgemeldet und beendet, wodurch die Bereitstellung abgeschlossen ist.

Verhalten des Service-Connect-Proxys

Der Service-Connect-Proxy spielt eine entscheidende Rolle bei der Verwaltung des Datenverkehrs bei Blau/Grün-Bereitstellungen. Wenn Sie sein Verhalten verstehen, können Sie effektive Test- und Bereitstellungsstrategien entwickeln.

Wichtige Proxy-Verhaltensweisen bei Blau/Grün-Bereitstellungen:

  • Automatische Routenerkennung: Der Proxy erkennt automatisch sowohl Produktions- als auch Testrouten von AWS Cloud Map, ohne dass Anwendungsneustarts oder Konfigurationsänderungen erforderlich sind.

  • Header-basiertes Routing: Der Proxy untersucht eingehende Anforderungs-Header und leitet den Datenverkehr auf der Grundlage der konfigurierten Test-Datenverkehrsregeln an die entsprechende Service-Revision weiter.

  • Zustandsprüfung-Integration: Der Proxy leitet den Datenverkehr nur an fehlerfreie Service-Instances weiter und schließt fehlerhafte Aufgaben automatisch aus dem Routing-Pool aus.

  • Wiederholungsversuch und Schutzschalter: Der Proxy bietet eine integrierte Wiederholungslogik und Funktionen zum Unterbrechen von Verbindungen, wodurch die Ausfallsicherheit bei Bereitstellungen verbessert wird.

  • Erfassung von Metriken: Der Proxy erfasst detaillierte Metriken sowohl für blaue als auch für grüne Services und ermöglicht so eine umfassende Überwachung während der Bereitstellung.

Serviceerkennungs-Aktualisierungen

Einer der Hauptvorteile der Verwendung von Service Connect für Blau/Grün-Bereitstellungen ist die automatische Verarbeitung von Aktualisierungen der Serviceerkennung. Herkömmliche Blau/Grün-Bereitstellungen erfordern oft komplexe DNS-Updates oder eine Neukonfiguration des Load Balancers, aber Service Connect verwaltet diese Änderungen auf übersichtliche Weise.

Während einer Bereitstellung verarbeitet Service Connect Folgendes:

  • Namespace-Aktualisierungen: Der Service-Connect-Namespace umfasst automatisch sowohl blaue als auch grüne Service-Endpunkte mit entsprechenden Routing-Regeln.

  • Client-Konfiguration: Alle Client-Services im Namespace erhalten automatisch aktualisierte Routing-Informationen, ohne dass Neustarts oder Neubereitstellungen erforderlich sind.

  • Schrittweiser Übergang: Serviceerkennung-Aktualisierungen werden schrittweise und sicher durchgeführt, sodass laufende Anfragen nicht unterbrochen werden.

  • Rollback-Unterstützung: Wenn ein Rollback erforderlich ist, kann Service Connect die Serviceerkennungs-Konfigurationen schnell rückgängig machen, um den Datenverkehr zurück zum blauen Service zu leiten.