API7 Enterprise v3.5.0 : Configuration Multi-Upstream

Sijing Zhang

Sijing Zhang

February 19, 2025

Products

Upstream : Navigation précise des requêtes

Pour mieux comprendre le concept d'upstream, utilisons une métaphore : imaginez un aéroport animé où les gens vont et viennent constamment. Les voyageurs, comme les requêtes API, arrivent en masse, impatients de trouver leurs portes d'embarquement pour entamer leur voyage. Dans le monde de l'API7 Gateway, les upstreams sont similaires à ces portes d'embarquement. Cependant, ce ne sont pas des emplacements physiques, mais des regroupements logiques. Ces regroupements logiques définissent clairement où les requêtes API entrantes doivent être envoyées.

Un upstream peut représenter un seul service backend, comme une porte d'embarquement dédiée, où toutes les requêtes associées peuvent atteindre leur destination avec précision. Il peut également représenter un pool de services identiques pour l'équilibrage de charge, similaire à plusieurs portes d'embarquement fonctionnellement identiques qui répartissent efficacement le trafic des passagers. Alternativement, il peut pointer vers un registre de services où les backends correspondants changent dynamiquement pour s'adapter aux besoins évolutifs de l'entreprise. Dans la plupart des cas, un seul upstream au sein d'un service peut connecter plusieurs routes au sein du service, permettant un flux de requêtes efficace.

Au cœur de cela, les upstreams créent astucieusement une couche d'abstraction entre les routes et les services backend réels. Cette abstraction est très significative. Elle simplifie grandement la gestion de la configuration, rendant le processus de configuration fastidieux clair et ordonné. Elle permet également de manière transparente l'équilibrage de charge, garantissant que la charge sur chaque service backend est raisonnable et améliorant les performances globales du système.

Configuration Multi-Upstream : Une nouvelle ère de gestion du trafic

La configuration multi-upstream est une caractéristique phare de API7 Enterprise. Elle brise les limitations traditionnelles, permettant à un service de configurer librement plusieurs services upstream à tout moment et en tout lieu. Cela ne se limite pas aux scénarios de déploiement canari, mais s'étend également à divers scénarios avancés de gestion du trafic. Combinée avec des plugins, elle peut configurer de manière flexible les règles de routage pour distribuer précisément les requêtes vers différents services upstream.

Scénarios d'utilisation

  1. Déploiement Canari : Pendant les tests canari, créez un nouvel upstream pointant vers une nouvelle version du même service. Ensuite, routez astucieusement une partie du trafic vers la nouvelle version du microservice. Cela vous permet de vérifier la justesse des nouvelles fonctionnalités à petite échelle, réduisant efficacement le risque, un peu comme une répétition à petite échelle avant la performance officielle.

  2. Déploiement Bleu-Vert : Tout d'abord, basculez en douceur tout le trafic vers la nouvelle version. Après avoir confirmé que la nouvelle version fonctionne de manière stable, mettez hors ligne en toute sécurité l'ancienne version. Cela permet un déploiement sans temps d'arrêt, garantissant la disponibilité continue du service et rendant les utilisateurs presque inconscients de la mise à jour du système.

Déploiement API

  1. Test A/B : Divisez le trafic en plusieurs groupes et routez-les vers différents services upstream. Cela vous permet de comparer intuitivement les effets de différentes solutions, fournissant un support de données solide pour la prise de décision, un peu comme comparer différentes solutions de produits dans une étude de marché.

  2. Basculement en cas de panne : Lorsque le service upstream principal tombe malheureusement en panne, le système peut rapidement basculer le trafic vers le service upstream de secours. Cela agit comme une "assurance" pour le service, garantissant sa disponibilité et maintenant une bonne expérience utilisateur.

  3. Gestion Multi-Cluster : Dans les environnements multi-centres de données ou multi-cloud, la configuration multi-upstream peut répartir raisonnablement le trafic vers différents clusters, tels que les clusters réguliers et VIP. Cela améliore non seulement la disponibilité du système et les capacités de reprise après sinistre, mais permet également d'atteindre l'équilibrage de charge et l'isolation des ressources, garantissant un fonctionnement stable du système dans des environnements complexes.

Cependant, il est important de noter que bien que la configuration multi-upstream apporte une fonctionnalité puissante, elle augmente également considérablement la complexité et la difficulté de gestion. Cela nécessite une planification minutieuse de l'entreprise et une compréhension approfondie de la configuration de la passerelle API.

Conseils pour utiliser efficacement la configuration Multi-Upstream

  1. Introduction progressive : Lors de l'introduction de la configuration multi-upstream, commencez par des scénarios simples, tels que des tests de division de trafic de base. Accumulez de l'expérience avant de passer progressivement à des scénarios plus complexes pour éviter d'être submergé par la complexité dès le départ.

  2. Test approfondi : Un test complet avant la publication est essentiel. Simulez divers scénarios possibles pour garantir la justesse de la configuration, un peu comme effectuer des contrôles de qualité stricts avant le lancement d'un nouveau produit.

  3. Surveillance et alertes : Établissez un mécanisme robuste de surveillance et d'alertes pour surveiller en continu le fonctionnement du système. Si des anomalies sont détectées, des alertes et des mesures peuvent être prises en temps opportun pour résoudre les problèmes, protégeant le fonctionnement stable du système.

Surveillance et alertes

Outil puissant : Le plugin traffic-split

Pour réaliser la fonctionnalité puissante de la configuration multi-upstream, le plugin traffic-split est indispensable. Ce plugin est très fonctionnel, distribuant dynamiquement le trafic vers différents services upstream en fonction de conditions et de poids prédéfinis.

En termes de correspondance des conditions, il peut formuler des règles complexes de distribution du trafic en fonction d'informations telles que l'URL de la requête, l'en-tête, le cookie, et même des facteurs externes comme l'heure et la date. Par exemple, il peut diriger les requêtes des utilisateurs VIP spécifiques vers le service upstream correspondant au cluster VIP ou router une partie du trafic vers le service upstream correspondant à la nouvelle version pendant une période spécifique. En termes de configuration des poids, en définissant différents poids, il peut contrôler avec précision le ratio de distribution du trafic entre les différents services upstream. Par exemple, lors d'une mise en production canari, il peut diriger 90% du trafic vers l'upstream correspondant à l'environnement de production et 10% vers l'upstream correspondant à l'environnement de test.

En utilisant efficacement la fonctionnalité de configuration multi-upstream et le plugin traffic-split, vous pouvez grandement améliorer la flexibilité et la fiabilité de la passerelle API. Cela pose une base solide pour la mise en œuvre réussie de l'architecture de microservices, nous permettant d'avancer régulièrement sur le chemin numérique et de relever divers défis commerciaux complexes.

Conclusion

Servant de système de navigation précis pour les requêtes, les upstreams acheminent efficacement les requêtes API vers les services cibles grâce à des regroupements logiques. La configuration multi-upstream de API7 Enterprise améliore encore la flexibilité de la gestion du trafic, supportant des scénarios avancés tels que les déploiements canari, les déploiements bleu-vert, les tests A/B, le basculement en cas de panne et la gestion multi-cluster. Avec l'aide du plugin traffic-split, le trafic peut être alloué dynamiquement en fonction de conditions et de poids prédéfinis, assurant les hautes performances et la stabilité du système.

Tags: