OPS 6: Comment réduisez-vous les risques de déploiement ?
Adoptez des approches offrant un retour rapide sur la qualité et permettant une restauration rapide lorsque des modifications n'ont pas les résultats escomptés. L'utilisation de ces pratiques diminue l'impact des problèmes découlant du déploiement des modifications.
Ressources
Deep Dive on Advanced Continuous Delivery Techniques Using AWS
AWS Developer Tools
AWS CodeDeploy User Guide
Try a Sample Blue/Green Deployment in AWS CodeDeploy
Bonnes pratiques:
-
Prévoir les modifications qui échouent: Planifiez de revenir à un état antérieur connu pour être bon, ou corrigez l'environnement de production si une modification n'a pas le résultat escompté. Cette préparation accélère la reprise grâce à des réponses plus rapides.
-
Tester et valider les modifications: Testez les modifications et validez les résultats à toutes les étapes du cycle de vie afin de vérifier les nouvelles fonctionnalités et de réduire les risques et l'impact des déploiements ayant échoué.
-
Utiliser des systèmes de gestion de déploiement: Utilisez les systèmes de gestion de déploiement pour suivre et mettre en œuvre des modifications. Cela permet de réduire les erreurs causées par les processus manuels et de diminuer l'effort de déploiement des modifications.
-
Tester en utilisant des déploiements limités: Faites le test avec des déploiements limités et avec des systèmes existants pour confirmer les résultats souhaités avant le déploiement à grande échelle. Par exemple, utilisez les tests Canary de déploiement ou des déploiements sur un seul hôte.
-
Déployer en utilisant des environnements parallèles: Mettez en œuvre les modifications dans des environnements parallèles, puis passez au nouvel environnement. Conservez l'ancien environnement jusqu'à la confirmation de la réussite du déploiement. Ainsi, vous accélérez la récupération en pouvant restaurer l’environnement précédent.
-
Déployer des modifications fréquentes, minimes, réversibles: Utilisez les modifications fréquentes, légères et réversibles pour réduire la portée d'une modification. Ainsi, vous facilitez la résolution des problèmes et accélérez les corrections avec la possibilité d’annuler une modification.
-
Automatisation complète de l'intégration et du déploiement: Automatisez la création, le déploiement et le test de la charge de travail. Cela permet de réduire les erreurs causées par les processus manuels et de diminuer l'effort de déploiement des modifications.
-
Automatiser les tests et l’annulation: Automatisez le test des environnements déployés pour confirmer les résultats souhaités. Automatiser la restauration à un bon état antérieur connu lorsque les résultats ne sont pas atteints afin de réduire le délai de reprise et les erreurs causées par les processus manuels.
Plan d'amélioration
Prévoir les modifications qui échouent
Tester et valider les modifications
AWS Cloud9
What is AWS Cloud9?
How to test and debug AWS CodeDeploy locally before you ship your code
Utiliser des systèmes de gestion de déploiement
Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
What is AWS CodeDeploy?
What is AWS Elastic Beanstalk?
What is Amazon API Gateway?
Tester en utilisant des déploiements limités
Working with deployment configurations in AWS CodeDeploy
Blue/Green deployments with AWS Elastic Beanstalk
Set up an API Gateway canary release deployment
Déployer en utilisant des environnements parallèles
Working with deployment configurations in AWS CodeDeploy
Blue/Green deployments with AWS Elastic Beanstalk
Set up an API Gateway canary release deployment
Déployer des modifications fréquentes, minimes, réversibles
Automatisation complète de l'intégration et du déploiement
What is AWS CodeBuild?
Continuous integration best practices for software development
Slalom: CI/CD for serverless applications on AWS
Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services
What is AWS CodeDeploy?
Automatiser les tests et l’annulation
Redeploy and roll back a deployment with AWS CodeDeploy