Tous les produits
Search
Centre de documentation

Serverless App Engine:Production scenario: Implement an end-to-end canary release based on a self-hosted Spring Cloud Gateway or Zuul gateway

Dernière mise à jour :Aug 11, 2026

Lorsque vous exécutez une version Canary sur des applications SAE prises en charge par des passerelles Spring Cloud ou Zuul auto-gérées, vous devez acheminer un trafic spécifique vers une version grise de chaque microservice et assurer la propagation automatique de cet acheminement dans toute la chaîne de services. Cette rubrique explique comment configurer l'acheminement du trafic de bout en bout à l'aide d'un seul en-tête de requête HTTP, sans modifier le code métier.

Concepts clés

Terme Description
Environnement de référence La version de production stable de vos microservices — Application A, B et C. Tout le trafic est dirigé vers cet environnement par défaut.
Environnement de version Canary La nouvelle version en cours de validation — Application A-gray, B-gray et C-gray. Seules les requêtes contenant l'en-tête Canary atteignent cet environnement.
Propagation de bout en bout Une fois que la passerelle d'entrée a acheminé une requête vers une instance grise, le tag gris se propage automatiquement via chaque appel de service en aval — A-gray → B-gray → C-gray — sans aucune modification de code requise.
x-mse-tag En-tête de requête HTTP utilisé exclusivement dans ce scénario pour acheminer le trafic vers les environnements de version Canary. N'utilisez pas cet en-tête lors de la configuration des règles de version Canary pour les applications.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Une instance Application Load Balancer (ALB) configurée comme passerelle d'entrée

  • Un registre de services Nacos disponible pour l'enregistrement et la découverte des services

  • Le package mse-simple-demo téléchargé

Déployer des applications de démonstration SAE

Déployer les applications principales

Déployez l'Application A (panier d'achat), l'Application B (centre de transactions) et l'Application C (centre d'inventaire) sur SAE. Pour obtenir des instructions de configuration, consultez Modifier l'enregistrement et la découverte des services des applications vers Nacos.

Déployer les applications de version Canary

Déployez l'Application A-gray, l'Application B-gray et l'Application C-gray. Ajoutez -Dalicloud.service.tag=gray à la commande de démarrage de chaque application Canary afin que le système puisse les distinguer de leurs homologues de référence.

Si votre déploiement utilise un registre de services autre que celui intégré à SAE, ajoutez également les paramètres de démarrage suivants : -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false

Déployer la passerelle Spring Cloud ou Zuul

Transférez les requêtes provenant du même nom de domaine en utilisant différents chemins URL. Pour plus de détails sur la configuration, consultez Configurer le routage de passerelle pour une application à l'aide d'une instance CLB.

Acheminer le trafic vers l'environnement de version Canary

Lorsque le nom de domaine d'un client ne peut pas être modifié, associez le nom de domaine www.base.com à une route et ajoutez l'en-tête x-mse-tag:gray aux requêtes qui doivent être dirigées vers l'environnement de version Canary. La passerelle d'entrée ALB lit l'en-tête et achemine la requête vers les instances de service grises, qui propagent ensuite le tag gris à tous les services en aval.

Avertissement

L'en-tête x-mse-tag fonctionne uniquement dans ce scénario spécifique. Ne l'utilisez pas lors de la configuration des règles de version Canary pour les applications. Pour plus d'informations, consultez Gérer les règles de version Canary pour les applications Java.

Le diagramme suivant montre comment une requête entrante est dirigée vers l'environnement de version Canary après l'ajout de l'en-tête x-mse-tag:gray.

End-to-end canary release using self-managed Spring Cloud or Zuul gateways

Vérifier la version Canary

Exécutez les commandes suivantes pour confirmer que le trafic est correctement acheminé.

Vérifier le trafic de référence — les requêtes sans l'en-tête x-mse-tag sont dirigées vers l'environnement de production :

curl -H "Host:www.base.com" http://106.14.XX.XX/a

Résultat attendu :

A[172.18.XX.XX] -> B[172.18.XX.XX] -> C[172.18.XX.XX]

Vérifier le trafic Canary — ajoutez x-mse-tag:gray pour acheminer la requête via les trois instances grises :

curl -H "Host:www.base.com" -H "x-mse-tag:gray" http://106.14.XX.XX/a

Résultat attendu :

Agray[172.18.XX.XX] -> Bgray[172.18.XX.XX] -> Cgray[172.18.XX.XX]%

La sortie confirme que le contrôleur d'entrée Classic Load Balancer (CLB) a acheminé la requête vers l'environnement de version Canary de l'Application A et que le tag gris s'est propagé de bout en bout via l'Application B-gray et l'Application C-gray.

Étapes suivantes

  • Pour configurer des règles de version Canary automatisées pour les applications Java, consultez Gérer les règles de version Canary pour les applications Java.