7 min lecture • Guide 364 of 877
Stratégies de Déploiement Continu
Le déploiement continu signifie que chaque changement qui passe les tests va en production automatiquement. Cela nécessite une confiance dans vos tests, votre surveillance et vos capacités de rollback. Bien fait, cela accélère la livraison et réduit les risques. Mal fait, cela crée le chaos.
Spectre de Déploiement
| Niveau | Automatisation | Risque |
|---|---|---|
| Manuel | Faible | Élevé par déploiement |
| Livraison Continue | Élevée | Plus faible |
| Déploiement Continu | Complète | Le plus faible (petits changements) |
Prérequis
Ce Dont Vous Avez Besoin D'abord
PRÉREQUIS CD
════════════
TESTS :
─────────────────────────────────────
Avant déploiement continu :
├── Tests unitaires complets
├── Tests d'intégration
├── Tests E2E pour chemins critiques
├── Haute confiance dans la suite
├── Les tests attrapent les vrais bugs
└── Pas de tests instables
PIPELINE :
─────────────────────────────────────
├── CI rapide (< 15 minutes idéal)
├── Portes qualité automatisées
├── Pas d'étapes manuelles
├── Infrastructure fiable
├── Exécution parallèle
└── Feedback rapide
SURVEILLANCE :
─────────────────────────────────────
├── Suivi d'erreurs temps réel
├── Surveillance performance
├── Dashboards métriques métier
├── Alertes sur anomalies
├── Savoir quand ça casse
└── Détection rapide
ROLLBACK :
─────────────────────────────────────
├── Rollback en un clic
├── Rollback migrations base
├── Testé régulièrement
├── Exécution rapide (< 5 min)
├── Confiance pour rollback
└── Filet de sécurité
FEATURE FLAGS :
─────────────────────────────────────
├── Découpler déploiement de release
├── Contrôler activation fonctionnalité
├── Capacité rollout progressif
├── Kill switch pour problèmes
├── Essentiel pour CD
└── Expérimentation sûre
Pipeline de Déploiement
Flux Automatisé
PIPELINE CD
═══════════
ÉTAPES DU PIPELINE :
─────────────────────────────────────
Push vers main
│
▼
┌─────────────┐
│ Build │ Compiler, dépendances
└──────┬──────┘
│
▼
┌─────────────┐
│Tests Unitaires│ Rapides, complets
└──────┬──────┘
│
▼
┌─────────────┐
│ Intégration │ Base de données, APIs
│ Tests │
└──────┬──────┘
│
▼
┌─────────────┐
│ Sécurité │ SAST, scan dépendances
│ Scan │
└──────┬──────┘
│
▼
┌─────────────┐
│ Déployer │ Environnement staging
│ Staging │
└──────┬──────┘
│
▼
┌─────────────┐
│ Tests E2E │ Contre staging
│ Smoke Tests │
└──────┬──────┘
│
▼
┌─────────────┐
│ Déployer │ Déploiement production
│ Production │ (canary ou complet)
└──────┬──────┘
│
▼
┌─────────────┐
│ Surveiller │ Observer métriques
│ & Vérifier │ Auto-rollback si problèmes
└─────────────┘
VITESSE PIPELINE :
─────────────────────────────────────
Temps cibles :
├── Build : 2-3 min
├── Tests unitaires : 3-5 min
├── Intégration : 5-10 min
├── Déployer staging : 2-3 min
├── Tests E2E : 5-10 min
├── Déployer prod : 2-5 min
├── Total : 20-35 min
└── Le plus rapide possible
Stratégies de Rollout
Approches de Déploiement
STRATÉGIES DE ROLLOUT
═════════════════════
DÉPLOIEMENT ROLLING :
─────────────────────────────────────
Remplacement progressif :
├── Déployer sur sous-ensemble serveurs
├── Health check passe
├── Déployer sur plus
├── Finalement tous remplacés
├── Zéro temps d'arrêt
└── Transition progressive
[Ancien] [Ancien] [Ancien] [Ancien]
↓
[Nouveau] [Ancien] [Ancien] [Ancien]
↓
[Nouveau] [Nouveau] [Ancien] [Ancien]
↓
[Nouveau] [Nouveau] [Nouveau] [Nouveau]
DÉPLOIEMENT CANARY :
─────────────────────────────────────
Tester avec petit traffic :
├── Déployer vers 1-5% du traffic
├── Surveiller métriques
├── Comparer à la baseline
├── Si OK, étendre
├── Si mauvais, rollback
└── Risque contrôlé
Répartition traffic :
│ 95% → [Ancienne Version]
│ 5% → [Nouvelle Version] ← Surveiller
BLUE-GREEN :
─────────────────────────────────────
Environnements parallèles :
├── Blue : Production actuelle
├── Green : Nouvelle version
├── Tester green complètement
├── Basculer le traffic
├── Garder blue pour rollback
└── Bascule instantanée
┌──────────┐
Users ─┤ Router ├─── Blue (actuel)
│ │
│ ├─── Green (nouveau)
└──────────┘
│
Basculer quand prêt
FEATURE FLAGS :
─────────────────────────────────────
Déployer code, contrôler activation :
├── Code déployé mais flag off
├── Activer pour utilisateurs internes
├── Activer pour 10% utilisateurs
├── Activer pour tous
├── Séparer déploiement de release
└── Contrôle maximum
Surveillance
Surveillance des Déploiements
SURVEILLANCE DÉPLOIEMENT
════════════════════════
MÉTRIQUES CLÉS À OBSERVER :
─────────────────────────────────────
Après déploiement :
├── Taux d'erreur
├── Temps de réponse
├── Usage CPU/mémoire
├── Volume requêtes
├── Métriques métier
└── Comparé à la baseline
VÉRIFICATIONS AUTOMATISÉES :
─────────────────────────────────────
Vérification post-déploiement :
├── Check endpoint santé
├── Suite smoke tests
├── Seuil taux d'erreur
├── Seuil latence
├── Déclencheurs auto-rollback
└── Sécurité automatisée
DASHBOARD :
─────────────────────────────────────
Visibilité temps réel :
│ Taux Erreur : 0.1% ✓ (baseline: 0.1%)
│ Latence p99 : 120ms ✓ (baseline: 115ms)
│ Requêtes : 1.2K/min ✓
│ CPU : 45% ✓
│ Déploiements aujourd'hui : 3
│ Dernier déploiement : il y a 15 min
└── Santé d'un coup d'œil
ALERTES :
─────────────────────────────────────
Déclencheurs d'alerte :
├── Taux erreur > 1%
├── Latence > 2x baseline
├── Health checks échoués
├── Mémoire > 90%
├── Notification immédiate
└── Réponse rapide
Rollback
Récupération Rapide
STRATÉGIE DE ROLLBACK
═════════════════════
TYPES DE ROLLBACK :
─────────────────────────────────────
Rollback instantané :
├── Déployer version précédente
├── Kubernetes : kubectl rollout undo
├── Container : image précédente
├── Blue-green : basculer retour
├── < 5 minutes
└── Toujours possible
Désactivation feature flag :
├── Désactiver la fonctionnalité
├── Code reste déployé
├── Feature désactivée
├── Effet instantané
├── Pas de déploiement nécessaire
└── Option la plus rapide
QUAND ROLLBACK :
─────────────────────────────────────
Déclencher rollback :
├── Pic taux d'erreur
├── Dégradation performance majeure
├── Bug critique découvert
├── Problèmes côté client
├── Ne pas attendre, rollback
└── Corriger en avant après
ROLLBACK AUTOMATISÉ :
─────────────────────────────────────
Critères :
├── Taux erreur > seuil pendant 5 min
├── Health checks échoués x3
├── Latence p99 > 2x baseline
├── Auto-retour vers précédent
├── Notifier l'équipe
└── Filet sécurité automatisé
CONSIDÉRATIONS BASE DE DONNÉES :
─────────────────────────────────────
├── Migrations compatibles avant
├── Changements additifs seulement
├── Ancien code fonctionne avec nouveau schéma
├── Séparer déploiements migration
├── Prudence avec changements données
└── Migrations rollback-friendly
Intégration GitScrum
Suivi des Déploiements
GITSCRUM POUR CD
════════════════
SUIVI DÉPLOIEMENT :
─────────────────────────────────────
├── Lier commits aux tâches
├── Historique déploiement visible
├── Quoi livré quand
├── Traçabilité
└── Connecté
TÂCHES DÉPLOIEMENT :
─────────────────────────────────────
├── Label : deployment
├── Tracker améliorations déploiement
├── Améliorations pipeline
├── Configuration surveillance
└── Amélioration continue
SUIVI INCIDENTS :
─────────────────────────────────────
Quand problèmes surviennent :
├── Créer tâche incident
├── Lier au déploiement
├── Analyse cause racine
├── Actions d'amélioration
└── Apprendre et améliorer
Meilleures Pratiques
Pour le Déploiement Continu
- Petits changements — Moins de risque par déploiement
- Tests complets — Confiance pour déployer
- Feature flags — Contrôler les releases
- Tout surveiller — Savoir quand ça casse
- Rollback rapide — Récupérer vite
Anti-Patterns
ERREURS CD :
✗ Déployer sans tests
✗ Pas de surveillance
✗ Rollback lent
✗ Gros changements d'un coup
✗ Pas de feature flags
✗ Ignorer les échecs
✗ Pas d'environnement staging
✗ Migrations base couplées