Déploiement Blue-Green
Stratégie de déploiement sans interruption utilisant deux environnements de production identiques pour basculer instantanément entre versions.
Mis à jour le 2 février 2026
Le déploiement Blue-Green est une technique de release management qui maintient deux environnements de production identiques et interchangeables. Un environnement (Blue) héberge la version actuellement en production, tandis que l'autre (Green) accueille la nouvelle version. La bascule s'effectue au niveau du routeur ou du load balancer, permettant un retour arrière quasi instantané en cas de problème.
Fondements du Blue-Green Deployment
- Deux environnements de production strictement identiques (infrastructure, configuration, capacité)
- Bascule instantanée du trafic via modification de routage DNS, load balancer ou reverse proxy
- Possibilité de rollback immédiat en redirigeant le trafic vers l'environnement précédent
- Validation complète de la nouvelle version en conditions réelles avant exposition aux utilisateurs
Avantages clés
- Zéro downtime lors des déploiements, garantissant la continuité de service
- Rollback quasi instantané (quelques secondes) en cas de détection d'anomalie
- Validation en production réelle sans impact utilisateur grâce aux tests de smoke
- Réduction drastique du risque opérationnel comparé aux déploiements in-place
- Possibilité de tester la charge et les performances en conditions identiques à la production
Exemple concret avec Kubernetes
# Service pointant vers la version active
apiVersion: v1
kind: Service
metadata:
name: my-app
spec:
selector:
app: my-app
version: blue # Basculer à 'green' pour déployer
ports:
- port: 80
targetPort: 8080
---
# Déploiement Blue (version actuelle)
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-blue
spec:
replicas: 3
selector:
matchLabels:
app: my-app
version: blue
template:
metadata:
labels:
app: my-app
version: blue
spec:
containers:
- name: app
image: my-app:v1.2.0
---
# Déploiement Green (nouvelle version)
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-green
spec:
replicas: 3
selector:
matchLabels:
app: my-app
version: green
template:
metadata:
labels:
app: my-app
version: green
spec:
containers:
- name: app
image: my-app:v1.3.0Mise en œuvre étape par étape
- Provisionner deux environnements identiques avec capacité suffisante pour gérer 100% du trafic
- Déployer la version actuelle sur l'environnement Blue et router tout le trafic production vers celui-ci
- Déployer la nouvelle version sur l'environnement Green en parallèle sans affecter la production
- Exécuter les tests de validation (smoke tests, health checks, tests de charge) sur Green
- Basculer progressivement le trafic vers Green (optionnel: commencer par un sous-ensemble d'utilisateurs)
- Monitorer intensivement les métriques clés (erreurs, latence, performances) pendant 15-30 minutes
- Conserver Blue en standby pendant la période de stabilisation (généralement 24-48h)
- En cas de succès, désactiver Blue et le préparer pour le prochain déploiement
Conseil Pro : Gestion des bases de données
La principale complexité du Blue-Green concerne les schémas de base de données. Utilisez des migrations compatibles backward (ajout de colonnes optionnelles, pas de suppressions) et déployez les changements de schéma indépendamment, avant le code applicatif. Considérez l'approche expand-contract pour les modifications structurelles majeures.
Outils et technologies associés
- Kubernetes avec Istio ou Linkerd pour le traffic splitting avancé
- AWS Elastic Load Balancer avec Target Groups pour la bascule d'environnements
- CloudFlare ou Route 53 pour le basculement DNS avec TTL court
- Spinnaker pour l'orchestration automatisée des déploiements multi-cloud
- Argo Rollouts pour les stratégies de déploiement GitOps progressives
- Terraform ou Pulumi pour provisionner des environnements identiques via IaC
Contraintes à anticiper
Le Blue-Green double les besoins en infrastructure pendant le déploiement, ce qui peut représenter un coût significatif. Pour les environnements cloud, optimisez avec l'auto-scaling et déprovisionez rapidement l'environnement inactif. Cette stratégie n'est pas adaptée aux systèmes avec état complexe ou bases de données fortement couplées sans stratégie de migration appropriée.
Le déploiement Blue-Green représente un investissement stratégique pour les organisations visant la haute disponibilité et la réduction des risques opérationnels. Bien que nécessitant une infrastructure doublée temporairement, cette approche élimine pratiquement les interruptions de service et fournit une assurance rollback incomparable. Pour les équipes DevOps matures, elle constitue souvent le palier avant l'adoption de stratégies plus sophistiquées comme le canary deployment ou le feature flagging.

