Este artículo está disponible en francés.
1. Choisir une stratégie #
Risque, coût et vitesse de retour arrière.
Comparaison #
| Stratégie | Principe | Retour arrière | Coût |
|---|---|---|---|
| Rolling | Les instances sont remplacées progressivement | Nouveau déploiement de l'ancienne version | Faible |
| Blue/green | Deux environnements complets, bascule du trafic | Instantané (rebasculer) | Double capacité pendant la bascule |
| Canary | Une petite part du trafic sur la nouvelle version, puis augmentation | Remettre le poids à 0 | Faible ; demande de bonnes métriques |
| Mirroring | Copie du trafic vers la nouvelle version, réponses ignorées | Sans impact utilisateur | Charge en double |
2. Mise en œuvre #
Services pondérés et bascule.
Canary avec le provider fichier #
http:
services:
app:
weighted:
services:
- name: app-v1@docker
weight: 90
- name: app-v2@docker
weight: 10
sticky:
cookie: { name: version } # un utilisateur reste sur la même version
routers:
app:
rule: Host(`app.exemple.fr`)
service: appCanary dans Kubernetes (TraefikService) #
apiVersion: traefik.io/v1alpha1
kind: TraefikService
metadata: { name: app-canary, namespace: app }
spec:
weighted:
services:
- { name: app-v1, port: 80, weight: 90 }
- { name: app-v2, port: 80, weight: 10 }Blue/green et mirroring #
Pour le blue/green, on change le service ciblé par le routeur (app-blue → app-green) ; avec le provider fichier, la bascule est prise en compte à chaud. Le mirroring copie une part du trafic vers une version de test :
http:
services:
app-miroir:
mirroring:
service: app-v1@docker
mirrors:
- { name: app-v2@docker, percent: 20 }3. Bonnes pratiques #
Déployer sans crainte.
Règles #
- Définir à l'avance les critères de réussite (taux d'erreurs, latence p95) et les surveiller par service.
- Rendre les migrations de base de données compatibles avec les deux versions (expand / contract).
- Automatiser la progression et le retour arrière plutôt que modifier les poids à la main : c'est le rôle de Flagger (article suivant).
- Health checks sur les services pour que Traefik retire automatiquement une instance défaillante.
Mi seguimiento
Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión
Artículos recomendados
Canary automatisé avec Flagger et Traefik sur Kubernetes
Automatiser les déploiements canary avec Flagger et Traefik : ressource Canary, analyse des métri...
Maîtriser les ACLs dans HAProxy : Le Guide Complet
Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...
Maîtriser les ACLs dans HAProxy
Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...
L'API de Traefik : inspecter la configuration et sécuriser le tableau de bord
Utiliser l'API REST de Traefik pour inspecter routeurs, services, middlewares et entrypoints, l'e...
Traefik : vue d'ensemble, architecture et premier déploiement
Découvrir Traefik : reverse proxy et load balancer cloud-native, entrypoints, routers, services, ...
CI/CD de bout en bout (4/5) : stratégies de déploiement et retour arrière
Déployer sans interruption et sans risque : recreate, rolling update, blue/green, canary, feature...
Bonnes pratiques Traefik : sécurité, haute disponibilité et observabilité
Bonnes pratiques Traefik : sécurisation du dashboard et du socket Docker, TLS moderne, middleware...
Traefik : sécuriser et transformer les requêtes avec les middlewares (BasicAuth, ForwardAuth…)
Les middlewares Traefik modifient les requêtes et réponses entre le routeur et le service : authe...
Traefik comme Ingress Controller pour Kubernetes (Helm, IngressRoute, Gateway API)
Installer Traefik dans Kubernetes avec Helm et publier des applications avec Ingress, les CRD Ing...