Un déploiement canari cible généralement un seul service. Toutefois, lorsque les services forment des chaînes d'appels, isoler un seul service ne suffit pas : le trafic canari doit rester isolé sur l'ensemble de la chaîne. Si une requête atteint la version canari du service A mais est routée vers la version stable du service B, les résultats du test ne sont pas fiables.
Les voies de trafic du Service Mesh (ASM) résolvent ce problème en regroupant une version spécifique ou des fonctionnalités d'une application au sein d'une chaîne d'appels dans un environnement d'exécution isolé. Les règles de voie acheminent les requêtes correspondantes vers la version correcte de chaque service de la chaîne, maintenant ainsi une séparation complète entre le trafic canari et le trafic de production. Cette approche facilite la création d'environnements isolés pour le trafic allant de la passerelle aux services, le déploiement simultané de plusieurs services ou le développement parallèle de plusieurs versions.
Les voies de trafic fonctionnent selon deux modes, strict et permissif, qui diffèrent par la manière dont ils gèrent les services absents d'une voie.
Concepts clés
| Terme | Définition |
|---|---|
| Voie de trafic | Environnement d'exécution isolé qui regroupe une version spécifique ou des fonctionnalités d'une application au sein d'une chaîne d'appels. |
| Règle de voie | Règle de routage qui dirige les requêtes correspondantes vers la voie cible. |
| Voie de référence | Voie contenant tous les services de la chaîne d'appels. En mode permissif, les autres voies se rabattent sur la voie de référence pour les services manquants. |
| En-tête de requête de transit de bout en bout | En-tête HTTP propagé à travers tous les services d'une chaîne d'appels. En mode permissif, cet en-tête identifie la voie à laquelle appartient une requête. |
Fonctionnement
Mode strict
En mode strict, chaque voie contient tous les services de la chaîne d'appels. L'ASM achemine les requêtes vers la voie correspondante en fonction des règles de voie, sans mécanisme de repli.
Chaque voie étant autonome, le mode strict ne nécessite aucune modification du code de votre application : la propagation des en-têtes n'est pas requise.

Pour configurer cette fonctionnalité, consultez la rubrique Utiliser les voies de trafic en mode strict pour gérer le trafic de bout en bout.
Mode permissif
En mode permissif, seule la voie de référence doit contenir tous les services. Les autres voies peuvent n'en contenir qu'un sous-ensemble. Lorsqu'une requête atteint un service absent de la voie actuelle, l'ASM la transfère vers la voie de référence. Dès que ce service redevient disponible dans la voie, le trafic est automatiquement rerouté vers celle-ci.
Ce mécanisme de repli impose à votre application de propager un en-tête de requête de transit de bout en bout à travers chaque appel de service de la chaîne. Chaque voie utilise une valeur d'en-tête distincte, permettant ainsi à l'ASM d'identifier la voie d'appartenance d'une requête tout au long de la chaîne d'appels.

Pour configurer cette fonctionnalité, consultez les rubriques suivantes :
Choisir un mode
| Mode strict | Mode permissif | |
|---|---|---|
| Cas d'utilisation | Déploiements canaris couvrant tous les services d'une chaîne d'appels. | Déploiements canaris ciblant uniquement certains services d'une chaîne d'appels. |
| Exigence applicative | Aucune. Aucune modification du code n'est requise. | Propagation d'un en-tête de requête de transit de bout en bout avec une valeur distincte par voie à travers tous les appels de service. |
| Composition de la voie | Chaque voie doit contenir tous les services de la chaîne d'appels. | Seule la voie de référence doit contenir tous les services. Les autres voies ne contiennent que les services en cours de test. |
| Flexibilité | Plus faible : chaque voie constitue une réplique complète de la chaîne d'appels. | Plus élevée : permet de tester de nouvelles versions de services individuels sans répliquer l'intégralité de la chaîne. |