OPS 5: Comment réduire les défauts, faciliter les corrections et améliorer le flux dans la production ?

Adoptez des approches qui améliorent l'entrée des modifications dans la production et permettent une refactorisation, une rétroaction de qualité rapide et la corrections de bogues. Cela permet d'accélérer l'entrée des modifications bénéfiques dans la production, de limiter le déploiement de problèmes et d'identifier et de corriger rapidement les problèmes introduits par les activités de déploiement.

Ressources

CI/CD for Serverless Applications on AWS
Design with Ops in Mind
AWS Developer Tools

Bonnes pratiques:

Plan d'amélioration

Utiliser le contrôle de version

  • Utiliser le contrôle de version: Maintenez les ressources dans des référentiels avec contrôle de version. Cela permet le suivi des modifications, le déploiement de nouvelles versions, la détection des modifications apportées aux versions existantes, et le retour à des versions antérieures (par exemple, la restauration à un état correct connu en cas de défaillance). Intégrez les fonctionnalités de contrôle de version de vos systèmes de gestion de la configuration dans vos procédures.
    Introduction to AWS CodeCommit
    What is AWS CodeCommit?
  • Tester et valider les modifications

  • Tester et valider les modifications: Les modifications doivent être testées et les résultats validés à toutes les phases du cycle de vie (par exemple, le développement, le test et la production). Utilisez les résultats des tests pour confirmer les nouvelles fonctionnalités et atténuer les risques et les effets des échecs de déploiements. Automatisez les tests et la validation pour assurer la cohérence de l'examen, réduire les erreurs causées par les processus manuels et diminuer le niveau d'effort.
    What is AWS CodeBuild?
    Local build support for AWS CodeBuild
  • Utiliser des systèmes de gestion de la configuration

  • Utiliser des systèmes de gestion de la configuration: Utilisez des systèmes de gestion de la configuration 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.
    Infrastructure configuration management
    AWS Config
    What is AWS Config?
    Introduction to AWS CloudFormation
    What is AWS CloudFormation?
    AWS OpsWorks
    What is AWS OpsWorks?
    Introduction to AWS Elastic Beanstalk
    What is AWS Elastic Beanstalk?
  • Utiliser des systèmes de gestion du développement 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?
  • Gérer les correctifs

  • Gestion des correctifs: Appliquez des correctifs aux systèmes pour corriger les problèmes, obtenir des fonctionnalités souhaitées et rester conforme à la politique de gouvernance et aux exigences d'assistance du fournisseur. Dans les systèmes immuables, déployez avec l'ensemble de correctifs approprié pour obtenir le résultat souhaité. Automatisez le mécanisme de gestion des correctifs afin de réduire le temps écoulé avant l'application des correctifs, de limiter les erreurs causées par les processus manuels et de réduire le niveau d'efforts nécessaire pour appliquer les correctifs.
    AWS Systems Manager Patch Manager
  • Partager les normes de conception

  • Partager les normes de conception: Partagez les bonnes pratiques, normes de conception, listes de contrôle, procédures opérationnelles, instructions et exigences de gouvernance entre équipes pour réduire la complexité et optimiser les avantages résultant des efforts de développement. Veillez à mettre en place des procédures pour demander des modifications, des ajouts et des exceptions aux normes de conception, afin de soutenir l'amélioration et l'innovation en continu. Assurez-vous que les équipes sont informées du contenu publié afin qu'elles puissent tirer parti du contenu, et limiter les reprises de travail et les tâches inutiles.
    Delegating access to your AWS environment
    Share an AWS CodeCommit repository
    Easy authorization of AWS Lambda functions
    Sharing an AMI with specific AWS accounts
    Speed template sharing with an AWS CloudFormation designer URL
    Using AWS Lambda with Amazon SNS
  • Mettre en œuvre des pratiques pour améliorer la qualité du code

  • Mettre en œuvre des pratiques pour améliorer la qualité du code: Mettez en place des pratiques pour améliorer la qualité du code afin de limiter les failles et le risque qu'elles soient déployées. Par exemple, le développement orienté test, la programmation en binôme, les révisions du code et l'adoption de normes.
  • Utiliser plusieurs environnements

  • Utiliser plusieurs environnements: Fournissez aux développeurs des environnements de test avec des contrôles réduits au minimum pour permettre l'expérimentation. Fournissez des environnements de développement individuels pour permettre le travail en parallèle, ce qui augmente l'agilité du développement. Mettez en œuvre davantage de contrôles rigoureux dans les environnements proches de la production pour offrir aux développeurs la liberté nécessaire à l'innovation. Utilisez l'infrastructure en tant que code et les systèmes de gestion de la configuration pour déployer des environnements configurés de manière cohérente par rapport aux contrôles de production pour veiller au bon fonctionnement des systèmes lorsqu'ils sont déployés. Lorsque les environnements ne sont pas en cours d'utilisation, désactivez-les pour éviter les coûts associés à des ressources inutilisées (par exemple, les systèmes de développement en soirée et les week-ends). Déployez des environnements équivalents à la production lors des tests de charge pour obtenir des résultats valides.
    What is AWS CloudFormation?
    How do I stop and start Amazon EC2 instances at regular intervals using AWS Lambda?
  • Effectuer des modifications fréquentes, minimes et réversibles

  • Effectuer des modifications fréquentes, minimes et réversibles: Les modifications fréquentes, légères et réversibles limitent la portée et l'impact d'une modification. Cela facilite la résolution des problèmes, accélère les corrections et offre la possibilité d’annuler une modification. Cela augmente également la vitesse à laquelle vous pouvez apporter de la valeur à votre entreprise.
  • Automatiser complètement l'intégration et le 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?