Une bascule progressive vaut mieux qu'une bascule instantanée
Bleu
100 % du trafic
Répartition pondérée
95/5, puis 50/50
Vert
100 % du trafic
Déploiements blue-green et bascules DNS
Un déploiement blue-green maintient deux environnements de production complets en fonctionnement, l'un en service (« blue »), l'autre inactif mais entièrement déployé et prêt (« green »), et fait passer le trafic de l'un à l'autre en une seule opération rapide plutôt que par une mise à jour progressive. Une façon courante de réaliser cette bascule, surtout entre infrastructures ou fournisseurs distincts, est un changement DNS : mettre à jour l'enregistrement du domaine pour qu'il pointe vers l'adresse de l'environnement green une fois celui-ci vérifié comme sain.
Là où la version simple atteint ses limites
Une bascule par DNS n'est pas instantanée, contrairement à la bascule du groupe cible d'un répartiteur de charge. Chaque résolveur qui a mis en cache l'ancienne réponse (blue) continue de la servir jusqu'à l'expiration du TTL de cet enregistrement. Pendant une durée proportionnelle au TTL, une partie du trafic arrive donc encore sur l'environnement que vous venez de quitter. Avec un TTL d'une heure, cela représente potentiellement une heure de trafic réparti entre les deux environnements avant que la bascule soit complète partout.
- Abaissez le TTL bien avant la bascule prévue, idéalement au moins un cycle complet de l'ancien TTL à l'avance, pour qu'au moment de la bascule chaque résolveur ait déjà remis en cache la valeur avec le nouveau TTL, plus court.
- Gardez l'ancien environnement (blue) pleinement opérationnel et sain pendant au moins la durée du TTL après la bascule, sans le désactiver immédiatement : il reçoit encore du trafic réel durant cette période.
- Vérifiez la bascule en interrogeant directement le DNS plutôt qu'en vous contentant des journaux applicatifs : cela confirme que l'enregistrement lui-même a changé, indépendamment de la part du trafic qui l'a déjà rattrapé.
- Ne remontez le TTL à sa valeur normale qu'une fois certain que la bascule est terminée et stable.
L'alternative progressive : le DNS pondéré
Plutôt que de faire basculer tous les résolveurs d'un coup en espérant que l'environnement green tienne immédiatement la pleine charge de production, plusieurs fournisseurs DNS prennent en charge des politiques de routage pondérées (ou en pourcentage) : 95 % des réponses pointent vers blue, 5 % vers green, et cette répartition évolue progressivement (80/20, 50/50, puis au-delà) à mesure que la confiance dans le nouvel environnement grandit.
| Bascule brutale | Déploiement pondéré | |
|---|---|---|
| Périmètre d'impact d'un problème | 100 % du trafic, immédiatement | Une petite tranche maîtrisable |
| Rapidité du retour arrière | Rapide, mais annule tout d'un seul coup | Rapide, et réversible par paliers fins |
| Complexité de mise en place | Simple : modifier un seul enregistrement | Exige un fournisseur qui prend en charge les enregistrements pondérés |
| Cas d'usage idéal | Changements modestes et bien testés | Changements à fort enjeu sur une infrastructure critique |
On échange une bascule nette et simple contre la possibilité de repérer un problème tant qu'il n'affecte qu'une petite part du trafic, et de revenir à 100 % blue en quelques secondes si green n'est finalement pas prêt, plutôt que de devoir annuler une bascule complète sous pression.
Vérifier les deux approches de la même façon
Quelle que soit la stratégie utilisée, l'étape de vérification est identique : résolvez le domaine à plusieurs reprises, depuis plusieurs points d'observation, et vérifiez que la répartition réellement observée correspond à celle qui a été configurée. Une politique pondérée censée envoyer 10 % du trafic vers green mais qui en envoie en réalité 40 % (à cause d'un poids mal configuré, ou parce que certains résolveurs mettent en cache et ne retirent pas la répartition au sort aussi souvent que prévu) est exactement le type de dérive qui n'apparaît qu'en vérifiant les réponses réellement résolues, plutôt qu'en faisant confiance au tableau de bord du fournisseur DNS pour refléter parfaitement la réalité.
Besoin de vérifier les adresses DNS publiques d'un domaine ? Utilisez l'outil Domain IP Lookup.
À lire aussi
Une IP, un serveur, ou une IP, plusieurs
Unicast
Une IP correspond à un seul serveur
Anycast
Une IP annoncée depuis de nombreux sites
Le DNS anycast expliqué
Une même adresse IP annoncée depuis des dizaines de sites à la fois : l'anycast permet aux grands fournisseurs DNS de rester rapides et résilients partout.
Pourquoi une recherche affiche le CDN, pas l'origine
Visiteur
recherche le domaine
Edge CDN
104.21.x.x
c'est ce que renvoie le DNS
Serveur d'origine
IP réelle, jamais exposée
Comment les CDN utilisent le DNS pour router le trafic
La vraie magie d'un réseau de diffusion de contenu opère au niveau du DNS, avant même qu'un seul octet de contenu soit demandé.
Un nom d'hôte, plusieurs enregistrements A
1re réponse
93.184.216.34
2e réponse
93.184.216.35
3e réponse
93.184.216.36
Le résolveur renvoie tous les enregistrements, généralement en rotation
Round-robin DNS : répartir le trafic entre plusieurs IP
Comment le round-robin DNS renvoie plusieurs adresses, ce qu'il peut (ou non) faire pour répartir la charge, et l'influence du cache sur les résultats observés.