Le Blog Amazon Web Services

Décuplez votre agilité : Déploiement ultra-rapide avec la configuration continue

Trouver l’équilibre entre fiabilité et agilité dans les opérations cloud

L’équipe Ops d’une entreprise sert de première ligne de défense contre les perturbations potentielles de l’activité. Elle fonctionne 24h/24 et 7j/7, agit comme un centre névralgique, surveille et gère en permanence l’environnement IT. L’équipe Ops gère et priorise les incidents IT critiques pour minimiser les temps d’arrêt et la perte de données en réagissant rapidement. Les opérateurs informatiques enquêtent sur les causes profondes, identifient les problèmes sous-jacents et mettent en œuvre des actions correctives.

Dans un environnement traditionnel, l’équipe Ops adaptait directement la configuration de l’infrastructure pour les événements. Cependant, dans un environnement cloud à l’état de l’art, cette approche devient irréalisable en raison de l’automatisation et de l’infrastructure-as-code gérées par l’équipe de développement. L’équipe Ops fait face à de nouveaux défis dans le cloud. Elle doit gérer des volumes élevés de changements tout en assurant l’intégrité des données et en fournissant une plateforme fiable et sécurisée pour l’application des mises à jour. Pour répondre à ces exigences, l’équipe Ops nécessite une refonte importante.

Les équipes de développement sont désormais propriétaires du déploiement des services et de l’infrastructure grâce au cloud. Cela a créé un besoin de processus rationalisés comme les pipelines CI/CD pour les gérer. Bien que CI/CD ait résolu de nombreux défis de déploiement, les équipes manquaient encore de capacité à modifier rapidement le comportement des applications en production. Cela était particulièrement évident lors de la réponse à des environnements dynamiques ou à la résolution d’incidents.

La configuration continue permet l’agilité de l’entreprise

Dans une configuration statique, les paramètres de configuration d’un service sont définis à l’avance, généralement lors du déploiement ou du provisionnement. Cela signifie que la configuration reste inchangée tout au long de l’exécution du service. La configuration statique est généralement utilisée pour les services qui nécessitent des paramètres cohérents et des changements peu fréquents. Mais dans le paysage numérique rapide d’aujourd’hui, la capacité à adapter rapidement le comportement des applications est primordiale. Dans le billet de blog « Continuous Configuration at the Speed of Sound », le CTO d’Amazon.com, Dr. Werner Vogels, a introduit le concept de configuration continue (CC) : la CC met à jour les données de configuration de l’application en temps réel, permettant des réactions aux changements en temps réel. La CC permet à divers intervenants de modifier le comportement de l’application, éliminant les goulots d’étranglement opérationnels.

La CC permet aux organisations de répondre rapidement aux besoins changeants de l’entreprise. Elle automatise la gestion des configurations et les retours en arrière, minimisant le travail manuel. Cela permet d’économiser du temps et des coûts en éliminant les déploiements complets de code pour les changements de configuration et en réduisant le temps de déploiement tout en améliorant l’agilité de l’application.

La CC joue un rôle vital dans la résolution de plusieurs cas d’utilisation concrets. Un tel scénario survient lorsqu’une interruption de service ou une soudaine augmentation de la demande nécessite un ajustement immédiat et sécurisé du comportement d’une application sans nécessiter de déploiement de code. Lors de tels incidents critiques, la capacité à passer rapidement à des configurations connues et fiables réduit considérablement le temps de réponse aux incidents et minimise les temps d’arrêt potentiels. Un deuxième scénario pourrait être lorsque l’équipe des opérations peut désactiver des fonctionnalités non critiques comme les systèmes de recommandation pendant les événements de forte demande (sports en direct, ventes du Black Friday): Cela optimise la consommation des ressources cloud. En tirant parti de la CC, les organisations peuvent répondre efficacement aux défis opérationnels dynamiques, assurant la résilience et l’adaptabilité de leurs applications face à des circonstances imprévues.

La CC peut être un outil précieux pour l’ingénierie du chaos en fournissant un mécanisme à l’équipe des opérations pour simuler les effets de différents types de perturbations, comme la limitation du trafic « throttling » de l’application ou la désactivation temporaire de services critiques, et tester la capacité de l’application à fonctionner sans ces dépendances.

Simplifier le développement logiciel et les opérations en entreprise avec AWS AppConfig

La CC implique généralement l’utilisation d’un outil centralisé de gestion de la configuration qui stocke les données de configuration et les distribue aux ressources cloud pertinentes. Cette approche centralisée simplifie le processus de mise à jour des configurations et assure la cohérence entre toutes les instances du service.

AWS AppConfig stocke, gère et déploie de manière centralisée les configurations d’applications. Il simplifie l’application de changements sans déploiements fréquents de code. AppConfig suit l’historique des versions de configuration, ce qui permet de revenir aux versions précédentes si nécessaire. Les équipes peuvent automatiser le déploiement des configurations, assurant des déploiements cohérents. De plus, AWS AppConfig accorde un contrôle sur la distribution progressive des configurations.

