

# OPS06-BP03 Adopter des stratégies de déploiement sûres
<a name="ops_mit_deploy_risks_deploy_mgmt_sys"></a>

 Les déploiements de production sécurisés contrôlent le flux des modifications bénéfiques dans le but de minimiser l’impact perçu de ces modifications sur les clients. Les contrôles de sécurité fournissent des mécanismes d’inspection permettant de valider les résultats souhaités et de limiter l’étendue de l’impact des défaillances introduites par les modifications ou des échecs de déploiement. Les déploiements sûrs peuvent inclure des stratégies telles que les indicateurs de fonctions, les déploiements sur un seul hôte, les déploiements continus (versions canary), les déploiements immuables, la division du trafic et les déploiements bleu/vert. 

 **Résultat souhaité :** Votre organisation utilise un système d’intégration continue et de livraison continue (CI/CD) qui permet d’automatiser des déploiements sûrs. Les équipes sont tenues d’utiliser des stratégies de déploiement sûres et appropriées. 

 **Anti-modèles courants :** 
+  Vous déployez une modification infructueuse dans l’ensemble de l’environnement de production en une seule fois. Par conséquent, tous les clients sont touchés simultanément. 
+  Une défaillance introduite lors d’un déploiement simultané dans tous les systèmes nécessite un lancement d’urgence. La correction pour tous les clients prend plusieurs jours. 
+  La gestion des versions de production nécessite la planification et la participation de plusieurs équipes. Cela limite votre capacité à mettre fréquemment à jour les fonctionnalités pour vos clients. 
+  Vous effectuez un déploiement mutable en modifiant vos systèmes existants. Après avoir découvert que la modification n’a pas abouti, vous devez modifier à nouveau les systèmes pour restaurer l’ancienne version, ce qui prolonge votre délai de récupération. 

 **Avantages liés au respect de cette bonne pratique :** Les déploiements automatisés permettent de concilier la rapidité des déploiements et la cohérence des modifications apportées aux clients. Limiter l’impact permet d’éviter des échecs de déploiement coûteux et de maximiser la capacité des équipes à répondre efficacement aux défaillances. 

 **Niveau d’exposition au risque si cette bonne pratique n’est pas respectée :** Moyen 

## Directives d’implémentation
<a name="implementation-guidance"></a>

 Les défaillances de la livraison en continu peuvent entraîner une réduction de la disponibilité des services et de mauvaises expériences pour les clients. Pour maximiser le taux de réussite des déploiements, mettez en œuvre des contrôles de sécurité dans le processus de lancement de bout en bout afin de minimiser les erreurs de déploiement ; l’objectif étant de parvenir à zéro échec de déploiement. 

 **Exemple client** 

 AnyCompany Retail a pour mission de réaliser des déploiements avec un temps d’arrêt minimal ou nul, ce qui signifie qu’il n’y a pas d’impact perceptible pour ses utilisateurs pendant les déploiements. Pour ce faire, l’entreprise a établi des modèles de déploiement (voir le diagramme de flux de travail suivant), tels que les déploiements continus et les déploiements bleu/vert. Toutes les équipes adoptent un ou plusieurs de ces modèles dans leur pipeline CI/CD. 


