OPS06-BP02 Déploiements de tests - AWS Framework Well-Architected

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

OPS06-BP02 Déploiements de tests

Testez les procédures de mise à disposition en préproduction en utilisant la même configuration de déploiement, les mêmes contrôles de sécurité, les mêmes étapes et les mêmes procédures qu’en production. Confirmez que toutes les étapes du déploiement se sont déroulées comme prévu, par exemple en inspectant les fichiers, les configurations et les services. Testez ensuite toutes les modifications à l’aide de tests fonctionnels, d’intégration et de charge, ainsi que de contrôles tels que les surveillances de l’état. En effectuant ces tests, vous pouvez identifier rapidement les problèmes de déploiement et avoir la possibilité de les planifier et de les atténuer avant la mise en production.

Vous pouvez créer des environnements parallèles temporaires pour tester chaque modification. Automatisez le déploiement des environnements de test à l’aide de l’infrastructure en tant que code (IaC) afin de réduire la quantité de travail nécessaire et d’assurer la stabilité, la cohérence et une livraison plus rapide des fonctionnalités.

Résultat escompté : votre organisation adopte une culture de développement piloté par les tests qui inclut des déploiements de tests. Cela permet de veiller à ce que les équipes se concentrent sur la création de valeur pour l’entreprise plutôt que sur la gestion des versions. Les équipes sont impliquées dès l’identification des risques de déploiement afin de déterminer les mesures d’atténuation appropriées.

Anti-modèles courants :

  • Pendant les mises en production, les déploiements non testés entraînent des problèmes fréquents qui nécessitent un dépannage et une remontée.

  • Votre version contient une infrastructure en tant que code (IaC) qui met à jour les ressources existantes. Vous n’êtes pas certain que l’IaC s’exécute correctement ou qu’elle a un impact sur les ressources.

  • Vous déployez une nouvelle fonctionnalité dans votre application. Elle ne fonctionne pas comme prévu et il n’y a aucune visibilité jusqu’à ce qu’elle soit signalée par les utilisateurs concernés.

  • Vous mettez à jour vos certificats. Vous installez accidentellement les certificats sur les mauvais composants, ce qui passe inaperçu et a un impact sur les visiteurs du site Web parce qu’il est impossible d’établir une connexion sécurisée avec le site Web.

Avantages liés au respect de cette bonne pratique : des tests approfondis en préproduction des procédures de déploiement et des modifications qu’elles introduisent minimisent l’impact potentiel sur la production causé par les étapes de déploiement. Cela permet d’accroître la confiance lors de la mise en production et de minimiser l’assistance opérationnelle sans ralentir la vitesse des changements apportés.

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

Directives d’implémentation

Il est tout aussi important de tester votre processus de déploiement que les modifications qui en découlent. Pour ce faire, vous pouvez tester vos étapes de déploiement dans un environnement de préproduction qui reflète le plus fidèlement possible l’environnement de production. Les problèmes courants, tels que les étapes de déploiement incomplètes ou incorrectes, ou les mauvaises configurations, peuvent être détectés avant la mise en production. De plus, vous pouvez tester vos étapes de reprise.

Exemple client

Dans le cadre de son pipeline d'intégration continue et de livraison continue (CI/CD), AnyCompany Retail exécute les étapes définies nécessaires pour publier des mises à jour d'infrastructure et de logiciels pour ses clients dans un environnement de type production. Le pipeline comprend des contrôles préalables pour détecter les altérations (détection des changements apportés aux ressources en dehors de votre IaC) dans les ressources avant le déploiement, ainsi que pour valider les actions que l’IaC entreprend lors de son lancement. Il valide les étapes du déploiement, en vérifiant par exemple que certains fichiers et configurations sont en place, que les services sont en cours d’exécution et qu’ils répondent correctement aux surveillances de l’état sur l’hôte local avant de s’enregistrer à nouveau auprès de l’équilibreur de charge. En outre, toutes les modifications font l’objet d’un certain nombre de tests automatisés, tels que des tests fonctionnels, de sécurité, de régression, d’intégration et de charge.

Étapes d’implémentation

  1. Effectuez des contrôles avant l’installation pour reproduire l’environnement de préproduction en production.

    1. Utilisez la détection de dérive pour détecter lorsque les ressources ont été modifiées en dehors de AWS CloudFormation.

    2. Utilisez des ensembles de modifications pour vérifier que l'intention d'une mise à jour de la pile correspond aux actions entreprises lorsque l'ensemble de modifications est initié. AWS CloudFormation

  2. Cela déclenche une étape d’approbation manuelle dans AWS CodePipeline pour autoriser le déploiement dans l’environnement de préproduction.

  3. Utilisez des configurations de déploiement telles que AWS CodeDeploy AppSpecdes fichiers pour définir les étapes de déploiement et de validation.

  4. Le cas échéant, AWS CodeDeploy intégrez-le à d'autres AWS services ou AWS CodeDeploy intégrez-le aux produits et services partenaires.

  5. Surveillez les déploiements à l'aide CloudWatch d' AWS CloudTrail Amazon et des notifications d'SNSévénements Amazon.

  6. Réalisez des tests automatisés après déploiement, y compris des tests fonctionnels, de sécurité, de régression, d’intégration et de charge.

  7. Résolution des problèmes de déploiement

  8. La validation réussie des étapes précédentes devrait lancer un mécanisme d’autorisation manuel pour autoriser le déploiement en production.

Niveau d’effort du plan d’implémentation : élevé

Ressources

Bonnes pratiques associées :

Documents connexes :

Vidéos connexes :

Exemples connexes :