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:

Plan d'amélioration

Prévoir les modifications qui échouent

  • Prévoir les modifications qui échouent: Planifiez de revenir à un état antérieur connu pour être bon (c'est-à-dire, annuler la modification) ou procédez à une correction dans l'environnement de production (c'est-à-dire, déployer davantage la modification) si une modification n'a pas le résultat escompté. Lorsque vous identifiez des modifications que vous ne pouvez pas annuler si elles échouent, effectuez les vérifications préalables avant de valider les modifications.
  • Tester et valider les modifications

  • Tester et valider les modifications: Testez les changements et validez les résultats à tous les stades du cycle de vie (par exemple, développement, test et production), afin de vérifier les nouvelles fonctionnalités et de réduire les risques et l'impact des déploiements qui échouent.
    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

  • 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. Cette démarche permet de réduire les erreurs causées par les processus manuels, mais aussi réduire le niveau d'efforts pour déployer des modifications. Automatisez le pipeline d'intégration et de déploiement à partir du code d'enregistrement et par le biais des tests, du déploiement et de la validation. Cela permet de réduire les délais, d'augmenter la fréquence des changements et de diminuer davantage le niveau d'effort.
    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

  • 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.
    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

  • Déployer en utilisant des environnements parallèles: Implémentez les modifications dans les environnements parallèles et passez ou basculez vers le nouvel environnement. Conservez l'ancien environnement jusqu'à la confirmation de la réussite du déploiement. Cela réduit le temps de récupération en permettant la restauration de l'ancien environnement. Par exemple, utilisez des infrastructures immuables avec des déploiements de type bleu/vert.
    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

  • 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

  • Utiliser des systèmes de gestion du développement et du déploiement: Utilisez des systèmes de gestion du développement et du déploiement afin de suivre et de mettre en œuvre des modifications, de réduire les erreurs causées par les processus manuels et de réduire le niveau d'efforts. Automatisez entièrement le pipeline d'intégration et de déploiement à partir du code d'enregistrement et par le biais du développement, des tests, du déploiement et de la validation. Cela permet de réduire les délais, d'augmenter la fréquence des changements et de diminuer le niveau d'effort.
    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

  • 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. Par exemple, effectuez des transactions utilisateur synthétiques détaillées après le déploiement, vérifiez les résultats et annulez en cas d'échec.
    Redeploy and roll back a deployment with AWS CodeDeploy