

# OPS 5  Comment réduire les défauts, faciliter les corrections et améliorer l'entrée dans la production ?
<a name="w2aac19b5b7b7"></a>

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

**Topics**
+ [OPS05-BP01 Utiliser le contrôle de version](ops_dev_integ_version_control.md)
+ [OPS05-BP02 Tester et valider les modifications](ops_dev_integ_test_val_chg.md)
+ [OPS05-BP03 Utiliser des systèmes de gestion de la configuration](ops_dev_integ_conf_mgmt_sys.md)
+ [OPS05-BP04 Utiliser des systèmes de gestion du développement et du déploiement](ops_dev_integ_build_mgmt_sys.md)
+ [OPS05-BP05 Procéder à la gestion des correctifs](ops_dev_integ_patch_mgmt.md)
+ [OPS05-BP06 Partager les normes de conception](ops_dev_integ_share_design_stds.md)
+ [OPS05-BP07 Mettre en œuvre des pratiques visant à améliorer la qualité du code](ops_dev_integ_code_quality.md)
+ [OPS05-BP08 Utiliser plusieurs environnements](ops_dev_integ_multi_env.md)
+ [OPS05-BP09 Effectuer des modifications fréquentes, légères et réversibles](ops_dev_integ_freq_sm_rev_chg.md)
+ [OPS05-BP10 Automatiser complètement l'intégration et le déploiement](ops_dev_integ_auto_integ_deploy.md)

# OPS05-BP01 Utiliser le contrôle de version
<a name="ops_dev_integ_version_control"></a>

 Utilisez le contrôle de version pour permettre le suivi des modifications et des versions. 

 De nombreux services AWS offrent des fonctionnalités de contrôle de version. Utilisez un système de contrôle de source ou de révision comme [AWS CodeCommit](https://aws.amazon.com/codecommit/) pour gérer le code et d'autres artefacts, tels que les modèles [AWS CloudFormation](https://aws.amazon.com/cloudformation/) avec contrôle de version de votre infrastructure. 

 **Anti-modèles courants :** 
+  Vous avez développé et stocké le code sur votre poste de travail. Un problème de stockage s’est produit sur le poste de travail et vous avez perdu le code. 
+  Après avoir remplacé le code existant par vos modifications, vous redémarrez votre application et elle n'est plus utilisable. Vous ne pouvez pas revenir à la modification. 
+  Vous disposez d'un verrou d'écriture sur un fichier de rapport que quelqu'un d'autre doit modifier. Il vous contacte pour vous demander d'arrêter de travailler dessus afin qu'il puisse effectuer ses tâches. 
+  Votre équipe de recherche a travaillé sur une analyse détaillée qui façonnera vos futurs travaux. Quelqu'un a accidentellement enregistré sa liste d'achats sur le rapport final. Vous ne pouvez pas annuler la modification et vous devrez recréer le rapport. 

 **Avantages liés au respect de cette bonne pratique :** En utilisant les fonctionnalités de contrôle des versions, vous pouvez revenir facilement aux bons états connus, aux versions précédentes et limiter le risque de perte de ressources. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Débit 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Utiliser le contrôle de version : gérez 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. 
  +  [Présentation d'AWS CodeCommit](https://youtu.be/46PRLMW8otg) 
  +  [Qu'est-ce qu'AWS CodeCommit ?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Qu'est-ce qu'AWS CodeCommit ?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

 **Vidéos connexes :** 
+  [Présentation d'AWS CodeCommit](https://youtu.be/46PRLMW8otg) 

# OPS05-BP02 Tester et valider les modifications
<a name="ops_dev_integ_test_val_chg"></a>

 Testez et valider les modifications afin de limiter et de détecter les erreurs. Automatisez les tests pour réduire les erreurs causées par les processus manuels et diminuer le niveau d'efforts nécessaires aux tests. 

 De nombreux services AWS offrent des fonctionnalités de contrôle de version. Utilisez un système de contrôle de source ou de révision comme [AWS CodeCommit](https://aws.amazon.com/codecommit/) pour gérer le code et d'autres artefacts, tels que les modèles [AWS CloudFormation](https://aws.amazon.com/cloudformation/) avec contrôle de version de votre infrastructure. 

 **Anti-modèles courants :** 
+  Vous déployez votre nouveau code en production et les clients commencent à appeler, car votre application ne fonctionne plus. 
+  Vous appliquez de nouveaux groupes de sécurité pour améliorer la sécurité de votre périmètre. Il fonctionne avec des conséquences imprévues, et vos utilisateurs ne sont pas en mesure d'accéder à vos applications. 
+  Vous modifiez une méthode appelée par votre nouvelle fonction. Une autre fonction dépendait également de cette méthode et ne fonctionne plus. Le problème n'est pas détecté et entre en production. L'autre fonction n'est pas appelée pendant un certain temps et échoue finalement en production sans aucune corrélation avec la cause. 

 **Avantages liés au respect de cette bonne pratique :** En testant et validant rapidement les modifications, vous êtes en mesure de résoudre les problèmes avec des coûts réduits, et de limiter l'impact sur vos clients. En testant avant le déploiement, vous minimisez l'introduction d'erreurs. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Débit 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  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. 
  +  [Qu'est-ce qu'AWS CodeBuild ?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Prise en charge de build local pour AWS CodeBuild](https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Outils pour développeurs AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Prise en charge de build local pour AWS CodeBuild](https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/) 
+  [Qu'est-ce qu'AWS CodeBuild ?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 

# OPS05-BP03 Utiliser des systèmes de gestion de la configuration
<a name="ops_dev_integ_conf_mgmt_sys"></a>

 Utilisez des systèmes de gestion de la configuration pour effectuer et suivre les modifications de la configuration. Ces systèmes réduisent les erreurs causées par les processus manuels et diminuent le niveau d'effort nécessaire au déploiement des modifications. 

 La gestion de la configuration statique définit des valeurs lors de l'initialisation d'une ressource. Elles doivent rester cohérentes tout au long de la durée de vie de cette ressource. Certains exemples incluent la définition de la configuration d'un serveur web ou d'applications sur une instance, ou la définition de la configuration d'un service AWS dans [AWS Management Console](https://docs.aws.amazon.com/awsconsolehelpdocs/index.html) ou via l'interface [AWS CLI](https://aws.amazon.com/cli/). 

 La gestion dynamique de la configuration définit des valeurs à l'initialisation qui peuvent ou sont censées changer pendant la durée de vie d'une ressource. Par exemple, vous pouvez définir un mécanisme d'activation et de désactivation d'un fonctionnalité dans votre code via un changement de configuration, ou modifier le niveau de détail du journal pendant un incident pour capturer plus de données, puis revenir en arrière après l'incident en éliminant les journaux désormais inutiles et les dépenses associées. 

 Si des configurations dynamiques sont appliquées à vos applications exécutées sur des instances, des conteneurs, des fonctions sans serveur ou des appareils, vous pouvez utiliser [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) pour les gérer et les déployer dans vos environnements. 

 Sur AWS, vous pouvez utiliser [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) pour surveiller en permanence vos configurations de ressources AWS [entre les comptes et les régions](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). Il vous permet de suivre leur historique de configuration, de comprendre comment une modification de la configuration affecterait d'autres ressources et de les auditer par rapport aux configurations attendues ou souhaitées avec [AWS Config Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) et [les packs de conformité AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

 Dans AWS, vous pouvez créer des pipelines d'intégration continue/de déploiement continu (CI/CD) à l'aide de services tels que les [Outils pour développeurs AWS](https://aws.amazon.com/products/developer-tools/) (par exemple, AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)et [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 Maintenez un calendrier des modifications et suivez la planification d'activités ou d'événements métier ou opérationnels importants susceptibles d'être affectés par la mise en œuvre d'un changement. Ajustez les activités pour gérer les risques liés à ces plans. [AWS Systems Manager Modifier le calendrier](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) fournit un mécanisme permettant de documenter les fenêtres temporelles ouvertes ou fermées aux modifications et pourquoi elles le sont et de [partager ces informations](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-calendar-share.html) avec d'autres Comptes AWS. Les scripts AWS Systems Manager peuvent être configurés pour respecter l'état du calendrier de modifications. 

 [fenêtres de maintenance AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) peuvent être utilisées pour planifier les performances des scripts AWS SSM Run Command ou Automation, des appels AWS Lambda ou des activités AWS Step Functions à des heures spécifiées. Marquez ces activités dans votre calendrier de modifications afin qu'elles puissent être incluses dans votre évaluation. 

 **Anti-modèles courants :** 
+  Vous mettez manuellement à jour la configuration des serveurs Web de votre flotte, et un certain nombre de serveurs ne répondent plus en raison d'erreurs de mise à jour. 
+  Vous mettez à jour manuellement votre flotte de serveurs d'applications pendant plusieurs heures. L'incohérence de la configuration pendant la modification entraîne des comportements inattendus. 
+  Quelqu'un a mis à jour vos groupes de sécurité et vos serveurs Web ne sont plus accessibles. Sans savoir ce qui a changé, vous passez beaucoup de temps à enquêter sur la question, ce qui prolonge votre temps de reprise. 

 **Avantages liés au respect de cette bonne pratique :** L'adoption de systèmes de gestion de la configuration réduit le niveau d'effort nécessaire pour effectuer et suivre les changements, ainsi que la fréquence des erreurs causées par les procédures manuelles. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Moyenne entreprise 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Utiliser des systèmes de gestion de la configuration : exploitez des systèmes de gestion de la configuration afin de suivre et de mettre en œuvre les modifications, de réduire les erreurs causées par les processus manuels et de réduire le niveau d'effort. 
  +  [Gestion de la configuration d'infrastructure](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
  +  [AWS Config](https://aws.amazon.com/config/) 
  +  [Qu'est-ce qu'AWS Config ?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
  +  [Présentation d'AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
  +  [Qu'est-ce qu'AWS CloudFormation ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
  +  [Qu'est-ce qu'AWS OpsWorks ?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 
  +  [Présentation d'AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 
  +  [Qu'est-ce qu'AWS Elastic Beanstalk ?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+  [Outils pour développeurs AWS](https://aws.amazon.com/products/developer-tools/) 
+  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
+  [AWS Systems Manager Modifier le calendrier](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) 
+  [fenêtres de maintenance AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) 
+  [Gestion de la configuration d'infrastructure](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
+  [Qu'est-ce qu'AWS CloudFormation ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [Qu'est-ce qu'AWS Config ?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [Qu'est-ce qu'AWS Elastic Beanstalk ?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
+  [Qu'est-ce qu'AWS OpsWorks ?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 

 **Vidéos connexes :** 
+  [Présentation d'AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
+  [Présentation d'AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 

# OPS05-BP04 Utiliser des systèmes de gestion du développement et du déploiement
<a name="ops_dev_integ_build_mgmt_sys"></a>

 Utilisez des systèmes de gestion du développement et du déploiement. Ces systèmes réduisent les erreurs causées par les processus manuels et diminuent le niveau d'effort nécessaire au déploiement des modifications. 

 Dans AWS, vous pouvez créer des pipelines d'intégration continue/de déploiement continu (CI/CD) à l'aide de services tels que les [Outils pour développeurs AWS](https://aws.amazon.com/products/developer-tools/) (par exemple, AWS CodeCommit, [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)et [AWS CodeStar](https://aws.amazon.com/codestar/)). 

 **Anti-modèles courants :** 
+  Après avoir compilé votre code sur votre système de développement, vous copiez l'exécutable sur vos systèmes de production et il ne démarre pas. Les fichiers journaux locaux indiquent qu’il n’a pas fonctionné en raison de dépendances manquantes. 
+  Vous créez avec succès votre application avec de nouvelles fonctionnalités dans votre environnement de développement et soumettez le code à l'assurance qualité (QA). L'assurance qualité échoue, car il manque des ressources statiques. 
+  Vendredi, après de nombreux efforts, vous avez réussi à créer manuellement votre application dans votre environnement de développement, y compris vos nouvelles fonctionnalités codées. Lundi, vous ne pouvez pas répéter les étapes qui vous ont permis de créer votre application avec succès. 
+  Vous effectuez les tests que vous avez créés pour votre nouvelle version. Ensuite, vous passez la semaine suivante à configurer un environnement de test et à exécuter tous les tests d'intégration existants, suivis des tests de performances. Le nouveau code a un impact inacceptable sur les performances et doit être redéveloppé, puis retesté. 

 **Avantages liés au respect de cette bonne pratique :** En fournissant des mécanismes pour gérer les activités de construction et de déploiement, vous réduisez le niveau d'effort nécessaire pour effectuer des tâches répétitives, vous libérez les membres de votre équipe pour qu'ils puissent se concentrer sur leurs tâches créatives de grande valeur et vous limitez l'introduction d'erreurs provenant des procédures manuelles. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Moyenne entreprise 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Utiliser des systèmes de gestion du développement et du déploiement : servez-vous de systèmes de gestion du développement et du déploiement afin de suivre et de mettre en œuvre les 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. 
  +  [Qu'est-ce qu'AWS CodeBuild ?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Bonnes pratiques d'intégration continue pour le développement de logiciels](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD for serverless applications on AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [Qu'est-ce qu'AWS CodeDeploy ?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Outils pour développeurs AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Qu'est-ce qu'AWS CodeBuild ?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [Qu'est-ce qu'AWS CodeDeploy ?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Vidéos connexes :** 
+  [Bonnes pratiques d'intégration continue pour le développement de logiciels](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD for serverless applications on AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# OPS05-BP05 Procéder à la gestion des correctifs
<a name="ops_dev_integ_patch_mgmt"></a>

 Procédez à la gestion des correctifs afin de profiter des fonctionnalités, de résoudre les problèmes et de rester conforme à la gouvernance. Automatisez la gestion des correctifs pour réduire les erreurs causées par les processus manuels et le niveau d'efforts nécessaires aux correctifs. 

 La gestion des correctifs et des vulnérabilités fait partie de vos activités de gestion des bénéfices et des risques. Il est préférable d'avoir des infrastructures immuables et de déployer des charges de travail dans des états de bon fonctionnement connus et vérifiés. Lorsque cela n'est pas viable, l'application de correctifs est la seule solution. 

 La mise à jour des images de machine, des images de conteneur ou [des exécutions personnalisées et des bibliothèques supplémentaires Lambda](https://docs.aws.amazon.com/lambda/latest/dg/security-configuration.html) pour supprimer les vulnérabilités fait partie de la gestion des correctifs. Vous devez gérer les mises à jour des [Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (AMI) pour les images Linux ou Windows Server à l'aide de [EC2 Image Builder](https://aws.amazon.com/image-builder/). Vous pouvez utiliser [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) avec votre pipeline existant pour [gérer les images Amazon ECS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html) et [les images Amazon EKS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_EKS.html). AWS Lambda inclut [des fonctionnalités](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) de gestion des versions. 

 L'application de correctifs ne doit pas être effectuée sur les systèmes de production sans avoir effectué un test préalable dans un environnement sûr. Les correctifs ne doivent être appliqués que s'ils favorisent la réalisation d'un résultat opérationnel ou métier. Sur AWS, vous pouvez utiliser [le gestionnaire de correctifs AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) pour automatiser le processus d'application des correctifs sur les systèmes gérés et planifier l'activité à l'aide des [fenêtres de maintenance AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Anti-modèles courants :** 
+  On vous demande d'appliquer tous les nouveaux correctifs de sécurité dans un délai de deux heures, ce qui entraîne de multiples pannes dues à l'incompatibilité de l'application avec les correctifs. 
+  Une bibliothèque non corrigée entraîne des conséquences imprévues, car des parties inconnues y utilisent des failles pour accéder à votre charge de travail. 
+  Vous corrigez automatiquement les environnements de développement sans en informer les développeurs. Vous recevez plusieurs réclamations des développeurs indiquant que leur environnement ne fonctionne plus correctement. 
+  Vous n'avez pas corrigé le logiciel sur une instance persistante. Lorsque vous rencontrez un problème avec le logiciel et que vous contactez le fournisseur, celui-ci vous informe que la version n'est pas prise en charge et que vous devez appliquer un correctif à un niveau spécifique pour recevoir de l'aide. 
+  Un correctif récemment publié pour le logiciel de chiffrement que vous avez utilisé présente des améliorations significatives de performances. Votre système non corrigé présente des problèmes de performances qui persistent suite à l'absence de correctifs. 

 **Avantages liés au respect de cette bonne pratique :** En établissant un processus de gestion des correctifs, y compris vos critères de correctifs et la méthodologie de distribution dans vos environnements, vous serez en mesure de bénéficier de leurs avantages et de contrôler leur impact. Cela permettra l'adoption des fonctions et fonctionnalités désirées, d’éliminer les problèmes et de respecter durablement la gouvernance. Mettez en œuvre des systèmes de gestion des correctifs et d'automatisation pour réduire le niveau d'effort nécessaire au déploiement des correctifs et limiter les erreurs causées par les processus manuels. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Moyenne entreprise 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Gestion des correctifs : appliquez des correctifs aux systèmes pour corriger les problèmes, obtenir les fonctionnalités souhaitées et rester conforme à la politique de gouvernance et aux exigences de support 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. 
  +  [le gestionnaire de correctifs AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Outils pour développeurs AWS](https://aws.amazon.com/products/developer-tools/) 
+  [le gestionnaire de correctifs AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

 **Vidéos connexes :** 
+  [CI/CD for Serverless Applications on AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
+  [Design with Ops in Mind](https://youtu.be/uh19jfW7hw4) 

   **Exemples connexes :** 
+  [Ateliers Well-Architected : inventaire et gestion des correctifs](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 

# OPS05-BP06 Partager les normes de conception
<a name="ops_dev_integ_share_design_stds"></a>

 Partagez les bonnes pratiques entre les équipes pour sensibiliser et maximiser les bénéfices des efforts de développement. 

 Sur AWS, l'application, le calcul, l'infrastructure, et les opérations peuvent être définis et gérés à l'aide des méthodologies de code. Cela permet une publication, un partage et une adoption simples. 

 De nombreux services et ressources AWS sont conçus pour être partagés entre les comptes, ce qui vous permet de partager des ressources créées et des connaissances entre vos équipes. Par exemple, vous pouvez partager [CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) des référentiels, [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html) des fonctions, [des compartiments Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/)et [des AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) vers des comptes spécifiques. 

 Lorsque vous publiez de nouvelles ressources ou mises à jour, utilisez Amazon SNS pour publier [des notifications entre les comptes](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html). Les abonnés peuvent utiliser Lambda pour obtenir de nouvelles versions. 

 Si des normes partagées sont appliquées dans votre entreprise, il est essentiel que des mécanismes soient mis en place pour demander des ajouts, des modifications et des dérogations aux normes afin de soutenir les activités des équipes. Sans cette possibilité, les normes deviennent une contrainte à l'innovation. 

 **Anti-modèles courants :** 
+  Vous avez créé votre propre mécanisme d'authentification des utilisateurs, tout comme chacune des autres équipes de développement de votre organisation. Vos utilisateurs doivent conserver un ensemble distinct d'informations d'identification pour chaque partie du système auquel ils souhaitent accéder. 
+  Vous avez créé votre propre mécanisme d'authentification des utilisateurs, tout comme chacune des autres équipes de développement de votre organisation. Votre organisation reçoit une nouvelle exigence de conformité qui doit être satisfaite. Chaque équipe de développement doit désormais investir les ressources pour mettre en œuvre la nouvelle exigence. 
+  Vous avez créé votre propre configuration d'écran, comme chacune des autres équipes de développement de votre organisation. Vos utilisateurs se plaignent de la difficulté de naviguer dans les interfaces incohérentes. 

 **Avantages liés au respect de cette bonne pratique :** Utilisez des normes communes pour soutenir l'adoption des bonnes pratiques et pour maximiser les avantages des efforts de développement lorsque les normes répondent aux exigences de plusieurs applications ou organisations. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Moyenne entreprise 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  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. 
  +  [Déléguer l'accès à votre environnement AWS](https://www.youtube.com/watch?v=0zJuULHFS6A&t=849s) 
  +  [Partager un référentiel AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-share-repository.html) 
  +  [Facilité d'autorisation des fonctions AWS Lambda](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) 
  +  [Partager une AMI avec des comptes Comptes AWS spécifiques](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) 
  +  [Accélérer le partage de modèles avec une URL de concepteur AWS CloudFormation](https://aws.amazon.com/blogs/devops/speed-template-sharing-with-an-aws-cloudformation-designer-url/) 
  +  [Utilisation d'AWS Lambda avec Amazon SNS](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Facilité d'autorisation des fonctions AWS Lambda](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) 
+  [Partager un référentiel AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-share-repository.html) 
+  [Partager une AMI avec des comptes Comptes AWS spécifiques](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) 
+  [Accélérer le partage de modèles avec une URL de concepteur AWS CloudFormation](https://aws.amazon.com/blogs/devops/speed-template-sharing-with-an-aws-cloudformation-designer-url/) 
+  [Utilisation d'AWS Lambda avec Amazon SNS](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html) 

 **Vidéos connexes :** 
+  [Déléguer l'accès à votre environnement AWS](https://www.youtube.com/watch?v=0zJuULHFS6A&t=849s) 

# OPS05-BP07 Mettre en œuvre des pratiques visant à améliorer la qualité du code
<a name="ops_dev_integ_code_quality"></a>

 Mettez en place des pratiques pour améliorer la qualité du code et limiter les failles. Parmi les exemples possibles, citons le développement basé sur les tests, les révisions de code et l'adoption de normes. 

 Sur AWS, vous pouvez intégrer des services comme [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) à votre pipeline pour identifier automatiquement [les problèmes potentiels de code et de sécurité](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/how-codeguru-reviewer-works.html) à l'aide de l'analyse de programme et de machine learning. CodeGuru fournit des recommandations sur la manière de mettre en œuvre les bonnes pratiques AWS pour résoudre ces problèmes. 

 **Anti-modèles courants :** 
+  Pour pouvoir tester votre fonctionnalité plus tôt, vous avez décidé de ne pas intégrer votre bibliothèque standard d'assainissement des entrées. Après avoir effectué les tests, vous validez votre code en oubliant d'effectuer l'incorporation complète de la bibliothèque. 
+  Vous n'avez qu'une expérience minimale de l'ensemble de données que vous traitez et vous ne savez pas qu'il peut exister une série de cas limites dans votre ensemble de données. Ces cas limites ne sont pas compatibles avec le code que vous avez implémenté. 

 **Avantages liés au respect de cette bonne pratique :** En adoptant des pratiques visant à améliorer la qualité du code, vous contribuez à minimiser les problèmes introduits dans la production. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Moyenne entreprise 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  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. 
  +  [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 

# OPS05-BP08 Utiliser plusieurs environnements
<a name="ops_dev_integ_multi_env"></a>

 Utilisez plusieurs environnements pour expérimenter, développer et tester votre charge de travail. Utilisez des niveaux de contrôle croissants lorsque les environnements approchent de la production pour vous assurer que votre charge de travail fonctionnera correctement une fois déployée. 

 **Anti-modèles courants :** 
+  Vous effectuez un développement dans un environnement de développement partagé et un autre développeur remplace vos modifications de code. 
+  Les contrôles de sécurité restrictifs sur votre environnement de développement partagé vous empêchent d'expérimenter de nouveaux services et fonctionnalités. 
+  Vous effectuez des tests de charge sur vos systèmes de production et provoquez une panne pour vos utilisateurs. 
+  Une erreur critique entraînant une perte de données s'est produite en production. Dans votre environnement de production, vous essayez de recréer les conditions qui ont conduit à la perte de données afin de pouvoir identifier comment elle s'est produite et empêcher qu'elle ne se reproduise. Pour éviter toute perte de données supplémentaire pendant les tests, vous devez rendre l'application indisponible aux utilisateurs. 
+  Vous explorez un service multi-locataire et n'êtes pas en mesure de répondre à la demande d'un client pour un environnement dédié. 
+  Il est possible que vous ne procédiez pas toujours aux tests, mais lorsque vous le faites, vous le faites en production. 
+  Vous pensez que la simplicité d'un environnement unique l'emporte sur la portée de l'impact des modifications au sein de l'environnement. 

 **Avantages liés au respect de cette bonne pratique :** En déployant plusieurs environnements, vous pouvez prendre en charge plusieurs environnements de développement, de test et de production simultanément sans créer de conflits entre les développeurs ou les communautés d'utilisateurs. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Moyenne entreprise 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  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é d'innover. 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. 
  +  [Qu'est-ce qu'AWS CloudFormation ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [Comment arrêter et démarrer des instances Amazon EC2 à des intervalles réguliers avec AWS Lambda ?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Comment arrêter et démarrer des instances Amazon EC2 à des intervalles réguliers avec AWS Lambda ?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 
+  [Qu'est-ce qu'AWS CloudFormation ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 

# OPS05-BP09 Effectuer des modifications fréquentes, légères et réversibles
<a name="ops_dev_integ_freq_sm_rev_chg"></a>

 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. 

 **Anti-modèles courants :** 
+  Vous déployez une nouvelle version de votre application tous les trimestres. 
+  Vous apportez fréquemment des modifications à votre schéma de base de données. 
+  Vous effectuez des mises à jour manuelles sur place, en remplaçant les installations et configurations existantes. 

 **Avantages liés au respect de cette bonne pratique :** Vous reconnaissez plus rapidement les avantages des efforts de développement en déployant fréquemment de petites modifications. Lorsque les changements sont minimes, il est beaucoup plus facile d'identifier s'ils ont des conséquences inattendues. Lorsque les modifications sont réversibles, les risques liés à leur mise en œuvre sont minimes, car la récupération est simplifiée. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Faible 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Effectuer des modifications fréquentes, légères et réversibles : les modifications fréquentes, petites et réversibles réduisent la portée et l'impact d'un changement. 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. 

# OPS05-BP10 Automatiser complètement l'intégration et le déploiement
<a name="ops_dev_integ_auto_integ_deploy"></a>

 Automatisez la création, le déploiement et le test de la charge de travail. Cela permet de réduire les erreurs découlant des processus manuels, ainsi que les efforts nécessaires au déploiement des modifications. 

 Appliquez des métadonnées à l'aide des [balises de ressources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) et [Groupes de ressources AWS](https://docs.aws.amazon.com/ARG/latest/APIReference/Welcome.html) en respectant une stratégie de balisage [cohérente](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) pour activer l'identification de vos ressources. Balisez vos ressources pour l’organisation, la comptabilité analytique, les contrôles des accès et le ciblage de l'exécution des activités des opérations automatisées. 

 **Anti-modèles courants :** 
+  Vendredi, vous avez fini de créer le nouveau code de votre branche de fonctionnalité. Lundi, après avoir exécuté vos scripts de test de la qualité du code et chacun de vos scripts de tests unitaires, vous vérifierez votre code pour la prochaine version prévue. 
+  Vous êtes chargé de coder un correctif pour un problème critique affectant un grand nombre de clients en production. Après avoir testé le correctif, vous validez votre code et envoyez un e-mail à l'équipe de gestion des modifications pour demander l'autorisation de le déployer en production. 

 **Avantages liés au respect de cette bonne pratique :** En mettant en œuvre des systèmes automatisés de gestion de la création et du déploiement, vous réduisez les erreurs causées par les processus manuels et diminuez l'effort de déploiement des modifications, ce qui permet aux membres de votre équipe de se concentrer sur la création de valeur ajoutée. 

 **Niveau de risque exposé si cette bonne pratique n'est pas respectée :** Faible 

## Directives d'implémentation
<a name="implementation-guidance"></a>
+  Utiliser des systèmes de gestion du développement et du déploiement : servez-vous de systèmes de gestion du développement et du déploiement afin de suivre et de mettre en œuvre les 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. 
  +  [Qu'est-ce qu'AWS CodeBuild ?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Bonnes pratiques d'intégration continue pour le développement de logiciels](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD for serverless applications on AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [Qu'est-ce qu'AWS CodeDeploy ?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

## Ressources
<a name="resources"></a>

 **Documents connexes :** 
+  [Qu'est-ce qu'AWS CodeBuild ?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [Qu'est-ce qu'AWS CodeDeploy ?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Vidéos connexes :** 
+  [Bonnes pratiques d'intégration continue pour le développement de logiciels](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Introduction to AWS CodeDeploy - automated software deployment with Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD for serverless applications on AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 