La demande d'exécution de systèmes complexes avec des dizaines, voire des centaines de microservices à très grande échelle a fortement augmenté. Les utilisateurs finaux s'attendent à une disponibilité continue des services dont ils dépendent et veulent éviter les temps d'arrêt, même s'ils ne durent que quelques minutes. Une approche proactive de l'ingénierie du chaos aide à répondre aux attentes des utilisateurs en identifiant les goulets d'étranglement et en sécurisant les services avant qu'un temps d'arrêt ne survienne dans l'environnement de production. L'ingénierie du chaos est donc essentielle pour éviter de perdre la confiance des utilisateurs finaux.
Pour répondre à la nécessité d'une plateforme Kubernetes résiliente et améliorer l'expérience des utilisateurs, Red Hat collabore avec la communauté Open Source et les utilisateurs finaux dans le but de créer des outils Open Source et des frameworks d'ingénierie du chaos comme Krkn, ainsi que d'en assurer le bon fonctionnement. Pour avoir une idée des capacités de Krkn, consultez ces ressources supplémentaires contenant des informations et des résultats de tests effectués dans le cadre de l'ingénierie du chaos.
Avec l'augmentation de l'adoption de Krkn pour un grand nombre de produits par la communauté et notre clientèle, nous avons été confrontés à des défis liés à l'utilisation de l'intelligence artificielle (IA) :
- Ajout et mise à jour de scénarios de test à mesure de la mise à disposition de nouvelles fonctions et de correctifs de produits
- Réalisation continue de tests pour plusieurs produits, impliquant un suivi rigoureux
- Exécution de centaines de scénarios de test, au lieu de se limiter à ceux dont la probabilité de perturbation semble élevée
Les équipes d'ingénierie du chaos de Red Hat et d'IBM Research collaborent pour intégrer l'intelligence artificielle à Krkn afin d'améliorer et d'automatiser la réalisation de tests applicables à différents produits qui exécutent divers nœuds, modèles de trafic et architectures.
Intégration de l'IA au cas d'utilisation de Krkn
Avec l'adoption croissante de Krkn pour tester divers produits et configurations, il est devenu difficile de créer des scénarios de test exhaustifs. Prenons l'exemple d'une pile d'applications avec de nombreux déploiements et des pods qui doivent se coordonner pour répondre aux demandes des utilisateurs. Pour effectuer un test dans le cadre de l'ingénierie du chaos, il faut comprendre l'architecture et concevoir des scénarios de test en fonction de la nature du service (modèles de dépendances d'un microservice à un ou plusieurs autres services, utilisation intensive des ressources/du processeur, mémoire, opérations d'entrée/de sortie par seconde, modèles de réseau ou de trafic, etc.).
Il faudrait exécuter des centaines d'itérations de scénarios de test, ce qui implique un nombre considérable d'heures de travail et des coûts liés au cloud. Même si cela était possible, une surveillance constante serait nécessaire pour rechercher les cas limites oubliés et adapter les tests en fonction de l'évolution de la pile d'applications (en cas d'ajout de fonctions ou de changements dans l'architecture par exemple). Il est difficile de prédire les combinaisons de scénarios lorsqu'ils sont exécutés sur plusieurs pods, ce qui peut entraîner des objectifs de niveau de service oubliés et une dégradation des performances, avec des répercussions sur les services.
Pour effectuer cette tâche pour de nombreux produits et applications, il est possible d'utiliser Chaos AI dans Krkn. Cet exemple illustre bien comment l'IA permet d'accroître les capacités et de résoudre des problèmes complexes.
Le framework Chaos AI-Krkn déployé doit détecter et exécuter automatiquement les scénarios qui affectent le service, et utiliser l'apprentissage automatique par renforcement pour s'adapter aux changements apportés à la pile de produits.
Krkn
Krkn est un moteur de chaos qui cible les API cloud, Kubernetes et OpenShift pour injecter des conditions de défaillance et suivre la récupération du composant ciblé, l'intégrité globale du cluster et les objectifs de niveau de service liés aux performances.
Chaos-recommander
À partir de pointeurs vers un service, chaos-recommender décrit chaque pod à l'aide de Prometheus afin de déterminer s'il nécessite des capacités de réseau élevées, s'il est lié au processeur, à la mémoire ou aux E/S, et suggère des scénarios Krkn qui présentent le risque de perturbation le plus élevé.
Krkn Telemetry
Lorsqu'il est activé, l'outil Krkn Telemetry recueille et stocke des informations telles que des mesures, des alertes, des paramètres de chaos, les résultats de réussite/d'échec et les journaux des tests, ainsi que les détails de l'environnement comme l'échelle (nombre de nœuds, pods, routes, etc.), l'architecture (AMD, ARM, X86_64), le plug-in de réseau (SDN, OVN). Ces données sont utilisées pour entraîner le modèle d'IA/AA afin d'identifier les composants qui présentent des défaillances régulières et de les tester davantage.
Workflow de Chaos AI
Ce framework de bout en bout prend les scénarios Krkn et les objectifs de niveau de service en entrée puis, avec chaos-recommender et Krkn-telemetry, attribue une pondération aux composants nécessitant des tests et exécute différentes combinaisons de scénarios sur la pile d'applications.
Voici un exemple de workflow pour Etcd et ApiServer :
Étape 1
Un utilisateur indique les espaces de noms Etcd et ApiServer comme cibles ainsi que les objectifs de niveau de service de sorte que l'IA vérifie et récompense ceux oubliés. Par exemple :
openshift-etcd
etopenshift-apiserver
sont les entrées de l'espace de noms.- La latence du serveur d'API est de 99 % < 1 s.
- Les objectifs de niveau de service indiquent des élections de chef < 0 pour Etcd
Étape 2
Chaos-AI déclenche chaos-recommander. Il décrit les espaces de noms Etcd et ApiServer pour identifier les scénarios de chaos qui présentent une probabilité élevée de perturbations en fonction des mesures d'utilisation des ressources dans Prometheus.
Étape 3
Le modèle Chaos-AI est entraîné à l'aide de l'apprentissage par renforcement. Les données krkn-telemetry sur les composants Etcd et ApiServer sont recueillies pour déterminer les pods et les conteneurs qui échouent souvent.
Étape 4
Chaos-AI attribue une pondération en fonction des étapes 2 et 3, et exécute des scénarios Krkn. L'apprentissage par renforcement est basé sur un système où le framework se récompense lui-même des objectifs de niveau de service oubliés. Dans cet exemple, cette situation se produit lorsque la latence de l'API est supérieure à 1 seconde et qu'Etcd élit un chef.
Il exécute également d'autres domaines dont la perturbation est la moins risquée, mais qui présentent moins d'itérations. S'il trouvait un nouveau composant ou une combinaison de scénarios qui échoue souvent, les informations associées seraient enregistrées dans Krkn-telemetry et renvoyées au modèle à prendre en compte pour les itérations suivantes.
Étape 5
Les défaillances sont signalées pour qu'elles puissent être corrigées.
Il s'agit d'un processus continu qui s'adapte à mesure que le produit évolue et qui identifie les domaines à améliorer sans intervention humaine lorsque des cas limites sont potentiellement oubliés.
Cas d'utilisation
Au lieu d'identifier et d'ajouter manuellement des scénarios de test dans l'intégration continue de la version de produit, il est possible d'utiliser ce framework pour identifier et exécuter automatiquement des scénarios de test, voire ajuster les composants sur la cible ainsi que les nouveaux composants introduits de façon automatique.
Mieux encore, il permet d'ajouter, de mettre à l'échelle et d'étendre facilement le système de test non seulement pour Red Hat OpenShift, mais aussi pour l'ensemble de la gamme, y compris Red Hat OpenShift Service on AWS et Red Hat OpenShift AI.
Prochaines étapes
L'intégration de Chaos AI à Krkn permet d'améliorer le système de test. Elle renforce la confiance dans les produits et l'environnement et permet aux utilisateurs d'évoluer plus rapidement en augmentant le nombre de produits et de piles d'applications à tester.
Suivez-nous pour ne pas manquer les résultats de l'intégration et les conclusions dans les prochains articles de blog. Comme vous pouvez le constater, certains éléments, notamment Krkn, chaos-recommender et Krkn-telemetry, sont déjà disponibles en Open Source. Tirez-en parti pour tester et sécuriser votre environnement. Nous travaillons activement à la mise à disposition de l'ensemble du framework Chaos AI-Krkn en Open Source.
N'hésitez pas à donner votre avis ou votre contribution. Vous trouverez le code sur Github, où vous pouvez aussi échanger sur vos cas d'utilisation.
À propos des auteurs
Naga Ravi Chaitanya Elluri leads the Chaos Engineering efforts at Red Hat with a focus on improving the resilience, performance and scalability of Kubernetes and making sure the platform and the applications running on it perform well under turbulent conditions. His interest lies in the cloud and distributed computing space and he has contributed to various open source projects.
Mudit Verma is a Senior Research Engineer at Cloud Operations Dept., IBM Research. He possesses over 8 years of research experience. His areas of expertise and interest encompass Distributed Systems and Cloud. In recent years, he has been active in the area of intelligence-driven Cloud Operations and enabling self-* properties including Closed-Loop Management and assurance, AI based Chaos and effective Observability. He has also been a co-inventor of more than 20 United States patents (at various stages of filing), and been a co-author of multiple research papers accepted at top-tier conferences. Additionally, he has actively mentored multiple students and collaborated with professors of various eminent academic institutions such as Boston University, IISc, IITs, IIITs, etc. He is also an ACM Eminent Speaker. He holds bachelors and masters degree from BITS-Pilani and KTH Sweden respectively.
Sandeep Hans is working as a Research Scientist at IBM Research Lab – India. He has extensive experience in Distributed Systems and Artificial Intelligence. He is a co-inventor of multiple patents and co-author of more than 15 research papers in top tier conferences. He received his Ph.D. in Computer Science from Technion - Israel Institute of Technology under the guidance of Prof. Hagit Attiya. Prior to joining IBM Research, he was a post-doc at Virginia Tech in USA and has also worked with Mindtree Consulting Ltd. in Bangalore. He is currently working on building dependable systems using adversarial AI testing.
Contenu similaire
Parcourir par canal
Automatisation
Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements
Intelligence artificielle
Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement
Cloud hybride ouvert
Découvrez comment créer un avenir flexible grâce au cloud hybride
Sécurité
Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies
Edge computing
Actualité sur les plateformes qui simplifient les opérations en périphérie
Infrastructure
Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde
Applications
À l’intérieur de nos solutions aux défis d’application les plus difficiles
Programmes originaux
Histoires passionnantes de créateurs et de leaders de technologies d'entreprise
Produits
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Services cloud
- Voir tous les produits
Outils
- Formation et certification
- Mon compte
- Assistance client
- Ressources développeurs
- Rechercher un partenaire
- Red Hat Ecosystem Catalog
- Calculateur de valeur Red Hat
- Documentation
Essayer, acheter et vendre
Communication
- Contacter le service commercial
- Contactez notre service clientèle
- Contacter le service de formation
- Réseaux sociaux
À propos de Red Hat
Premier éditeur mondial de solutions Open Source pour les entreprises, nous fournissons des technologies Linux, cloud, de conteneurs et Kubernetes. Nous proposons des solutions stables qui aident les entreprises à jongler avec les divers environnements et plateformes, du cœur du datacenter à la périphérie du réseau.
Sélectionner une langue
Red Hat legal and privacy links
- À propos de Red Hat
- Carrières
- Événements
- Bureaux
- Contacter Red Hat
- Lire le blog Red Hat
- Diversité, équité et inclusion
- Cool Stuff Store
- Red Hat Summit