Les organisations peuvent utiliser AWS AppConfig pour simplifier le cycle de vie du développement logiciel (SDLC) pour les équipes de développement et d’opérations. Les équipes de développement peuvent définir l’état de configuration de l’application dans AppConfig et stocker les configurations en assurant le contrôle de version et la traçabilité. Elles créent des versions « releases » marquant les configurations pour le déploiement dans chaque environnement et automatisent le déploiement en utilisant un pipeline CI/CD avec des ressources AppConfig pour déployer les configurations vers les environnements de staging, de production ou autres.

l’équipe Ops déploie les changements de configuration en utilisant AppConfig pour permettre des mises à jour contrôlées et réversibles. Pour les incidents, elle peut utiliser la fonction de retour en arrière (« rollback ») d’AppConfig pour revenir aux versions précédentes et restaurer le fonctionnement normal. Pendant les périodes de forte demande, les Ops peuvent ajuster l’application en mettant à jour la configuration avec AppConfig pour assurer la disponibilité et la réactivité malgré un trafic élevé.

AWS AppConfig fournit deux types principaux de profils de configuration : les « feature flags » et les configurations libres (« freeform »). Les profils de configuration « freeform » sont utilisés pour stocker tout type de données de configuration. Cela peut inclure des paramètres pour l’environnement de l’application, les connexions à la base de données, ou toute autre information de configuration que l’équipe de développement doit gérer. Tandis qu’un « feature flag » est un élément de configuration qui vous permet d’activer ou de désactiver la disponibilité de composants spécifiques de l’application.

AWS AppConfig assure l’intégrité et la cohérence des données de configuration. Un schéma définit la structure et le format des données de configuration. AWS AppConfig fournit une validation pour vérifier la sémantique des données de configuration au-delà du schéma. Cela inclut la confirmation de la cohérence avec d’autres configurations, la validation des valeurs dans des plages acceptables, et l’assurance de la compatibilité avec les exigences de l’application. En tirant parti de la validation personalisée basée sur le schéma, l’équipe de développement permet une vérification robuste de l’exactitude et de la compatibilité des données de configuration. Pendant ce temps, l’équipe Ops est capable de mettre à jour rapidement les configurations sans risque d’incidents de production. L’équipe Ops choisit la stratégie de déploiement et publie graduelement les changements en production, surveillant la santé de l’application avec Amazon CloudWatch. En cas de problème, AppConfig annule automatiquement (« rollback ») les changements de configuration pour minimiser l’impact.

Les agents AWS AppConfig rationalisent la gestion de la configuration des applications sur les ressources de calcul AWS, y compris les machines virtuelles avec Amazon EC2, les containers avec Amazon ECS et EKS, et les technologies serverless avec Amazon Lambda. L’agent interroge automatiquement les mises à jour, met en cache localement les configurations récupérées, et s’assure que les applications accèdent aux derniers paramètres. Cela améliore les performances et renforce la résilience de l’application. Vous pouvez récupérer les configurations à partir d’un point de terminaison HTTP local ou l’agent peut automatiquement stocker les configurations localement.

Alors que les équipes de développement sont propriétaires du service AWS AppConfig, l’équipe opérationnelle a besoin d’un accès IAM à AppConfig dans tous les comptes AWS de production. Les politiques IAM pour les équipes de développement et d’opérations diffèrent dans l’étendue des autorisations accordées pour l’utilisation d’AppConfig.

Type de ressource Politique de l’équipe de développement Politique de l’équipe opérationnelle
Application créer, lire, mettre à jour, supprimer (CRUD) lire
Environnement CRUD lire
Profil de configuration CRUD mettre à jour
Stratégie de déploiement CRUD lire
Démarrer le déploiement oui oui

En conclusion, la Configuration Continue avec AWS AppConfig transforme les opérations IT

Configuration Continue

Figure 1 : Diagramme d’architecture

Une équipe Ops est essentielle pour la surveillance et la réponse aux incidents afin de minimiser les perturbations. Cependant, les modèles d’opérations traditionnels peinent face à l’ampleur et à l’automatisation du cloud. La Configuration Continue grâce à des outils comme AWS AppConfig permet à une équipe opérationnelle d’ajuster le comportement d’une application en temps réel sans redéploiement. Les équipes de développement définissent des configurations d’application valides tandis que l’équipe opérationnelle peut les mettre à jour en toute sécurité pour contenir les incidents. Dans l’ensemble, la CC augmente l’agilité et la résilience en permettant aux opérations de mettre en œuvre des changements rapides et réversibles pour optimiser les performances et la disponibilité des applications. Avec les contrôles d’accès et les processus appropriés, les développeurs et les opérateurs peuvent tirer parti de la configuration continue pour mieux répondre aux demandes dans des environnements cloud dynamiques.
Pour plus d’informations sur la façon dont la configuration continue peut transformer vos opérations IT avec AWS AppConfig, consultez le workshop AWS AppConfig.

À propos de l’auteur :

Guillaume Marchand

Guillaume Marchand

Guillaume Marchand est Architecte Solutions Principal, basé à Paris, France. Il a rejoint Amazon en 2016 après avoir travaillé pour un diffuseur TV où il gérait l’architecture de leur plateforme OTT. Dans son travail actuel, Guillaume accompagne les diffuseurs TV français dans leur parcours vers le cloud.