OPS06-BP03 Adopter des stratégies de déploiement sûres - Pilier Excellence opérationnelle

OPS06-BP03 Adopter des stratégies de déploiement sûres

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

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
Flux du processus de déploiement pour Amazon ECS
Flux du processus de déploiement pour Lambda

Étapes d’implémentation

  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.

  2. Utilisez un système de déploiement automatisé tel que AWS CodeDeploy. Les options de déploiement AWS CodeDeploy comprennent les 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).

  3. Utilisez les déploiements bleu/vert pour les bases de données telles que Amazon Aurora et Amazon RDS.

  4. Surveillez les déploiements à l’aide des notifications d’événements Amazon CloudWatch, AWS CloudTrail et Amazon Simple Notification Service (Amazon SNS).

  5. 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.

  6. Résolvez les problèmes de déploiement.

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

Ressources

Bonnes pratiques associées :

Documents connexes :

Vidéos connexes :

Exemples connexes :