Aller au contenu principal

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

SujetRisque
CodeRevenir au code précédent peut être simple si le commit est connu.
Base de donnéesUne migration destructive peut rendre le rollback difficile.
CacheDes caches Laravel ou CDN peuvent conserver un état incohérent.
WorkersDes jobs en cours peuvent exécuter une ancienne logique.
FrontendsAPI et UI peuvent devenir incompatibles.
PaiementWebhooks 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

  1. Identifier le commit ou tag stable précédent.
  2. Mettre l'application en maintenance si nécessaire.
  3. Revenir au commit cible.
  4. Réinstaller dépendances si besoin.
  5. Reconstruire caches Laravel.
  6. Redémarrer workers.
  7. Purger cache CDN si nécessaire.
  8. Vérifier health check et logs.
  9. 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.