API7 Enterprise v3.5.0: Multi-Upstream-Konfiguration
February 19, 2025
Upstream: Präzise Navigation von Anfragen
Um das Konzept von Upstream besser zu verstehen, verwenden wir eine Metapher: Stellen Sie sich einen geschäftigen Flughafen vor, an dem Menschen ständig kommen und gehen. Reisende, ähnlich wie API-Anfragen, strömen in Scharen herein, um ihre Abfluggates zu finden und ihre Reisen anzutreten. In der Welt des API7 Gateways sind Upstreams vergleichbar mit diesen Abfluggates. Allerdings sind sie keine physischen Orte, sondern logische Gruppierungen. Diese logischen Gruppierungen definieren klar, wohin eingehende API-Anfragen gesendet werden sollen.
Ein Upstream könnte einen einzelnen Backend-Service repräsentieren, wie ein dediziertes Abfluggate, an dem alle zugehörigen Anfragen genau ihr Ziel erreichen können. Es könnte auch einen Pool identischer Services für das Lastenausgleich repräsentieren, ähnlich wie mehrere funktional identische Abfluggates, die den Passagierverkehr effizient verteilen. Alternativ könnte es auf eine Service-Registrierung verweisen, bei der die entsprechenden Backends dynamisch wechseln, um sich an sich entwickelnde Geschäftsanforderungen anzupassen. In den meisten Fällen kann ein einzelner Upstream innerhalb eines Services mehrere Routen innerhalb des Services verbinden, was einen effizienten Anfragefluss ermöglicht.
Im Kern schaffen Upstreams geschickt eine Abstraktionsebene zwischen Routen und tatsächlichen Backend-Services. Diese Abstraktion ist von großer Bedeutung. Sie vereinfacht die Konfigurationsverwaltung erheblich, macht den umständlichen Konfigurationsprozess klar und übersichtlich. Sie ermöglicht nahtlos den Lastenausgleich, stellt sicher, dass die Last auf jedem Backend-Service angemessen ist, und verbessert die Gesamtleistung des Systems.
Multi-Upstream-Konfiguration: Eine neue Ära des Verkehrsmanagements
Die Multi-Upstream-Konfiguration ist ein herausragendes Merkmal von API7 Enterprise. Sie durchbricht traditionelle Grenzen und ermöglicht es einem Service, jederzeit und überall mehrere Upstream-Services frei zu konfigurieren. Dies beschränkt sich nicht auf Canary-Szenarien, sondern erstreckt sich weiter auf verschiedene fortgeschrittene Verkehrsmanagementszenarien. In Kombination mit Plugins kann es flexibel Routing-Regeln konfigurieren, um Anfragen präzise auf verschiedene Upstream-Services zu verteilen.
Anwendungsszenarien
-
Canary-Bereitstellung: Während des Canary-Tests wird ein neuer Upstream erstellt, der auf eine neue Version desselben Services verweist. Dann wird ein Teil des Verkehrs geschickt auf die neue Version des Microservices umgeleitet. Dies ermöglicht es, die Korrektheit neuer Funktionen in kleinem Maßstab zu überprüfen und das Risiko effektiv zu reduzieren, ähnlich wie eine kleine Generalprobe vor der offiziellen Aufführung.
-
Blue-Green-Bereitstellung: Zuerst wird der gesamte Verkehr reibungslos auf die neue Version umgestellt. Nach der Bestätigung, dass die neue Version stabil läuft, wird die alte Version sicher außer Betrieb genommen. Dies ermöglicht eine Bereitstellung ohne Ausfallzeiten, stellt die kontinuierliche Verfügbarkeit des Services sicher und macht die Systemaktualisierung für Benutzer fast unbemerkt.
-
A/B-Tests: Der Verkehr wird in mehrere Gruppen aufgeteilt und auf verschiedene Upstream-Services umgeleitet. Dies ermöglicht es, die Auswirkungen verschiedener Lösungen intuitiv zu vergleichen und eine starke Datenbasis für Entscheidungen zu schaffen, ähnlich wie der Vergleich verschiedener Produktlösungen in der Marktforschung.
-
Failover: Wenn der primäre Upstream-Service leider ausfällt, kann das System den Verkehr schnell auf den Backup-Upstream-Service umstellen. Dies fungiert als „Versicherung“ für den Service, stellt dessen Verfügbarkeit sicher und erhält eine gute Benutzererfahrung.
-
Multi-Cluster-Management: In Multi-Rechenzentrums- oder Multi-Cloud-Umgebungen kann die Multi-Upstream-Konfiguration den Verkehr vernünftig auf verschiedene Cluster verteilen, wie reguläre und VIP-Cluster. Dies verbessert nicht nur die Systemverfügbarkeit und die Disaster-Recovery-Fähigkeiten, sondern erreicht auch Lastenausgleich und Ressourcenisolierung, was den stabilen Betrieb des Systems in komplexen Umgebungen sicherstellt.
Es ist jedoch wichtig zu beachten, dass die Multi-Upstream-Konfiguration zwar leistungsstarke Funktionen bietet, aber auch die Komplexität und den Verwaltungsaufwand erheblich erhöht. Dies erfordert eine sorgfältige Planung des Geschäfts und ein gründliches Verständnis der API-Gateway-Konfiguration.
Tipps zur effektiven Nutzung der Multi-Upstream-Konfiguration
-
Schrittweise Einführung: Bei der Einführung der Multi-Upstream-Konfiguration sollten Sie mit einfachen Szenarien beginnen, wie grundlegende Verkehrsteilungstests. Sammeln Sie Erfahrungen, bevor Sie schrittweise zu komplexeren Szenarien übergehen, um von Anfang an nicht von der Komplexität überwältigt zu werden.
-
Gründliche Tests: Umfassende Tests vor der Veröffentlichung sind unerlässlich. Simulieren Sie verschiedene mögliche Szenarien, um die Korrektheit der Konfiguration sicherzustellen, ähnlich wie strenge Qualitätskontrollen vor der Einführung eines neuen Produkts.
-
Überwachung und Warnungen: Richten Sie einen robusten Überwachungs- und Warnmechanismus ein, um den Systembetrieb kontinuierlich zu überwachen. Wenn Anomalien festgestellt werden, können rechtzeitig Warnungen und Maßnahmen ergriffen werden, um Probleme zu beheben und den stabilen Betrieb des Systems zu gewährleisten.
Leistungsstarkes Tool: Das traffic-split Plugin
Um die leistungsstarke Funktionalität der Multi-Upstream-Konfiguration zu erreichen, ist das traffic-split Plugin unverzichtbar. Dieses Plugin ist hochfunktional und verteilt den Verkehr dynamisch auf verschiedene Upstream-Services basierend auf vordefinierten Bedingungen und Gewichtungen.
Bei der Bedingungsanpassung kann es komplexe Verkehrsverteilungsregeln basierend auf Informationen wie der URL, dem Header, dem Cookie der Anfrage und sogar externen Faktoren wie Zeit und Datum formulieren. Beispielsweise kann es Anfragen von bestimmten VIP-Benutzern an den Upstream-Service des VIP-Clusters weiterleiten oder während eines bestimmten Zeitraums einen Teil des Verkehrs an den Upstream-Service der neuen Version umleiten. Bei der Gewichtungskonfiguration kann es durch die Einstellung verschiedener Gewichtungen das Verteilungsverhältnis des Verkehrs zwischen verschiedenen Upstream-Services präzise steuern. Beispielsweise kann es während eines Canary-Releases 90% des Verkehrs an den Upstream der Produktionsumgebung und 10% an den Upstream der Testumgebung weiterleiten.
Durch die effektive Nutzung der Multi-Upstream-Konfigurationsfunktion und des traffic-split Plugins können Sie die Flexibilität und Zuverlässigkeit des API-Gateways erheblich verbessern. Dies legt ein solides Fundament für die erfolgreiche Implementierung der Microservice-Architektur und ermöglicht es uns, auf dem digitalen Weg voranzuschreiten und verschiedene komplexe Geschäftsanforderungen zu bewältigen.
Fazit
Als präzises Navigationssystem für Anfragen leiten Upstreams API-Anfragen effizient durch logische Gruppierungen zu Zielservices. Die Multi-Upstream-Konfiguration von API7 Enterprise erhöht die Flexibilität des Verkehrsmanagements weiter und unterstützt fortgeschrittene Szenarien wie Canary-Bereitstellungen, Blue-Green-Bereitstellungen, A/B-Tests, Failover und Multi-Cluster-Management. Mit Hilfe des traffic-split Plugins kann der Verkehr basierend auf vordefinierten Bedingungen und Gewichtungen dynamisch zugewiesen werden, was die hohe Leistung und Stabilität des Systems sicherstellt.