| Flux de travail CodeDeploy pour Amazon EC2 | Flux de travail CodeDeploy pour Amazon ECS | Flux de travail CodeDeploy pour Lambda | 
| --- | --- | --- | 
|  ![\[Flux du processus de déploiement pour Amazon EC2\]](http://docs.aws.amazon.com/fr_fr/wellarchitected/2024-06-27/framework/images/deployment-process-ec2.png)  |  ![\[Flux du processus de déploiement pour Amazon ECS\]](http://docs.aws.amazon.com/fr_fr/wellarchitected/2024-06-27/framework/images/deployment-process-ecs.png)  |  ![\[Flux du processus de déploiement pour Lambda\]](http://docs.aws.amazon.com/fr_fr/wellarchitected/2024-06-27/framework/images/deployment-process-lambda.png)  | 

### Étapes d’implémentation
<a name="implementation-steps"></a>

1.  Utilisez un flux de travail d’approbation pour lancer la séquence des étapes de déploiement de la production lors de la promotion en production. 

1.  Utilisez un système de déploiement automatisé tel que [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html). Les options de déploiement AWS CodeDeploy [comprennent les](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html) déploiements sur place pour EC2/sur site et les déploiements bleu/vert pour EC2/sur site, AWS Lambda et Amazon ECS (voir le diagramme de flux de travail précédent). 

   1.  Le cas échéant, [intégrez AWS CodeDeploy à d’autres services AWS](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws.html) ou [intégrez AWS CodeDeploy aux produits et services des partenaires](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-partners.html). 

1.  Utilisez les déploiements bleu/vert pour les bases de données telles que [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) et [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html). 

1.  [Surveillez les déploiements](https://docs.aws.amazon.com/codedeploy/latest/userguide/monitoring.html) à l’aide des notifications d’événements Amazon CloudWatch, AWS CloudTrail et Amazon Simple Notification Service (Amazon SNS). 

1.  Effectuez des tests automatisés post-déploiement, y compris des tests fonctionnels, de sécurité, de régression, d’intégration et tout test de charge. 

1.  [Résolvez les](https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting.html) problèmes de déploiement. 

 **Niveau d’effort du plan d’implémentation :** Moyen 

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

 **Bonnes pratiques associées :** 
+  [OPS05-BP02 Tester et valider les modifications](ops_dev_integ_test_val_chg.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) 

 **Documents connexes :** 
+ [Builders’ Library AWS \$1 Automatisation de déploiements sécurisés sans intervention \$1 Déploiements en production ](https://aws.amazon.com/builders-library/automating-safe-hands-off-deployments/?did=ba_card&trk=ba_card#Production_deployments)
+ [Builders Library AWS \$1 Mon pipeline CI/CD est mon capitaine de versions \$1 Versions de production automatiques et sécurisées](https://aws.amazon.com//builders-library/cicd-pipeline/#Safe.2C_automatic_production_releases)
+ [Livre blanc AWS \$1 Mise en pratique de l’intégration continue et de la livraison continue sur AWS \$1 Méthodes de déploiement](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/deployment-methods.html)
+ [Guide de l’utilisateur AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [Working with deployment configurations in AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)
+ [Set up an API Gateway canary release deployment ](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html)
+ [Types de déploiement Amazon ECS](https://docs.aws.amazon.com/)
+ [Déploiements bleu/vert entièrement gérés dans Amazon Aurora et Amazon RDS](https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/)
+ [Blue/Green deployments with AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html)

 **Vidéos connexes :** 
+ [re:Invent 2020 \$1 Hands-off: Automating continuous delivery pipelines at Amazon](https://www.youtube.com/watch?v=ngnMj1zbMPY)
+ [re:Invent 2019 \$1 Amazon’s Approach to high-availability deployment](https://www.youtube.com/watch?v=bCgD2bX1LI4)

 **Exemples connexes :** 
+ [Essayer un exemple de déploiement bleu/vert dans AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html)
+ [Atelier \$1 Création de pipelines CI/CD pour les déploiements Lambda Canary à l’aide de AWS CDK](https://catalog.us-east-1.prod.workshops.aws/workshops/5195ab7c-5ded-4ee2-a1c5-775300717f42/en-US)
+ [Atelier \$1 Déploiement bleu/vert et canary pour EKS et ECS](https://catalog.us-east-1.prod.workshops.aws/workshops/2175d94a-cd79-4ed2-8e7e-1f0dd1956a3a/en-US)
+ [Atelier \$1 Création d’un pipeline CI/CD](https://catalog.us-east-1.prod.workshops.aws/workshops/00bc829e-fd7c-4204-9da1-faea3cf8bd88/en-US)