OPS05-BP03 Utiliser des systèmes de gestion de la configuration - AWS Well-Architected Framework

OPS05-BP03 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.

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 ou via l'interface AWS 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'une fonctionnalité dans votre code via un changement de configuration, ou modifier le niveau de détail des journaux 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.

Sur AWS, vous pouvez utiliser AWS Config pour surveiller en permanence vos configurations de ressources AWS entre les comptes et les régions. 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 et les packs de conformité AWS Config.

Si des configurations dynamiques sont appliquées à vos applications exécutées sur des instances Amazon EC2, AWS Lambda, des conteneurs, des applications mobiles ou des appareils IoT, vous pouvez utiliser AWS AppConfig pour les configurer, les valider, les déployer et les surveiller dans l'ensemble de vos environnements.

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 (par exemple, AWS CodeCommit, AWS CodeBuild, AWS CodePipeline, AWS CodeDeployet AWS CodeStar).

Résultat souhaité : Vous effectuez la configuration, la validation et le déploiement dans le cadre de votre pipeline d'intégration et de livraison continues (CI/CD). Vous assurez la surveillance pour vérifier que les configurations sont correctes. Cela permet de minimiser l'impact sur les utilisateurs finaux et les clients.

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.

  • Vous mettez en production une configuration de pré-production via le pipeline CI/CD sans validation. Vous exposez les utilisateurs et les clients à des données et à des services incorrects.

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. Les systèmes de gestion de la configuration fournissent des garanties en matière de gouvernance, de conformité et d'exigences réglementaires.

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

Directives d'implémentation

Les systèmes de gestion de la configuration sont utilisés pour suivre et mettre en œuvre les modifications apportées aux configurations des applications et de l'environnement. Ils sont également utilisés pour réduire les erreurs causées par les processus manuels, pour rendre les modifications de configuration reproductibles et vérifiables, et pour réduire le niveau d'effort.

Étapes d'implémentation

  1. Identifiez les responsables de la configuration.

    1. Informez les responsables de la configuration de tout besoin en matière de conformité, de gouvernance ou de réglementation.

  2. Identifiez les éléments de configuration et les livrables.

    1. Les éléments de configuration sont toutes les configurations d'application et d'environnement concernées par un déploiement au sein de votre pipeline CI/CD.

    2. Les livrables incluent les critères de réussite, la validation et ce qui doit être surveillé.

  3. Sélectionnez les outils de gestion de la configuration en fonction des besoins de votre entreprise et de votre pipeline de livraison.

  4. Envisagez des déploiements pondérés tels que les déploiements canary pour les modifications de configuration importantes, afin de minimiser l'impact des configurations incorrectes.

  5. Intégrez la gestion de votre configuration dans votre pipeline CI/CD.

  6. Validez toutes les modifications apportées.

Ressources

Bonnes pratiques associées :

Documents connexes :

Vidéos connexes :