J'ai travaillé sur plusieurs projets dans lesquels j'ai déplacé des applications du PoC vers la production.
Voici les listes de contrôle que j'ai préparées pour moi et mon équipe afin de garantir que nous sommes prêts pour la production.
Ici, les listes de contrôle sont au centre car l'application est en langage de programmation Python et déployée sur AWS via Kubernetes.
Tous ces éléments ne sont pas obligatoires, mais ce sont ceux que j’ai trouvés les plus utiles.
1. Alertes et mesures
- [ ] Des alertes sont-elles configurées pour les problèmes d'infrastructure (par exemple, augmentation de l'utilisation de la mémoire ou du processeur, indisponibilité du service) ?
- [ ] Des alertes sont-elles configurées pour les pannes logiques critiques spécifiques à une application ?
- [ ] Pouvons-nous afficher les données historiques (dernières heures/jours) sur l'utilisation de l'infrastructure et des ressources ?
- [ ] Existe-t-il un tableau de bord de surveillance en temps réel ?
2. Tableau de bord et SOP
- [ ] Existe-t-il un document SOP pour gérer les alertes et les problèmes connus ?
- [ ] Des runbooks sont-ils disponibles pour les scénarios courants ?
- [ ] Existe-t-il un plan de réponse aux incidents ?
3. Cartographie et cadence d'astreinte
- [ ] Existe-t-il un mappage des personnes d'astreinte pour les problèmes au niveau de l'application ?
- [ ] Existe-t-il une cartographie des personnes de garde pour les problèmes liés à l'infrastructure ?
- [ ] Existe-t-il un calendrier de rotation défini et une politique de remontée des informations ?
4. Déploiement
- [ ] Le type d'instance approprié (GPU ou CPU) a-t-il été déterminé ?
- [ ] Le type de serveur requis a-t-il été spécifié ?
- [ ] Existe-t-il une prise en charge de zones multi-disponibilité pour le basculement ?
- [ ] Existe-t-il une prise en charge pour plusieurs régions ?
- [ ] La mise à l'échelle automatique est-elle configurée (par exemple, HPA, Keda) pour les pics de trafic ?
- [ ] Les vérifications de l'état sont-elles configurées pour le serveur ?
- [ ] Les limites des ressources ont-elles été définies et documentées ?
- [ ] Existe-t-il une stratégie de déploiement bleu-vert ou canari ?
- [ ] Existe-t-il un plan et une procédure de restauration définis ?
5. Observabilité et traçage
- [ ] Existe-t-il un tableau de bord affichant les mesures pertinentes (par exemple, nombre de requêtes, codes d'état HTTP, utilisation) ?
- [ ] Pouvons-nous tracer une seule requête de bout en bout à des fins de débogage ?
- [ ] Existe-t-il un système d'agrégation et d'analyse des journaux ?
- [ ] Le traçage distribué est-il implémenté ?
6. Tests de charge
- [ ] Une planification de la capacité a-t-elle été effectuée pour déterminer les capacités de gestion de charge du serveur ?
- [ ] Existe-t-il des critères de performance définis ?
- [ ] Des tests de résistance ont-ils été effectués ?
7. Qualité
- [ ] Existe-t-il des tests unitaires automatisés ?
- [ ] Existe-t-il des tests d'intégration automatisés ?
- [ ] Une analyse de code statique (par exemple, des contrôles de complexité) est-elle effectuée ?
- [ ] La couverture du code est-elle mesurée et à un niveau acceptable ?
- [ ] Existe-t-il des cas de tests d'intégrité de la production ?
- [ ] Existe-t-il un pipeline CI/CD en place ?
- [ ] Des analyses de sécurité et des évaluations de vulnérabilité sont-elles effectuées régulièrement ?
8. Libération
- [ ] La documentation Swagger/OpenAPI est-elle disponible et à jour ?
- [ ] Existe-t-il un système de gestion des versions pour les API et les versions ?
- [ ] Existe-t-il un canal de communication établi pour la maintenance programmée ?
- [ ] Existe-t-il un processus de gestion du changement ?
- [ ] Les indicateurs de fonctionnalités sont-ils utilisés pour le déploiement progressif de nouvelles fonctionnalités ?
9. Reprise après sinistre et continuité des activités
- [ ] Les procédures de sauvegarde et de restauration sont-elles en place et testées ?
- [ ] Existe-t-il une stratégie de réplication des données ?
- [ ] L'objectif de temps de récupération (RTO) et l'objectif de point de récupération (RPO) ont-ils été définis ?
- [ ] Des exercices réguliers de reprise après sinistre sont-ils organisés ?
10. Conformité et sécurité
- [ ] Les données sont-elles chiffrées au repos et en transit ?
- [ ] Des mécanismes de contrôle d'accès et d'authentification sont-ils en place ?
- [ ] Des audits de sécurité sont-ils régulièrement effectués ?
- [ ] L'application est-elle conforme aux normes industrielles pertinentes (par exemple, RGPD, HIPAA) ?
11.Documents
- [ ] La documentation sur l'architecture du système est-elle disponible et à jour ?
- [ ] La documentation de l'API est-elle complète et à jour ?
- [ ] Les procédures opérationnelles sont-elles documentées ?
- [ ] Existe-t-il un guide de dépannage complet ?