← Retour au portail

Fiche 4 - Stratégies de rollback et déploiement progressif

Comprendre les stratégies de déploiement progressif (blue-green, canary) et savoir préparer un plan de retour en arrière fiable avant toute mise en production.

Niveau avancé ⏱️ 20 min 📁 Déploiement

🎯 Objectifs de la fiche

  1. Pourquoi prévoir un plan de retour en arrière — Un déploiement peut toujours échouer
  2. Déploiement blue-green — Deux environnements identiques, bascule instantanée
  3. Déploiement canary — Exposer progressivement une nouvelle version
  4. Rolling update — Remplacement progressif des instances, une par une
  5. Choisir la stratégie adaptée au contexte — Critères de décision selon les contraintes du projet

Prérequis

Avoir vu les fiches précédentes sur le déploiement de service et les tests d'intégration/acceptation. Notions de base en conteneurisation (Docker) utiles mais non obligatoires.

1. Pourquoi prévoir un plan de retour en arrière

Aucun déploiement n'est garanti à 100 % sans risque, même après des tests rigoureux : un comportement imprévu peut n'apparaître qu'en conditions réelles de production. Un plan de retour en arrière (rollback) documenté permet de revenir rapidement à la version stable précédente, plutôt que de tenter de corriger en urgence sur un service déjà en panne.

⚠️ Improviser un rollback au moment de l'incident, sans procédure préparée à l'avance, est l'une des causes les plus fréquentes d'allongement de la durée d'une panne de production.

2. Déploiement blue-green

Deux environnements de production identiques coexistent : « bleu » (la version actuelle, qui reçoit tout le trafic) et « vert » (la nouvelle version, déployée et testée en parallèle, sans trafic réel). Une fois la version verte validée, le trafic bascule instantanément vers elle. En cas de problème, revenir au bleu est immédiat puisqu'il est resté disponible et inchangé.

AvantageLimite
Rollback quasi instantané (simple bascule)Nécessite de doubler temporairement l'infrastructure
Validation possible en conditions réelles avant basculeLes migrations de base de données restent délicates à gérer entre les deux versions

3. Déploiement canary

Plutôt qu'une bascule totale, la nouvelle version n'est exposée qu'à une petite fraction du trafic réel (ex: 5 % des utilisateurs), pendant que la majorité continue d'utiliser la version stable. Si aucune anomalie n'est détectée, la part de trafic dirigée vers la nouvelle version augmente progressivement jusqu'à 100 %.

Exemple de progression d'un déploiement canary :
Étape 1 : 5 %  du trafic vers la nouvelle version → surveillance des erreurs
Étape 2 : 25 % du trafic vers la nouvelle version → surveillance des erreurs
Étape 3 : 50 % du trafic vers la nouvelle version → surveillance des erreurs
Étape 4 : 100 % du trafic vers la nouvelle version → ancienne version retirée
ℹ️ Le nom « canary » fait référence aux canaris autrefois utilisés dans les mines pour détecter un danger avant qu'il n'affecte les mineurs — ici, un petit groupe d'utilisateurs « détecte » un problème avant qu'il n'affecte tout le monde.

4. Rolling update

Les instances de l'application (ex: plusieurs conteneurs derrière un répartiteur de charge) sont remplacées une par une par la nouvelle version, en gardant toujours une partie des instances disponibles. C'est la stratégie par défaut de nombreux orchestrateurs (Docker Swarm, Kubernetes).

StratégieGranularité de la basculeComplexité de mise en place
Blue-greenBascule totale et instantanéeMoyenne (double infrastructure)
CanaryProgressive, par pourcentage de traficÉlevée (nécessite un routage fin du trafic)
Rolling updateProgressive, instance par instanceFaible à moyenne (souvent natif aux orchestrateurs)

5. Choisir la stratégie adaptée au contexte

Le choix dépend des contraintes réelles du projet : criticité du service, budget infrastructure disponible, outillage déjà en place, et capacité de l'équipe à surveiller un déploiement progressif en temps réel.

ContexteStratégie souvent adaptée
Service critique, budget infrastructure suffisantBlue-green
Grand nombre d'utilisateurs, besoin de détecter les bugs progressivementCanary
Petite structure, orchestrateur de conteneurs déjà en placeRolling update
Projet pédagogique ou environnement de test simpleSauvegarde + redéploiement manuel suffisant, sans stratégie avancée
💡 Pour un projet de petite envergure (atelier de professionnalisation, environnement de test), une simple sauvegarde de la version précédente avant déploiement, avec un script de redéploiement testé, constitue déjà un plan de rollback raisonnable — il n'est pas nécessaire de viser systématiquement le blue-green ou le canary.
Pourquoi prévoir un plan de rollback même après des tests rigoureux avant déploiement ?
  • Ce n'est jamais nécessaire si les tests sont bons
  • Un comportement imprévu peut n'apparaître qu'en conditions réelles de production
  • Les tests garantissent toujours zéro problème
  • Le rollback remplace les tests

✅ Réponse : Un comportement imprévu peut n'apparaître qu'en conditions réelles de production

Quel est le principe du déploiement blue-green ?
  • Remplacer les instances une par une progressivement
  • Faire coexister deux environnements identiques et basculer le trafic instantanément vers le nouveau
  • Exposer la nouvelle version à un faible pourcentage d'utilisateurs
  • Ne jamais tester en conditions réelles

✅ Réponse : Faire coexister deux environnements identiques et basculer le trafic instantanément vers le nouveau

Que désigne un déploiement « canary » ?
  • Une bascule totale et immédiate
  • Une exposition progressive de la nouvelle version à une part croissante du trafic
  • Un déploiement sans aucune surveillance
  • Une stratégie réservée uniquement aux grandes entreprises

✅ Réponse : Une exposition progressive de la nouvelle version à une part croissante du trafic

Quelle stratégie remplace les instances applicatives une par une, en gardant toujours une partie disponible ?
  • Blue-green
  • Canary
  • Rolling update
  • Aucune de ces stratégies

✅ Réponse : Rolling update

Pour un petit projet pédagogique, quelle approche de rollback est généralement suffisante ?
  • Un déploiement blue-green complet obligatoire
  • Une sauvegarde de la version précédente avec un script de redéploiement testé
  • Aucun plan de rollback n'est nécessaire
  • Un déploiement canary à grande échelle

✅ Réponse : Une sauvegarde de la version précédente avec un script de redéploiement testé

🎯 Passer l'évaluation de cette fiche