Feed abonnieren

Die Nachfrage nach komplexen Systemen, die mit Dutzenden oder Hunderten von Microservices in einem extrem großem Umfang ausgeführt werden, hat enorm zugenommen. Endnutzende erwarten, dass Services, auf die sie angewiesen sind, rund um die Uhr verfügbar sind. Daher sind selbst wenige Minuten Ausfallzeit entscheidend. Proaktive Chaos Engineers können solche Erwartungen von Nutzenden erfüllen, da sie Engpässe identifizieren und Services härten, bevor es in Produktionsumgebungen zu Ausfallzeiten kommt. Chaos Engineering ist daher wesentlich, um das Vertrauen Ihrer Endnutzenden nicht zu verlieren.

Dazu benötigen Sie eine resiliente Kubernetes-Plattform, mit der Sie gleichzeitig ein besseres Benutzererlebnis bieten können. Red Hat arbeitet daher mit der Open Source Community und Endbenutzenden zusammen, um Open Source-Tools und Chaos Engineering-Frameworks wie Krkn zu entwickeln und zu warten. Im Folgenden finden Sie einige zusätzliche Ressourcen mit Einblicken und Erkenntnissen aus der Ausführung von Chaostests, mit denen Sie eine bessere Idee der Möglichkeiten von Krkn bekommen.

Mit der zunehmenden Akzeptanz von Krkn für eine große Anzahl von Produkten bei der Community und unseren Kunden standen wir vor Herausforderungen, bei denen sich künstliche Intelligenz (KI) als nützlich erwies:

  • Hinzufügen und Aktualisieren von Testfällen, wenn Produkte neue Features und Fixes erhalten
  • Erweitern und Verwalten der Chaostest-Abdeckung für mehrere Produkte, was eine genaue Nachverfolgung erfordert
  • Ausführen von Hunderten von Testfällen, anstatt nur der Fälle mit einer vermeintlich hohen Störungswahrscheinlichkeit

Die Teams von Red Hat Chaos Engineering und IBM Research arbeiten gemeinsam an der Integration von KI in Krkn, um eine verbesserte und automatisierte Testabdeckung zu erreichen. Dies kann dabei helfen, den Aufwand für Chaostests für mehrere Produkte mit unterschiedlichen Architekturen, Knotengrößen und Datenverkehrsmustern zu skalieren.

KI-Integration in einem Use Case für Krkn

Mit der zunehmenden Akzeptanz von Krkn für Chaostests bei verschiedenen Produkten und Konfigurationen sind die Testfälle für eine gute Abdeckung komplexer geworden. Nehmen wir beispielsweise an, Sie haben einen Anwendungs-Stack mit zahlreichen Deployments und müssen Pods koordinieren, um Nutzeranfragen zu bedienen. Für einen Chaostest müssen Sie zunächst die Architektur verstehen und Testfälle je nach Art des jeweiligen Services entwerfen (Abhängigkeitsmuster zwischen einem Microservice und anderer Services oder ressourcenintensiver CPUs, Speicher, Input/Output-Vorgänge pro Sekunde, Netzwerk- oder Datenverkehrsmuster usw.).

Um dies abzudecken, müssten Sie Hunderte von Testfall-Iterationen ausführen, was mit einem hohen Arbeitsaufwand und potenziellen Cloud-Kosten verbunden wäre. Trotz dieses Aufwands ist eine ständige Überwachung erforderlich, um fehlende Randfällen zu finden und Testfälle anzupassen, wenn sich der Anwendungs-Stack weiterentwickelt (zusätzliche Features, Architekturänderungen usw.). Bei mehreren Pods ist es schwierig, die Kombination der Szenarien vorherzusagen. Dies kann dazu führen, dass die Service Level Objectives (SLO) verfehlt und die Performance beeinträchtigt werden, was sich letztlich auf den Service auswirkt.

Stellen Sie sich jetzt vor, Sie müssten dies für eine große Anzahl von Produkten und Anwendungen durchführen. Dank der Integration von Chaos AI in Krkn können Sie dieses Problem lösen. Dies ist ein klassisches Beispiel dafür, wie sich KI anpassen und bei der Verbesserung von Funktionen und der Lösung komplexer Probleme helfen kann.

Ziel ist es, dass das bereitgestellte Framework aus Chaos AI und Krkn automatisch Szenarien entdeckt und ausführt, die sich auf den Service auswirken. Mithilfe von bestärkendem maschinellem Lernen soll sich das Framework dann an Änderungen im Produkt-Stack anpassen.

chaos-testing-with-ai-de

Krkn

Krkn ist eine Chaos-Engine, die gezielt Fehlerbedingungen in Cloud-, Kubernetes- und OpenShift-APIs injizieren kann und dann die Wiederherstellung der Zielkomponente, den Gesamtzustand des Clusters sowie Performance-SLOs nachverfolgt.

Chaos-recommender

Anhand von Verweisen auf einen Service profiliert chaos-recommender die einzelnen Pods mithilfe von Prometheus, um zu ermitteln, ob sie netzwerkintensiv sind oder mit CPU, Speicher oder I/O zusammenhängen. Daraufhin schlägt es Krkn-Szenarien vor, die die höchste Störungswahrscheinlichkeit haben.

Krkn-telemetry

Wenn die Option aktiviert ist, erfasst und speichert Krkn-telemetry Metriken, Warnungen, Chaos-Parameter, Pass-/Fail-Tests und Protokolle sowie Umgebungsdetails wie Umfang (Anzahl der Knoten, Pods, Routen usw.), Architektur (AMD, ARM, X86_64), Netzwerk-Plugins (SDN, OVN) und mehr. Diese Daten werden für das Training des KI/ML-Modells verwendet, um zu verstehen, welche Komponenten häufig ausfallen und daher öfter getestet werden sollten.

