ReInvent 2021 : AWS entrelace observabilité et pratiques DevOps
Alors que la plupart des acteurs séparent les fonctions d’observabilité des outils de CI/CD, les responsables du développement de CloudWatch, la suite de supervision d’AWS, viennent d’y ajouter des solutions RUM, mais surtout de feature flagging et d’A/B Testing.
Lors de ReInvent 2021, AWS a annoncé la disponibilité générale d’Amazon CloudWatch Evidently, fournissant des capacités de feature flagging et d’A/B Testing.
Le feature flagging, qui consiste à exécuter des fonctionnalités ou des bouts de code à la demande, suivant l’application de règles, est souvent poussé par des éditeurs comme Hashicorp, Cloudbees, LaunchDarkly ou encore Atlassian.
À lire également :
Comprendre les bases des feature flags dans une approche DevOps
Les capacités d’A/B testing visant à déployer aléatoirement un service ou un élément d’une application à une partie des utilisateurs ou des visiteurs d’un site Web est habituellement une fonctionnalité purement CI/CD.
Alors pourquoi AWS les intègre-t-il au sein d’Amazon CloudWatch, sa suite d’observabilité cloud ? Sébastien Stormacq, Developer Advocate chez AWS France, auteur du blog qui présente Evidently en disponibilité générale, ne l’explique pas réellement. « Nos équipes de développeurs sont indépendantes les unes des autres, elles proposent par elles-mêmes de nouveaux services. Au sein d’AWS, il existe plusieurs manières, plusieurs instances de services pour lancer un même type de projet », rappelle-t-il auprès du MagIT.
Renforcer l’observabilité des pratiques DevOps
Dans CloudWatch Evidently, le code de l’application invoque un service distant qui décide le pourcentage d’utilisateurs exposés à une fonctionnalité ou une autre.
La définition d’une feature se fait via une IHM. Le développeur injecte la portion de code correspondant à la nouvelle fonctionnalité d’une application. Si la feature ne s’exécute pas correctement, un appel d’API côté serveur permet de revenir à la version précédente d’une application.
La capacité de feature flagging sera compatible avec tous les SDK AWS. Pour l’instant, ceux dédiés à C++, Go, Java, JavaScript, TypeScript, .Net, PHP, Python et Ruby sont déjà pris en charge, Rust et Swift suivront.
Pour que cela fonctionne, le code de l’application doit être instrumentalisé en ajoutant les bonnes balises pour appeler l’API Evidently.
Il est fortement recommandé d’utiliser des services d’AWS ou tiers pour protéger les secrets employés dans ce déploiement. Evidently peut autant servir dans le développement d’applications mobiles, Web ou de machine learning, selon Sébastien Stormarcq.
Avec Experiments, il est possible de mener des procédures d’A/B Testing en exposant plusieurs « expériences » à au moins deux populations distinctes. Evidently sert ici à instrumentaliser la collecte et l’analyse de métriques applicatives. Les résultats des expérimentations sont comparés à l’aide de méthodes statistiques, comme les intervalles de confiance, les niveaux de signification et des analyses bayésiennes. Ici, il s’agit davantage de tester des variations ou des mises à jour applicatives : du côté machine learning, SageMaker dispose de sa propre fonction d’A/B Testing.
Ce n’est donc pas la première fois que le géant du cloud propose des capacités de features flagging et d’A/B Testing. À la mi-novembre, AWS a annoncé en préversion AWS AppConfig Feature Flags. D’ailleurs, AppConfig a typiquement été conçu pour le déploiement de nouvelles fonctionnalités au sein d’applications. Cependant, ce sont les utilisateurs qui devaient développer leurs propres services de feature flagging en s’appuyant sur AppConfig et Lambda PowerTools pour créer un moteur de règles.
Un service évidemment tourné vers les développements Web
Mais, si les chevauchements sont visibles, Sébastien Stormacq voit un intérêt à rapprocher des fonctionnalités DevOps et observabilité. « CloudWatch Evidently offre des capacités plus avancées de gestion des features et des expérimentions », écrit-il dans son billet de blog. En réalité, CloudWatch permet surtout de superviser ces déploiements, plutôt que de proposer des usages avancés de CI/CD.
Sébastien StormacqDeveloper Advocate, AWS France
D’ailleurs, AWS entend également compléter les capacités d’observabilité de CloudWatch en présentant une solution de Real User Monitoring (RUM). Celle-ci est pour l’instant câblée pour superviser des Web Apps et des pages Web, avec des métriques tels la latence, le temps de chargement de pages Web et des indicateurs de performance pour juger de la qualité de l’expérience utilisateur.
Cette limitation des cas d’usage est, selon le billet de blog publié par Jeff Barr, Chief Evangelist chez AWS. CloudWatch RUM est activable après avoir inséré un code snippet écrit en JavaScript. Le responsable présente CloudWatch RUM comme un complément à ServiceLens, un outil d’agrégation de traces, de métriques, de logs et d’alarmes, et X-Ray, un cartographe de services et de détection d’anomalies sur EKS, EC2, Elastic BeanStalk ou encore AWS Lambda.
Les acteurs de l’observabilité dont les partenaires d’AWS Datadog et New Relic proposent généralement de s’intégrer avec des solutions CI/CD portant les fonctionnalités similaires à Evidently, comme LaunchDarkly.
Evidently est disponible dans neuf régions cloud, dont les régions Francfort, Dublin, et Stockholm en Europe. L’application du modèle économique « pay as you go » dépend du nombre d’événements et d’analyses Evidently. RUM est, lui, accessible dans dix régions cloud. La tarification commence à 1 dollar pour 100 000 événements collectés.