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.
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.

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.