🐳 Module 51
5

Déploiement zéro downtime et gestion des incidents : les pratiques avancées

Leçon 5 / 5 — 2h

« L'architecture est la volonté d'une époque traduite dans l'espace. »

L

Ludwig Mies van der Rohe

L'Architecte · 1886-1969

Le déploiement graceful : votre boutique ne s'arrête plus

Le déploiement classique — connexion FTP, copie de fichiers, croisement des doigts — est le mode opératoire le plus risqué qui soit. Sur une infrastructure Docker, on parle de graceful reload : les nouveaux conteneurs démarrent, les anciens terminent leurs requêtes en cours, puis s'éteignent proprement. Le visiteur ne voit rien.

La commande concrète pour mettre à jour un service sans coupure :

# Rebuild uniquement le service PHP sans toucher MariaDB ni Nginx\ndocker compose up -d --no-deps --build php\n\n# Vérifier que le nouveau conteneur répond\ncurl -I https://votre-boutique.fr/healthcheck

La stratégie de backup intégrée

Docker simplifie considérablement la gestion des sauvegardes. Voici le pattern recommandé :

# Dump MariaDB vers un fichier daté\ndocker exec mariadb mysqldump \\\n  -u ps_user -p"${DB_PASSWORD}" prestashop \\\n  > backup_$(date +%Y%m%d_%H%M).sql\n\n# Synchroniser vers un stockage distant (S3, OVH Object Storage)\nrclone sync ./backups remote:votre-bucket/prestashop/

Ce script, lancé via un cron quotidien, vous garantit un point de restauration en cas d'incident. En 2026, ne pas avoir de backup automatisé est une faute de gestion, pas un oubli technique.

Surveiller votre stack en production

Une infrastructure Docker sans monitoring est une infrastructure aveugle. Voici les trois métriques à surveiller en priorité :

  • Mémoire consommée par conteneur : docker stats --no-stream — si PHP-FPM consomme plus de 80 % de la RAM allouée, augmentez les ressources ou optimisez le nombre de workers.
  • Logs d'erreur Nginx : docker logs nginx --tail 100 | grep -i error — une erreur 502 Bad Gateway signifie que PHP-FPM ne répond plus.
  • Temps de réponse applicatif : intégrez un endpoint /healthcheck dans votre PrestaShop et monitorez-le via UptimeRobot (gratuit jusqu'à 50 moniteurs).

Plan de reprise d'activité en 3 commandes

Le vrai test d'une infrastructure Docker, c'est de pouvoir répondre à la question : si mon serveur tombe ce soir, combien de temps me faut-il pour remettre la boutique en ligne ? Sur une stack bien configurée, la réponse tient en trois commandes :

# 1. Cloner le dépôt contenant votre docker-compose.yml\ngit clone git@github.com:votre-org/infrastructure.git\n\n# 2. Restaurer la base de données depuis le dernier backup\ndocker exec -i mariadb mysql -u ps_user -p"${DB_PASSWORD}" prestashop < backup_latest.sql\n\n# 3. Lancer la stack complète\ndocker compose up -d

Trente minutes, contre deux à cinq jours sur une infrastructure manuelle. C'est la différence entre un incident et une catastrophe.

A retenir : Testez votre plan de reprise d'activité une fois par trimestre : clonez votre <code>docker-compose.yml</code> sur un nouveau VPS vierge et mesurez le temps nécessaire pour remettre la boutique en ligne.

Questions & Answers

A question about this lesson? The AI replies automatically.

Your questions and the AI's answers are public and enrich the course for everyone. Your email is used only for authentication (legal basis: legitimate interest, retention: 3 years). Privacy policy.