Chaos AI-Workflow

Das End-to-End-Framework, das Krkn-Szenarien und SLOs als Eingabe nutzt, weist mithilfe von chaos-recommender und Krkn-telemetry den zu testenden Komponenten eine Gewichtung zu und führt verschiedene Kombinationen von Szenarien für den Anwendungs-Stack aus.

Hier sehen Sie einen beispielhaften Workflow für Etcd und ApiServer:

Schritt 1

Nutzende geben Etcd- und ApiServer-Namespaces als Ziele und SLOs. Die KI soll diese auf Fehler prüfen und wird dabei belohnt. Beispiel:

  • Die Namespace-Eingaben lauten openshift-etcd und openshift-apiserver.
  • Der API-Server hat eine Latenz von 99 % von mehr als 1 Sekunde.
  • Das SLO besagt, dass die Leader-Auswahlen von Etcd kleiner als 0 sind.

Schritt 2

Chaos AI löst chaos-recommender aus. Das Tool profiliert die Etcd- und ApiServer-Namespaces, um Chaos-Szenarien zu identifizieren, die basierend auf den Metriken zur Ressourcennutzung in Prometheus eine hohe Störungswahrscheinlichkeit aufweisen.

Schritt 3

Das Chaos AI-Modell wird mittels bestärkendem Lernen trainiert. Es werden Krkn-telemetry-Daten zu Etcd- und ApiServer-Komponenten erfasst, um zu ermitteln, welche Pods und Container häufig ausfallen.

Schritt 4

Chaos AI weist basierend auf Schritt 2 und Schritt 3 eine Gewichtung zu und führt Krkn-Szenarien aus. Das bestärkende Lernen basiert auf einem System, bei dem sich das Framework für nicht erfüllte SLOs selbst belohnt. In diesem Beispiel geschieht dies, wenn die API-Latenz größer als 1 Sekunde ist und Etcd die Leader-Auswahl durchläuft.

Damit werden auch andere Bereiche ausgeführt, bei denen die wenigsten Unterbrechungen erwartet werden, allerdings mit weniger Iterationen. Angenommen, eine neue Komponente oder Kombination schlägt häufig fehl. Dies wird in Krkn-telemetry aufgezeichnet und an das Modell zurückgegeben, um es bei den nächsten Iterationen zu berücksichtigen.

Schritt 5

Die Fehler werden für Sie ausgegeben, damit Sie sie beheben können.

Dies ist ein kontinuierlicher Prozess, der sich anpasst, wenn das Produkt sich weiterentwickelt, und zu verbessernde Bereiche ohne menschliches Eingreifen identifiziert, wenn potenzielle fehlende Randfälle auftreten.

Use Cases

Anstatt Testfälle manuell in Ihrer Produkt-Release-CI zu identifizieren und hinzuzufügen, können Sie mit diesem Framework Testfälle automatisch identifizieren und ausführen. Außerdem lassen sich damit nicht nur die Zielkomponenten, sondern auch neu eingeführte Komponenten automatisch anpassen.

Es kommt noch besser: Sie können die Testabdeckung nicht nur für Red Hat OpenShift, sondern für das gesamte Portfolio, einschließlich Red Hat OpenShift Service on AWS und Red Hat OpenShift AI, problemlos hinzufügen, skalieren und erweitern.

Nächste Schritte

Die Integration von Krkn und Chaos AI hilft Ihnen, die Testabdeckung zu verbessern. Das Vertrauen in Ihre Produkte und Umgebung wird gestärkt und Nutzende können schneller skalieren, da sie mehr Produkte und Anwendungs-Stacks testen können.

Die Ergebnisse der Integration und weitere Erkenntnisse finden Sie in den nächsten Blogs. Einige der Tools, wie Krkn, chaos-recommender und Krkn-telemetry, sind bereits Open Source und können zum Testen und Härten Ihrer Umgebung genutzt werden. Wir arbeiten aktiv daran, das gesamte Chaos AI- und Krkn-Framework als Open Source-Software zugänglich zu machen.

Über Ihr Feedback und Ihre Beiträge freuen wir uns sehr. Den Code finden Sie auf Github und natürlich besprechen wir gern, wie wir Ihre Use Cases gemeinsam weiterenwickeln können.


Über die Autoren

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.

Read full bio

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.

Read full bio

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.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Nach Thema durchsuchen

automation icon

Automatisierung

Das Neueste zum Thema IT-Automatisierung für Technologien, Teams und Umgebungen

AI icon

Künstliche Intelligenz

Erfahren Sie das Neueste von den Plattformen, die es Kunden ermöglichen, KI-Workloads beliebig auszuführen

open hybrid cloud icon

Open Hybrid Cloud

Erfahren Sie, wie wir eine flexiblere Zukunft mit Hybrid Clouds schaffen.

security icon

Sicherheit

Erfahren Sie, wie wir Risiken in verschiedenen Umgebungen und Technologien reduzieren

edge icon

Edge Computing

Erfahren Sie das Neueste von den Plattformen, die die Operations am Edge vereinfachen

Infrastructure icon

Infrastruktur

Erfahren Sie das Neueste von der weltweit führenden Linux-Plattform für Unternehmen

application development icon

Anwendungen

Entdecken Sie unsere Lösungen für komplexe Herausforderungen bei Anwendungen

Original series icon

Original Shows

Interessantes von den Experten, die die Technologien in Unternehmen mitgestalten