DEV NOTE
Déploiement en production : check-list et bonnes pratiques de livraison
Une check-list de livraison pour préparer la production, vérifier les accès et transmettre un projet repris par l’équipe.
Gestion de projet & freelanceTEMPS DE LECTURE : 4 MIN
Pourquoi un déploiement structuré ?
La livraison en production est
l'étape critique du projet.
Mauvais deploy = downtime, bugs, perte confiance client.
"Tu ne veux jamais croiser les doigts en prod. Un bon déploiement, c'est une livraison maîtrisée."
Check-list pré-déploiement
Tests validés
- Tests unitaires passés (npm test)
- Tests E2E validés (Playwright/Cypress)
- Tests manuels features critiques
- Performance acceptable (Lighthouse > 90)
- Accessibilité vérifiée (a11y)
Variables d'environnement
- Fichier .env.production configuré
- Secrets stockés sécurisés (Vercel Env, Railway Secrets)
- API keys production activées (Stripe live mode, etc.)
- URLs production correctes (frontend backend)
Exemple .env.production :
NODE_ENV=production
DATABASE_URL=postgresql://prod_user@prod_db/myapp
STRIPE_SECRET_KEY=sk_live_...
FRONTEND_URL=https://monapp.com
BACKEND_URL=https://api.monapp.com
JWT_SECRET=secret_ultra_securise_32_chars
Backup base de données
- Export DB avant migration
- Snapshot/backup automatique activé
- Test restauration backup (au moins 1 fois)
Commandes PostgreSQL :
Backup :
pg_dump -U user -d dbname > backup_20251113.sql
Restore (si besoin) :
psql -U user -d dbname < backup_20251113.sql
Monitoring activé
- Error tracking (Sentry configuré)
- Uptime monitoring (UptimeRobot, Ping dom)
- Logs accessibles (Vercel Logs, Railway Console)
- Alertes email/Slack configurées
Documentation à jour
- README.md complet
- Guide déploiement (docs/DEPLOY.md)
- Procédure rollback documentée
- Contacts support/maintenance
Plan de rollback
- Git tag version stable (git tag v1.0.0)
- Procédure retour arrière testée
- Backup DB récent (< 24h)
- Contact client pour validation rollback si besoin
Outils CI/CD recommandés
GitHub Actions
Workflow exemple :
name: Deploy Production
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install deps
run: npm install
- name: Run tests
run: npm test
- name: Build
run: npm run build
- name: Deploy Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: secrets.VERCEL_TOKEN
vercel-org-id: secrets.ORG_ID
vercel-project-id: secrets.PROJECT_ID
vercel-args: '--prod'
GitLab CI
stages:
- test
- build
- deploy
test:
stage: test
script:
- npm install
- npm test
deploy_production:
stage: deploy
script:
- npm run build
- vercel --prod --token=VERCEL_TOKEN
only:
- main
Hébergeurs recommandés
Frontend statique
- Vercel : React/Next.js, deploy auto, preview URLs
- Netlify : Alternative Vercel, forms intégrés
- Cloudflare Pages : CDN ultra-rapide, gratuit
Backend + DB
- Railway : PostgreSQL + Node.js, simple config
- Render : Alternative Railway, plan gratuit
- Fly.io : Global edge deployment
- AWS/Azure : Gros projets, scalabilité
Full-stack
- Vercel (Next.js full-stack)
- Heroku : Simple mais cher
- DigitalOcean App Platform : Droplets + managed
Stratégies de déploiement
1. Rolling deployment (standard)
- Remplace ancienne version par nouvelle
- Downtime minimal (quelques secondes)
- Rollback = redeploy version précédente
2. Blue-Green deployment
- 2 environnements : Blue (actuel) + Green (nouveau)
- Switch instantané DNS/load balancer
- Rollback immédiat (re-switch vers Blue)
- Coût : double infra temporairement
3. Canary deployment
- Déploie nouvelle version pour 5-10% users
- Monitor erreurs/performance
- Si OK → rollout 100%
- Usage : apps critiques, forte audience
Post-déploiement
Surveillance immédiate (24-48h)
- Vérifier logs (pas d'erreurs critiques)
- Tester flows principaux (auth, paiement)
- Monitor Sentry (zero errors idéalement)
- Check uptime (100% sur UptimeRobot)
- Performance (response time < 500ms)
Communication client
Objet : [Projet X] Mise en production réussie
Bonjour [Client],
Le projet est maintenant en production !
URL : https://monapp.com
Monitoring : Dashboard Vercel
Support : contact@monapp.com
Prochaines étapes :
- Surveillance 48h (je reste dispo)
- Formation utilisateurs (si prévu)
- Maintenance J+30 (incluse)
Tout fonctionne parfaitement. N'hésite pas pour questions.
Félicitations pour le lancement ! [Ton nom]
Checklist déploiement finale
- Tests unitaires + E2E passés
- Env vars production configurées
- Backup DB effectué
- Monitoring activé (Sentry, UptimeRobot)
- Documentation mise à jour
- Plan rollback préparé
- Git tag version (v1.0.0)
- CI/CD pipeline fonctionnel
- DNS/domaine configuré
- HTTPS/SSL actif
- Client prévenu + accès fournis
- Surveillance 48h planifiée
Outils alerting
- Sentry : error tracking temps réel
- UptimeRobot : monitoring uptime (gratuit 50 monitors)
- Grafana : dashboards métriques avancées
- Datadog : APM complet (enterprise)
- PagerDuty : alertes on-call
Conclusion
Un déploiement réussi =
préparation + checklist + monitoring.
Pas de place pour l'improvisation en production.
Clone cette checklist pour chaque projet : zéro stress, zéro surprise.