API7 Enterprise's Canary Traffic Shifting Strategie für präzise Traffic-Kontrolle

January 29, 2024

Products

In einer modernen Microservices-Architektur dient das API-Gateway als Einstiegspunkt für den Datenverkehr von Systemen und übernimmt wichtige Aufgaben wie Request-Routing, Identitätsauthentifizierung, Ratenbegrenzung und Circuit-Breaker. API7 Enterprise, eine robuste API-Management-Plattform, die auf APISIX basiert, bietet Benutzern umfangreiche und flexible Funktionen, wobei das Canary Traffic Shifting eine zentrale Rolle in Szenarien wie nahtlosen Service-Upgrades und der Validierung neuer Funktionen spielt.

Überblick über die Funktionen

Erstellung eines Upstreams basierend auf Upstream-Diensten

Sobald ein Dienst in den Gateway-Gruppen von API7 Enterprise bereitgestellt wurde, können Administratoren problemlos einen neuen Upstream für Canary Traffic Shifting aus den Diensten eines bestehenden Basis-Upstreams ableiten. Der Upstream kann alle Konfigurationen vom Basis-Upstream erben oder selektiv getestete historische Konfigurationen übernehmen. Dieses Design vereinfacht den Konfigurationsprozess erheblich, reduziert repetitive Arbeiten und potenzielle Konfigurationsfehler. Darüber hinaus unterstützt der Canary Traffic Shifting Upstream die Konfiguration neuer Knoten oder die Integration von Service-Discovery-Mechanismen. Dies bedeutet, dass ein Teil des Datenverkehrs ohne Beeinträchtigung der bestehenden Geschäftslogik auf neue Server oder Umgebungen umgeleitet werden kann, um Leistungstests, Funktionsvalidierungen oder andere Arten von Bewertungen durchzuführen.

Flexible Verschiebungsbedingungen und Gewichtungen

Bei der Initiierung von Canary Traffic Shifting-Strategien können Administratoren die Bedingungen und Gewichtungen für die Verkehrsumleitung fein definieren:

Verschiebungsbedingungen: Diese bestimmen, welcher Datenverkehr an den Canary Traffic Shifting Upstream weitergeleitet werden soll. Administratoren können mehrere Bedingungen mithilfe logischer Operatoren (wie "AND" und "OR") kombinieren, um sicherzustellen, dass nur Anfragen, die bestimmte Bedingungen erfüllen, in die Canary Traffic Shifting-Umgebung gelangen.

Eigenschaften, die für die Beurteilung verwendet werden können, umfassen:

  • Header: Bestimmte Felder im Anfrage-Header, wie z. B. User-Agent.

  • Cookie: Cookie-Informationen, die vom Client gesendet werden, häufig zur Benutzeridentifikation oder Sitzungszustandserkennung.

  • Query-Parameter: Abfragezeichenfolgenparameter in der URL.

  • Variablen: System- oder benutzerdefinierte Variablen, wie z. B. geografische Standorte oder Benutzerrollen.

    Die Abgleichlogik umfasst Gleichheit (==), Ungleichheit (~=), reguläre Abgleiche (~~) und andere Methoden, um die Flexibilität und Präzision der Bedingungsbeurteilung sicherzustellen.

    Beispielsweise können Administratoren die folgende Verschiebungsbedingung festlegen: "Wenn das Feld User-Agent im Anfrage-Header 'iPhone' enthält und das Feld user_group im Cookie 'test_group' entspricht, leite die Anfrage an den Traffic Shifting Upstream weiter."

Verschiebungsgewichtungen: Diese bestimmen, welcher Prozentsatz des Datenverkehrs an den Canary Traffic Shifting Upstream weitergeleitet werden soll. Es handelt sich um einen Prozentwert, der es Administratoren ermöglicht, den Datenverkehr, der in die Canary Traffic Shifting-Umgebung gelangt, schrittweise zu erhöhen oder zu verringern.

Anfangs kann die Gewichtung auf einen niedrigen Wert (z. B. 10 %) festgelegt werden, um sicherzustellen, dass neue Funktionen in einem kleinen Bereich getestet werden. Mit fortschreitendem Test und der Sammlung von Ergebnissen kann die Gewichtung schrittweise erhöht werden, bis schließlich 100 % des Datenverkehrs auf die neue Version umgestellt werden.

Durch die flexible Anpassung von Verschiebungsbedingungen und Gewichtungen können Administratoren den Umfang und die Auswirkungen von Canary Traffic Shifting-Tests effektiv steuern und so einen reibungslosen Rollout neuer Funktionen und die Stabilität des Systems sicherstellen.

Traffic Shifting von API7 Enterprise

Praktische Anwendungsszenarien

  1. Validierung neuer Funktionen: Wenn ein Entwicklungsteam eine neue Funktion fertigstellt und bereit ist, sie zu veröffentlichen, kann Canary Traffic Shifting verwendet werden, um die neue Funktion zunächst einer kleinen Gruppe von Benutzern oder bestimmten Benutzergruppen bereitzustellen. Dies ermöglicht das Sammeln von Benutzerfeedback in einer realen Umgebung, während sichergestellt wird, dass bei auftretenden Problemen der Umfang der Auswirkungen beherrschbar bleibt.

  2. Leistungstests: Während bedeutender Ereignisse oder bei hoher Parallelverarbeitung können Administratoren Canary Traffic Shifting verwenden, um einen Teil des Datenverkehrs auf neu konfigurierte, leistungsfähigere Knoten umzuleiten, um die Leistungsgrenzen und die Stabilität des Systems zu testen.

  3. Schrittweise Migration: Bei Service-Upgrades oder Migrationen kann Canary Traffic Shifting Administratoren dabei helfen, den Datenverkehr schrittweise von der alten Umgebung in die neue Umgebung zu verlagern, um einen reibungslosen Migrationsprozess zu gewährleisten.

Best Practices

  1. Angemessene Festlegung von Verschiebungsbedingungen: Die Wahl geeigneter Verschiebungsbedingungen basierend auf den tatsächlichen Anforderungen ist entscheidend. Beispielsweise kann für Tests, die auf bestimmte Benutzergruppen abzielen, eine präzise Verschiebung durch Benutzerkennungen in Cookies oder Headern erreicht werden.

  2. Dynamische Anpassung der Gewichtungen: Während des Testens kann die dynamische Anpassung der Verschiebungsgewichtungen basierend auf Testergebnissen und Benutzerfeedback die Sammlung valider Daten beschleunigen oder den Umfang von Problemen eingrenzen.

  3. Überwachung und Alarmierung: Die Stärkung der Überwachung relevanter Metriken während der Verkehrsumleitung und die Einrichtung geeigneter Alarmmechanismen ermöglichen die rechtzeitige Erkennung und Lösung von Problemen.

Fazit

Durch das Canary Traffic Shifting von API7 Enterprise können Unternehmen nicht nur die Stabilität ihrer Dienste sicherstellen, sondern auch flexibel neue Funktionen testen, Leistungsoptimierungen durchführen und andere Operationen durchführen, was eine robuste Unterstützung für das schnelle Geschäftswachstum bietet.

Share article link