Ce que vous allez apprendre dans ce TP
- Appliquer « build once, deploy many »
- Déployer en blue/green avec smoke test
- Revenir en arrière instantanément
Introduction #
Ce que vous allez apprendre dans cette section
- Appliquer « build once, deploy many »
- Déployer en blue/green avec smoke test
- Revenir en arrière instantanément
Contexte. Les mises en production provoquent dix minutes d'interruption et un retour arrière prend une heure. Vous mettez en place un déploiement blue/green scripté, utilisable tel quel par un pipeline.
Prérequis : Docker et Git installés sur votre poste · Durée estimée : 45 min
Une bascule sans interruption et un retour arrière en quelques secondes.Mise en place #
Étapes guidées, avec leur correction.
1. Construire et versionner l'image
Pourquoi ? L'image est construite une fois et identifiée par le SHA du commit ; la version n'est jamais écrasée.
Créez une petite application qui affiche sa version (lue dans une variable d'environnement), construisez l'imageshop:v1et démarrez un registre local pour la publier.2. Mettre en place le routeur
Pourquoi ? Le routeur est le seul point que l'on modifie pour basculer : les deux versions tournent en parallèle.
Créez un réseau Docker, lancez le conteneurblueet un nginx dont le fichierupstream.confpointe vers blue.3. Écrire le script de déploiement
Pourquoi ? Un script idempotent est ce qu'un pipeline appellera : démarrer la couleur inactive, tester, basculer, ou abandonner.
Écrivezdeploy.sh IMAGE VERSION: il démarre la couleur inactive, lance un smoke test sur/health, bascule nginx avecnginx -s reloaden cas de succès, ou supprime le nouveau conteneur et échoue sinon.4. Déployer la v2 sans interruption
Pourquoi ? Une boucle de requêtes pendant le déploiement prouve l'absence d'interruption.
Dans un second terminal, interrogez le routeur en boucle. Déployez l'image avecVERSION=v2(même image, configuration différente) et observez la bascule.5. Bloquer une version défectueuse
Pourquoi ? Le smoke test est la porte de sortie : une version cassée ne reçoit jamais de trafic.
Déployez une v3 dont le contrôle de santé échoue (BROKEN=1). Le script doit échouer avec un code non nul et la v2 doit rester en service.6. Revenir en arrière
Pourquoi ? En blue/green, l'ancienne version est encore là : revenir en arrière est une simple bascule.
Basculez manuellement le routeur vers la couleur précédente, vérifiez, puis nettoyez l'environnement.
Niveau de difficulté : ●●●○○ (3/5)
Mon suivi
Connectez-vous pour suivre votre progression et prendre des notes. Se connecter
Glossaire de la formation
DevOps
Culture, mouvement et pratiques visant à unifier le développement logiciel (Dev) et l'administration des infrastructures informatiques (Ops).Découvrir...
DevSecOps
Intégration native de la sécurité (Security) dès la conception et tout au long du cycle de vie DevOps (approche "Shift-Left").Voir comment intégrer la...
AIOps (Artificial Intelligence for IT Operations)
Utilisation de l'intelligence artificielle et de l'apprentissage automatique pour automatiser et améliorer les opérations informatiques (ex: détection...
NoOps
Concept où l'environnement informatique est tellement automatisé et abstrait (ex: Serverless, PaaS) qu'il ne nécessite quasiment plus d'équipe opérati...
GitOps
Pratique de déploiement continu où un dépôt Git sert de source unique de vérité déclarative pour l'infrastructure et les applications.Maîtriser le dép...
FinOps (Financial Operations)
Culture de responsabilité financière du Cloud visant à maximiser la valeur métier en optimisant les coûts. Elle permet une collaboration étroite entre...
SRE (Site Reliability Engineering)
Discipline qui applique les principes de l'ingénierie logicielle aux problématiques d'exploitation. Le but est de créer des systèmes hautement scalabl...
Platform Engineering
Discipline consistant à concevoir et construire des chaînes d'outils et des flux de travail permettant aux développeurs de gérer leur infrastructure e...
Articles recommandés
CI/CD de bout en bout (3/5) : artefacts, registres et environnements
Livrer en continu : artefacts immuables et versionnés, registres d'images et de paquets, promotio...
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...
Mur de la confusion
Le 'mur de la confusion' (ou 'wall of confusion') est une métaphore souvent utilisée dans le cont...
Soutien Logistique Intégré
Soutien Logistique Intégré (SLI) (L'Integrated Logistics Support (ILS) en anglais), est une appro...
Application 12 Facteurs
Un guide détaillé sur la méthodologie des 12 facteurs pour le développement d'applications modern...
Le framework CALMS : Les 5 piliers du DevOps
Découvrez le framework CALMS, le socle indispensable pour réussir votre transformation DevOps à t...
Bonnes pratiques DevOps : culture, CI/CD, infrastructure as code et mesure
Bonnes pratiques DevOps : culture et collaboration, intégration et livraison continues, trunk-bas...
Tests de charge avec Grafana k6 : pourquoi et quels types de tests
Pourquoi tester la performance avant la production, les types de tests (smoke, charge, stress, pi...
Écrire des scripts k6 : requêtes, vérifications, scénarios et exécuteurs
La structure d'un script k6 (init, setup, default, teardown), les requêtes HTTP, les checks, les ...