Ce contenu est obsolète. Cette version du cadre Well-Architected se trouve désormais à l'adresse suivante: https://docs.aws.amazon.com/fr_fr/wellarchitected/2022-03-31/framework/operational-excellence.html
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:
-
Utiliser le contrôle de version:
Utilisez le contrôle de version pour permettre le suivi des modifications et des versions.
-
Tester et valider les modifications:
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.
-
Utiliser des systèmes de gestion de la configuration:
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.
-
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. 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.
-
Gérer les correctifs:
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.
-
Partager les normes de conception:
Partagez les bonnes pratiques entre les équipes pour sensibiliser et maximiser les
bénéfices des efforts de développement.
-
Mettre en œuvre des pratiques pour améliorer la qualité du code:
Mettez en place des pratiques pour améliorer la qualité du code et limiter les failles.
Par exemple, le développement basé sur les tests, les révisions de code et l'adoption
de normes.
-
Utiliser plusieurs environnements:
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.
-
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.
-
Automatiser complètement l'intégration et le déploiement:
Automatisez le développement, 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.
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?