Rollbacks
Statut
Document de cadrage DevOps — version initiale.
Objectif
Un rollback doit permettre de revenir rapidement à un état stable après un déploiement défectueux.
La procédure doit être claire avant incident.
État actuel visible
Le script deployment/deploy.sh déploie en faisant un git reset --hard origin/main.
Il ne documente pas explicitement une procédure de rollback vers un tag, un commit précédent ou un artefact de release.
Risques liés au rollback
| Sujet | Risque |
|---|---|
| Code | Revenir au code précédent peut être simple si le commit est connu. |
| Base de données | Une migration destructive peut rendre le rollback difficile. |
| Cache | Des caches Laravel ou CDN peuvent conserver un état incohérent. |
| Workers | Des jobs en cours peuvent exécuter une ancienne logique. |
| Frontends | API et UI peuvent devenir incompatibles. |
| Paiement | Webhooks Stripe doivent rester compatibles. |
Doctrine
- Tout déploiement production doit identifier le commit livré.
- Les migrations doivent être réversibles ou accompagnées d'un plan.
- Les changements API doivent rester compatibles quand possible.
- Les workers doivent être redémarrés après rollback.
- Les caches doivent être purgés si nécessaire.
- La décision rollback doit être rapide et documentée.
Procédure cible
- Identifier le commit ou tag stable précédent.
- Mettre l'application en maintenance si nécessaire.
- Revenir au commit cible.
- Réinstaller dépendances si besoin.
- Reconstruire caches Laravel.
- Redémarrer workers.
- Purger cache CDN si nécessaire.
- Vérifier health check et logs.
- Documenter l'incident.
Migrations
Les rollbacks de base de données doivent être traités avec prudence.
Avant toute migration production :
- vérifier l'impact ;
- sauvegarder si nécessaire ;
- éviter les suppressions immédiates ;
- préférer les déploiements compatibles en deux temps ;
- documenter le retour arrière.
Points à clarifier
- Stratégie de tags/releases.
- Conservation des artefacts.
- Backups avant migration.
- Commande officielle de rollback.
- Responsables d'autorisation.
- Procédure frontend.