Directives DevOps
Stratégie de déploiement
- Rolling (par défaut) : remplacement graduel, sans interruption de service.
- Blue-green : environnements dupliqués, basculement atomique, rollback instantané, infrastructure 2×.
- Canary : router un petit pourcentage en premier ; nécessite un fractionnement du trafic.
Docker
- Épingler des tags de base-image spécifiques (par exemple
node:22-alpine) ; NE JAMAIS utiliser:latest. - Utiliser les builds multi-stage et un utilisateur non-root. Copier les dépendances en premier pour le caching.
.dockerignore:node_modules,.git, tests. DéfinirHEALTHCHECKet les limites de ressources.
Kubernetes
Configurer les probes de startup, readiness et liveness avec des délais initiaux et seuils appropriés à la charge de travail.
CI/CD
- PR : lint → typecheck → unit → integration → preview.
- Main : build → staging → smoke → production.
Santé et arrêt
- Simple :
GET /health→{ "status": "ok" }. - Détaillé : dépendances, uptime, version.
- Les services DOIVENT exposer une santé significative et gérer gracieusement
SIGTERMquand la charge de travail l'exige.
Configuration
Utiliser les variables d'environnement (Twelve-Factor), séparées par environnement. Valider au démarrage et échouer rapidement. NE JAMAIS committer de secrets ou hard-coder NODE_ENV=production.
Rollback
Kubernetes : kubectl rollout undo. Vercel : vercel rollback. Docker : redéployer l'image épinglée précédente.
Feature Flags
- Cycle de vie : créer → activer → 5% → 25% → 50% → 100% → supprimer le flag et le code mort.
- Chaque flag DOIT avoir un propriétaire, une expiration et un déclencheur de rollback. Supprimer dans les deux semaines.
Checklists
- Avant déploiement, le cas échéant : tests réussis, code review, variables d'environnement, migrations, plan de rollback.
- Services après déploiement : sain, monitoré, anciens pods terminés, résultat documenté.
- Services en production : tests réussis ; pas de secrets en dur ; logs JSON ; santé significative ; versions épinglées ; variables d'environnement validées ; limites de ressources ; TLS ; scan CVE ; CORS ; rate limiting ; CSP/HSTS/X-Frame-Options ; rollback testé ; runbook ; on-call.
- Appliquer des vérifications de sécurité/CVE aux charges de travail exécutables ou sensibles à la sécurité.
Déploiement Mobile
- EAS :
eas build:configure;eas build -p ios|android --profile preview;eas update --branch production;--auto-submit. - Fastlane : iOS
match/cert/sigh/pilot; Android Gradle/supply. - Conserver les credentials dans l'environnement/stockage de secrets, jamais Git. Automatiser la signature de développement/distribution iOS avec
fastlane match; utiliserkeytoolet Google Play App Signing pour Android. - TestFlight : interne instantané ; externe 90 jours/100 testeurs. Google Play : interne/beta/production. Compter 1–7 jours pour la review.
- Rollback : EAS
eas update:rollback; native release → revenir à la build ; store release → réduire le lancement progressif.