OPS06-BP02 Déploiements de tests - Pilier Excellence opérationnelle

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 souhaité : 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 sous forme de 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 de risque exposé 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 et de livraison continues (CI/CD), AnyCompany Retail exécute les étapes définies nécessaires au lancement de l'infrastructure et des mises à jour logicielles 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 des altérations pour détecter si des ressources ont été modifiées en dehors de AWS CloudFormation.

    2. Utilisez des jeux de modifications pour vérifier que l'intention de la mise à jour de la pile correspond aux actions entreprises par AWS CloudFormation lorsque le jeu de modifications est lancé.

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

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

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

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

  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ésolvez les 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 :