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
Traefik : les métriques avec Prometheus et OpenTelemetry
Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, rout...
Gestion des certificats SSL/TLS avec Let's Encrypt et ACME
Apprenez à automatiser la génération et le renouvellement de vos certificats SSL/TLS avec Let's E...
Protocole ACME : serveur ACME, challenges http-01 et dns-01, automatisation TLS
Comprendre le protocole ACME : rôle du serveur ACME (Let's Encrypt, ZeroSSL, step-ca), challenges...
Traefik : les providers (Docker, Kubernetes, Nomad, Consul, fichiers, clés-valeurs)
Les providers alimentent la configuration dynamique de Traefik : découverte des services Docker, ...
Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques
Étendre Traefik avec des plugins (catalogue officiel, interpréteur Yaegi), puis protéger ses appl...
Traefik : les logs (journaux applicatifs et access logs)
Configurer les deux journaux de Traefik : le journal de fonctionnement (niveaux, format) et les a...
Traefik : le tracing distribué avec OpenTelemetry
Activer le tracing de Traefik v3 avec OpenTelemetry (OTLP), propager le contexte W3C vers les app...
HAProxy dans Kubernetes : L'Ingress Controller Haute Performance
Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...
Le Load Balancing : Principes, Algorithmes et Cas d'usage
Découvrez le fonctionnement de la répartition de charge (Load Balancing), son rôle dans la haute ...