Déploiement
Déploiement • Chapitre 12 : Déploiement des applications full-stack

Vérification du fonctionnement global

Le déploiement n'est terminé que lorsque la chaîne complète a été testée en conditions réelles de production. Exécutez le Smoke Test du tunnel critique (inscription, authentification, paiement, écriture BDD), mesurez les Core Web Vitals et validez vos en-têtes de sécurité.

🧪
Smoke Testing

Test rapide de validation vérifiant que les 5 fonctionnalités vitales répondent correctement.

⚡
Core Web Vitals

Mesure du LCP (< 2.5s), INP (< 200ms) et CLS (< 0.1) sur le bundle réel minifié.

🛡️
Security Headers Audit

Vérification des en-têtes HSTS, CSP, X-Frame-Options sur securityheaders.com.

📱
Test Multi-Devices

Validation sur smartphones iOS/Android réels avec des connexions 4G bridées.

production-smoke-test.sh
# 1. Tester la disponibilité et les en-têtes de sécurité du frontend
$ curl -I https://learnweb.com
HTTP/2 200
server: cloudflare
content-type: text/html; charset=UTF-8
strict-transport-security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
x-frame-options: DENY

# 2. Tester l'endpoint de santé (Health Check) de l'API distante
$ curl -s https://api.learnweb.com/health | jq .
{
  "status": "healthy",
  "uptime": 14280,
  "database": "connected",
  "memoryUsage": "48.2 MB",
  "timestamp": "2026-10-11T15:20:00Z"
}

# 3. Simuler une authentification complète en ligne de commande
$ curl -X POST https://api.learnweb.com/api/v1/auth/login   -H "Content-Type: application/json"   -d '{"email":"test.smoke@learnweb.com","password":"ValidSecretPass123!"}'
{"token":"eyJhbGciOi...","user":{"id":1,"role":"admin"}}
# ✅ La chaîne complète Frontend -> CDN -> API -> BDD fonctionne à 100% !

Guide Approfondi & Architecture Système

1. La Checklist du « Smoke Test » Post-Déploiement

Ne vous contentez jamais de regarder si la page d'accueil s'affiche :
  1. Création de compte / Connexion : Valide que la base de données accepte les écritures et que les JWT sont signés.
  2. Action métier principale : Ajouter un article au panier ou créer un post (vérifie les transactions SQL).
  3. Rafraîchissement sur route imbriquée (F5) : Rechargez la page /profil/commandes pour valider que Nginx ne renvoie pas d'erreur 404.
  4. Console Développeur F12 : Vérifiez qu'aucune ligne rouge (erreur CORS, Mixed Content, ressource 404 manquante) n'apparaît.

2. Mesurer les Performances Réelles avec Lighthouse

Ouvrez les DevTools de Chrome dans un onglet de navigation privée :

Lancez un audit Lighthouse en mode Mobile. Visez un score supérieur à 90 en Performance et 100 en Bonnes Pratiques et SEO. Les temps de réponse en production doivent être nettement supérieurs à votre environnement local grâce à la minification et aux caches CDN !

Tableau de Validation : Critères d'Acceptation de Mise en Production

IndicateurValeur Cible RequiseOutil de MesureVerdict
Temps de réponse API (/health)< 100 mscurl -w '%{time_total}'✅ Validé
Largest Contentful Paint (LCP)< 2.5 secondesGoogle PageSpeed Insights / Lighthouse✅ Validé
En-têtes de SécuritéNote A ou A+securityheaders.com✅ Validé
Disponibilité globale (SLA)99.9% de requêtes 200 OKBetterStack / UptimeRobot✅ Validé