Exécution et rollback¶
Exécuter un changement de manière controlee — checklist, points de vérification, critères go/no-go et procédures de rollback.
Checklist pre-déploiement¶
Avant de toucher à la production, une checklist systematique réduit le risque d'oubli critique. Elle doit être validee par le Change Owner et un second (peer check) pour les changements normaux.
| Catégorie | Point de vérification | Statut |
|---|---|---|
| RFC | La RFC est approuvee et à jour | ☐ |
| Communication | Les parties prenantes ont été notifiees | ☐ |
| Backup | Backup/snapshot valide effectue et vérifié | ☐ |
| Rollback | La procédure de rollback est documentee et testée | ☐ |
| Accès | Les accès nécessaires sont disponibles (VPN, credentials, sudo) | ☐ |
| Monitoring | Les tableaux de bord et alertes sont ouverts | ☐ |
| Communication canal | Le canal de coordination (Slack/Teams) est ouvert avec l'équipe | ☐ |
| Durée | La fenêtre disponible couvre exécution + rollback complet | ☐ |
Exécution controlee¶
Un changement en production n'est pas une sequence d'actions techniques — c'est un protocole. Chaque étape doit être journalisee avec horodatage.
Principes d'exécution¶
- Avancer pas a pas : exécuter les étapes une par une, vérifier entre chaque
- Journaliser en temps réel : noter l'heure de chaque action dans le ticket RFC (pas après coup)
- Nommer un coordinateur : une personne pilote l'exécution, les autres exécutent ou surveillent
- Ne pas improviser : si la procédure ne correspond plus à la réalité, s'arrêter et évaluer avant de continuer
Points de vérification intermédiaires¶
Pour les changements longs, définir des checkpoints intermédiaires permettant d'évaluer si on continue ou on s'arrêté.
Un checkpoint inclut :
- métriques attendues (taux d'erreur, latence, connexions actives)
- comportement attendu des logs
- décision : continuer / marquer un warning / rollback immédiat
Critères go/no-go¶
Les critères go/no-go sont des seuils pre-définis qui déterminent objectivement si on continue ou si on déclenche le rollback. Ils doivent être définis avant la fenêtre, pas pendant.
| Critère | Seuil Go | Seuil No-Go |
|---|---|---|
| Taux d'erreur HTTP 5xx | < 0.1 % baseline | > 1 % pendant > 2 min |
| Latence P99 | < 200 ms baseline | > 500 ms pendant > 3 min |
| Disponibilité du service | 100 % | Health check en échec > 30 s |
| Consommation CPU/RAM | < 70 % | > 90 % pendant > 5 min |
| Alertes criantes | Aucune alerte critique | Toute alerte P1/P2 déclenchée |
Rollback impossible — le roll forward
Certains changements ne peuvent pas être rollbackes : migration de schéma de base de données avec suppression de colonnes, changement de format de données sans backward compatibility, mise à jour de firmware matériel. Dans ces cas, la stratégie est le roll forward : préparer à l'avance le correctif du problème le plus probable et l'appliquer en urgence plutôt que de tenter un rollback impossible. Cette stratégie doit être identifiée et documentee avant la fenêtre, jamais découverte pendant.
Procédures de rollback¶
Un rollback est une procédure technique, pas une décision de panique. Elle doit être préparée, testée et documentee comme toute autre procédure.
Décision tree rollback¶
graph TD
A["Changement execute"] --> B{"Criteres go/no-go<br/>OK ?"}
B -->|Oui| C["Continuer l'execution<br/>ou passer aux smoke tests"]
B -->|Non| D{"Rollback<br/>possible ?"}
D -->|Oui| E["Executer le rollback<br/>selon la procedure"]
D -->|Non| F["Roll forward<br/>correctif pre-prepare"]
E --> G{"Service restaure ?"}
G -->|Oui| H["Clore l'incident<br/>PIR obligatoire"]
G -->|Non| I["Escalade immediate<br/>mobiliser backup"]
F --> G Composantes d'une procédure de rollback¶
| Élément | Description |
|---|---|
| Déclencheur | Condition exacte qui déclenche le rollback (lier aux critères go/no-go) |
| Décision owner | Qui à l'autorité de dire "on rollback" — Change Owner ou coordinateur |
| Étapes techniques | Sequence précisé avec commandes ou procédures |
| Durée estimée | Temps attendu pour le rollback complet |
| Vérification | Comment confirmer que le rollback est complet et le service restaure |
Smoke tests post-changement¶
Les smoke tests sont des verifications rapides (5-15 minutes) qui confirment que les fonctions critiques du service fonctionnent après le changement.
Principes¶
- Cibler les fonctions critiques : login, transaction principale, API health check — pas un test exhaustif
- Automatiser quand possible : un script de smoke test lance après chaque déploiement est plus fiable qu'une checklist manuelle
- Définir le critère de succès : vert = on clôture la fenêtre, rouge = on évalué go/no-go
Exemple de vérification manuelle structurée¶
| Fonction | Vérification | Résultat attendu |
|---|---|---|
| Health check API | GET /health retourné 200 | HTTP 200, {"status": "ok"} |
| Authentification | Login avec compte test | Succès, token emis |
| Fonction principale | Transaction de test de bout en bout | Completee sans erreur |
| Monitoring | Alertes actives | Aucune alerte critique |
| Logs | Logs post-changement | Aucune erreur inattendue |
Outils¶
| Outil | Description | Lien |
|---|---|---|
| Runbook automation (PagerDuty, Rundeck) | Exécution de runbooks avec journalisation automatique | rundeck.com |
| Grafana | Tableaux de bord de monitoring pour suivi pendant la fenêtre | grafana.com |
| k6 / curl | Smoke tests HTTP simples et rapides | k6.io |
| Checklist.gg | Checklists collaboratives en ligne pour les procédures | checklist.gg |