Gesteigerte Azure-Dienstqualität dank künstlicher Intelligenz: AIOps

Veröffentlicht am 29 Juni, 2020

Chief Technology Officer, Microsoft Azure

„In der Ära von Big Data übersteigen die Informationen, die aus Clouddiensten im Umfang von Azure erfasst werden, die Aufnahmefähigkeit des Menschen. Es ist essenziell, die richtigen Schritte für die Aufrechterhaltung der höchstmöglichen Dienstqualität anhand der erfassten Datenmenge zu wählen. Indem wir diese auf Azure anwenden, möchten wir KI in unsere Cloudplattform und DevOps-Prozesse integrieren. So entsteht AIOps, und die Azure-Plattform wird selbstständig anpassbarer, resilienter und effizienter. AIOps unterstützt unsere Engineers auch dabei, die richtigen Maßnahmen effektiver und rechtzeitig zu ergreifen, um die Dienstqualität zu verbessern und Kunden und Partner zufriedenzustellen. Dieser Beitrag setzt unsere Reihe zur Steigerung der Zuverlässigkeit fort. Dabei werden vor allem Initiativen vorgestellt, um die Zuverlässigkeit der Azure-Plattform weiter zu verbessern. Der folgende Beitrag wurde von Jian Zhang verfasst. Sie ist unser Program Manager und betreut dieses Projekt, da sie unsere Ziele für AIOps teilt. Sie hebt hervor, in welchen Bereichen KI bereits in die Praxis der Clouddienstverwaltung eingeführt wurde.“ – Mark Russinovich, CTO für Azure


Dieser Beitrag wurde vom Principal Data Scientist Manager Yingnong Dang und vom Partner Group Software Engineering Manager Murali Chintalapati mitverfasst.

 

Wie Mark beim Start seiner Blogreihe zur Steigerung der Zuverlässigkeit schon erwähnt hat, sind das Aufsetzen und der Betrieb einer globalen Cloudinfrastruktur im Umfang von Azure komplexe Aufgaben, denn es gibt Hunderte Dienstkomponenten in über 160 Rechenzentren und 60 Regionen, die sich ständig weiterentwickeln. Um diese Herausforderung zu meistern, haben wir ein AIOps-Team für die Zusammenarbeit mit Azure-Engineeringteams gegründet und mit Microsoft Research zusammengearbeitet, um KI-Lösungen zu entwickeln, die die Clouddienstverwaltung effizienter und zuverlässiger gestalten als je zuvor. Uns verbindet das gemeinsame Ziel, KI in unsere Cloudplattform und unseren DevOps-Prozess zu integrieren. Gartner hat ein ähnliches Verfahren als „AIOps“ bezeichnet. Daraufhin hat sich dieser Begriff intern bei uns etabliert, wird aber für einen größeren Umfang verwendet. Der heutige Beitrag ist nur der erste Schritt. Wir planen regelmäßige Updates zur internen Einführung von KI-Technologien, die den Betrieb von und die Entwicklung mit Azure im großen Stil unterstützen sollen.

Gründe für AIOps

Clouddienste haben zwei einzigartige Merkmale:

  • die stetig zunehmende Skalierbarkeit und Komplexität der Cloudplattform und -systeme
  • die sich ständig ändernden Anforderungen von Kunden, Partnern und Workloads

Damit wir trotz diesem konstanten Wandel zuverlässige Clouddienste entwickeln und betreiben können – und das so effizient und effektiv wie möglich – benötigen unsere Cloudengineers (und Tausende Azure-Entwickler, Operations Engineers, Kundenbetreuer und Program Managers) vor allem Daten, um Entscheidungen zu treffen und Maßnahmen zu ergreifen. Zudem müssen viele dieser Entscheidungen und Maßnahmen automatisch erfolgen, da sie ein integraler Bestandteil unserer Clouddienste und DevOps-Prozesse sind. Wenn wir den Weg von Daten über Entscheidungen bis hin zu Maßnahmen optimieren möchten, müssen wir Muster in Daten erkennen, diese analysieren und auf Grundlage von Verlaufsdaten Vorhersagen treffen. Dann müssen auf diesen zugrunde liegenden Informationen basierende Maßnahmen empfohlen oder ergriffen werden.

 KI-Einführung in die Cloudplattform und DevOps – KI steht im Zentrum von Kunden, Engineering und Dienstleistungen.
Abbildung 1. KI-Einführung in die Cloudplattform und DevOps

Das Ziel von AIOps

AIOps hat das Cloudgeschäft zunächst durch verbesserte Dienstqualität und Kundenfreundlichkeit transformiert, während die Produktivität der Engineers durch intelligente Tools gesteigert wurde. So können die Kosten kontinuierlich optimiert und letztendlich die Zuverlässigkeit, Leistung und Effizienz der gesamten Plattform verbessert werden. In der Investition in die weitere Einführung von AIOps und ähnlichen Technologien sehen wir vor allem folgende Vorteile:

  • Verbesserte Dienstqualität und Effizienz: Clouddienste sollen Features für die selbstständige Überwachung, Anpassung und Reparatur beinhalten, für die nur minimale menschliche Interaktion erforderlich ist. Durch die Automatisierung auf Plattformebene, die durch intelligente Features ermöglicht wird, werden die Dienstqualität (einschließlich der Zuverlässigkeit, Verfügbarkeit und Leistung) und die Diensteffizienz verbessert, um die bestmögliche Kundenzufriedenheit zu erreichen.
  • Gesteigerte DevOps-Produktivität: Dank der Automatisierungsleistung von KI und ML müssen Engineers sich nicht mehr um die Untersuchung wiederholter Probleme kümmern und ihre Dienste nicht mehr manuell betreiben und supporten. Stattdessen können sie sich auf die Behebung neuer Probleme, die Entwicklung neuer Features und die Arbeitsbereiche konzentrieren, die sich auf die Zufriedenheit von Kunden und Partnern auswirken. In der Praxis liefert AIOps Entwicklern und Engineers wichtige Informationen, sodass sie diese nicht mehr aus Rohdaten gewinnen müssen und die Produktivität steigt.
  • Höhere Kundenzufriedenheit: AIOps-Lösungen spielen eine wichtige Rolle dabei, Kunden die Verwendung, Wartung und Problembehandlung ihrer Workloads, die auf unseren Clouddiensten basieren, so einfach wie möglich zu machen. Wir möchten AIOps einsetzen, um die Anforderungen unserer Kunden besser zu verstehen, potenzielle Probleme zu erkennen und proaktiv auf diese zu reagieren. Durch datengesteuerte Einblicke in das Verhalten von Kundenworkloads kann gemeldet werden, ob Microsoft oder der Kunde eingreifen muss, um Probleme zu verhindern oder Problemumgehungen anzuwenden. Letztendlich besteht das Ziel darin, die Zufriedenheit zu verbessern, indem Probleme schnell identifiziert, eingedämmt und behoben werden.

Meine Kollegen Marcus Fontoura, Murali Chintalapati und Yingnong Dang geben das Ziel von Microsoft, die Investitionen und beispielhaften Erfolge in diesem Bereich bei der Keynote AI for Cloud–Toward Intelligent Cloud Platforms and AIOps beim AAAI-20 Workshop on Cloud Intelligence weiter, der in Zusammenhang mit der 34. AAAI Conference on Artificial Intelligence stattfindet. Das Ziel wurde durch einen AIOps-Ausschuss bei Microsoft gesetzt, der aus Produktgruppen für Clouddienste (Azure, Microsoft 365, Bing, LinkedIn und Microsoft Research) besteht. Bei der Keynote haben wir einige wichtige Bereiche vorgestellt, in denen AIOps die Aufsetzung und den Betrieb von Cloudsystemen transformieren kann. Eine Übersicht finden Sie im folgenden Diagramm.
 

KI für Cloud: AIOps und KI-fähige Plattform mit Beispielanwendungsfällen für KI in Systemen, KI für DevOps und KI für Kunden


Abbildung 2: KI für die Cloud: AIOps und KI-fähige Plattform

AIOps

Bevor wir weiter auf unser Ziel eingehen, möchten wir zunächst die allgemeine Methodik für die Entwicklung von KI-Lösungen zusammenfassen. Eine Lösung in diesem Bereich beginnt immer mit Daten – Messungen von Systemen, Kunden und Prozessen –, da der Schlüssel einer AIOps-Lösung darin liegt, Informationen über das Systemverhalten, das Kundenverhalten und DevOps-Artefakte und -Prozesse zu sammeln. Diese Informationen können sich beispielsweise um ein Problem handeln, das gerade auftritt (Ermitteln), warum es auftritt (Diagnostizieren), welche Auswirkungen es zukünftig hat (Vorhersagen) und wie es verbessert werden kann (Optimieren, Anpassen, Beheben). Diese Einblicke sollten immer mit Geschäftsmetriken kombiniert werden – Kundenzufriedenheit, Systemqualität und DevOps-Produktivität –, damit Maßnahmen in Übereinstimmung mit der Priorisierung ergriffen werden, die die geschäftlichen Auswirkungen erfordern. Die Maßnahmen werden auch an das System und den Prozess zurückgeleitet. Dieses Feedback könnte vollständig automatisiert (in das System integriert) oder durch Menschen ergänzt (in den DevOps-Prozess integriert) werden. Diese allgemeine Methodik hat uns dazu veranlasst, AIOps-Lösungen auf drei Säulen basierend zu entwickeln.

AIOps-Methodiken: Daten (Kunde/System/DevOps), Informationen (Ermitteln/Diagnostizieren/Vorhersagen/Optimieren) und Maßnahmen (Beheben/Vermeiden zukünftiger Auswirkungen/Optimieren der Nutzung und Konfiguration/Verbessern der Architektur und des Prozesses)
Abbildung 3: AIOps-Methodiken: Daten, Informationen und Maßnahmen

KI für Systeme

Heute stellen wir mehrere AIOps-Lösungen vor, die bereits verwendet werden und Azure unter der Haube unterstützen. Das Ziel liegt darin, die Systemverwaltung zu automatisieren, damit menschliches Eingreifen seltener nötig ist. So können die Betriebskosten gesenkt, die Systemeffizienz verbessert und die Kundenzufriedenheit gesteigert werden. Diese Lösungen haben bereits erheblich zur verbesserten Verfügbarkeit der Azure-Plattform beigetragen, insbesondere in Bezug auf virtuelle Azure-IaaS-Computer (Virtual Machines, VMs). AIOps-Lösungen haben auf verschiedene Arten dazu beigetragen, z. B. durch den Schutz von Kundenworkloads vor Hostfehlern durch die Vorhersage von Hardwarefehlern, proaktive Maßnahmen wie Livemigrationen, Project Tardigrade und die Vorabbereitstellung von VMs für eine kürzere Erstellungszeit.

Natürlich spielen auch Verbesserungen im Engineering und kontinuierliche Systeminnovationen eine wichtige Rolle bei der stetigen Verbesserung der Plattformzuverlässigkeit.

  • Durch die Vorhersage von Hardwarefehlern sollen Unterbrechungen durch Hardwarefehler bei Cloudkunden vermieden werden. Im Jahr 2018 haben wir uns bereits zur Verbesserung der Resilienz von Azure Virtual Machines durch Predictive Machine Learning und Livemigrationen geäußert. Microsoft Research und Azure haben eine Lösung für die Vorhersage von Datenträgerfehlern für Azure Compute entwickelt, die die Livemigration von Kunden-VMs (von potenziell fehlerhaften zu fehlerfreien Knoten) auslöst. Wir haben die Vorhersage zudem auf andere Hardwareprobleme wie Fehler mit dem Arbeitsspeicher oder Netzwerkroutern erweitert. So können wir die Verfügbarkeit durch einen Predictive-Maintenance-Ansatz verbessern.
  • Der Dienst für Vorabbereitstellungen in Azure sorgt für Zuverlässigkeit und Latenzvorteile bei der VM-Bereitstellung, indem vorab bereitgestellte VMs erstellt werden. Diese VMs werden vorab erstellt und teilweise konfiguriert, sodass wir auf Kundenanforderungen für VMs vorbereitet sind. Wie in der Veröffentlichung „IJCAI 2020“ und in der oben erwähnten Keynote der AAAI-20 erläutert wurde, wird eine Vorhersage-Engine für den Dienst für Vorabbereitstellungen genutzt, um VM-Konfigurationen und die Anzahl der VMs pro Konfiguration vorherzusagen, die vorab erstellt werden sollen. Diese Vorhersage-Engine wendet dynamische Modelle an, die auf Grundlage von Verlaufsdaten und aktuellem Bereitstellungsverhalten Vorhersagen für zukünftige Bereitstellungen treffen. Der Dienst für die Vorabbereitstellung verwendet diese Vorhersage, um VM-Pools pro VM-Konfiguration zu erstellen und zu verwalten. Zudem ändert der Dienst die Größe des VM-Pools, indem VMs aufgrund aktueller Vorhersagen entfernt oder hinzufügt werden. Sobald eine VM ermittelt wird, die mit den Kundenanforderungen übereinstimmt, wird diese aus dem vorab erstellten Pool dem Kundenabonnement zugewiesen.

KI für DevOps

KI kann die Produktivität im Engineering steigern und dazu beitragen, schnell hochwertige Dienste auszuliefern. Im Folgenden finden Sie einige Beispiele für KI in DevOps-Lösungen.

  • Incident Management, also die Ermittlung und Behebungen seltener, aber unvermeidlicher Plattformausfälle, ist ein wichtiger Bestandteil der Clouddienstverwaltung. Ein typisches Incident-Management-Verfahren besteht aus mehreren Phasen wie der Ermittlung, der Mobilisierung und der Behebung. Die für die einzelnen Phasen aufgewendete Zeit wird als Key Performance Indicator (KPI) verwendet, um die Problembehebung zu messen und zu beschleunigen. Diese KPIs umfassen die Ermittlungsgeschwindigkeit, die Mobilisierungsgeschwindigkeit und die Behebungsgeschwindigkeit.

 Incident-Management-Verfahren mit Ermittlungsgeschwindigkeit, Mobilisierungsgeschwindigkeit und Behebungsgeschwindigkeit
Abbildung 4: Incident-Management-Verfahren

Bereits im Vortrag AIOps Innovations in Incident Management for Cloud Services auf der AAAI-20-Konferenz haben wir unsere KI-basierten Lösungen vorgestellt, mit denen Engineers Probleme nicht nur frühzeitig erkennen, sondern auch die richtigen Teams finden können, die zur schnellstmöglichen Behebung mobilisiert werden müssen. Durch die enge Verzahnung mit der Plattform wird in manchen Fällen eine vollständige, nahtlose Behebung ermöglicht, die die Auswirkungen auf Kunden erheblich reduziert und so die Kundenzufriedenheit insgesamt erhöht.

  • Die Anomalieerkennung ist eine vollständige Lösung für die Überwachung und Anomalieerkennung für Azure-IaaS-Angebote. Diese Lösung ist auf verschiedenste Anomaliemuster ausgerichtet, zu denen nicht nur generische, durch Schwellenwerte definierte Muster zählen, sondern auch komplexere Muster wie Verlustmuster (z. B. Arbeitsspeicherverluste) und neu aufkommende Muster (nicht in Form von Spitzen, sondern langfristig ansteigend mit Schwankungen) zählen. Die von Anomalieerkennungslösungen generierten Informationen werden für vorhandene Azure DevOps-Plattformen und -Prozesse verwendet, z. B. für Warnungen über die Telemetrieplattform, die Incident-Management-Plattform und in einigen Fällen für das Auslösen automatisierter Nachrichten an betroffene Kunden. Dadurch können Probleme so früh wie möglich erkannt werden.

Der dynamische Schwellwert ist ein Beispiel für ein ML-basiertes Anomalieerkennungsmodell, das sich bereits zum Kundenfeature etabliert hat. Dieses Feature von Azure Monitor wird über das Azure-Portal oder die ARM-API genutzt. Mithilfe des dynamischen Schwellwerts können Benutzer die Ermittlungsempfindlichkeit optimieren, indem sie beispielsweise angeben, bei wie vielen Verstoßpunkten eine Überwachungswarnung ausgelöst wird.

  • Die sichere Bereitstellung ist ein intelligentes, globales Überwachungsfeature für den sicheren Rollout von Azure-Infrastrukturkomponenten. Wir haben ein System mit dem Codenamen „Gandalf“ entwickelt, das die zeitliche und räumliche Korrelation analysiert, um latente Probleme zu erfassen, die Stunden oder sogar Tage nach dem Rollout aufgetreten sind. So können verdächtige Rollouts (bei einer großen Menge laufender Rollouts) ermittelt werden, die in Azure-Szenarios häufig auftreten, und das Problem kann ggf. an der Ausbreitung gehindert werden, sodass keine Auswirkungen auf weitere Kunden bestehen. In diesem früheren Blogbeitrag haben wir unsere sicheren Bereitstellungsmethoden erläutert. Die Funktionsweise von Gandalf haben wir im Paper USENIX NSDI 2020 und dieser Präsentation vorgestellt.

KI für Kunden

Wir haben KI-Lösungen für den gesamten Lebenszyklus der Kundenverwaltung entwickelt, um die Zufriedenheit von Azure-Kunden zu erhöhen. Beispielsweise haben wir ein System für Entscheidungshilfen entwickelt, mit dem Kunden durch die Auswahl der geeigneten Supportmaßnahmen geführt werden, indem die Dienstauswahl des Kunden und eine ausführliche Zusammenfassung des aufgetretenen Problems genutzt werden. So finden Kunden und Partner schneller die Anleitungen und Supportmaßnahmen, die sie benötigen.

KI-fähige Plattform

Wir haben in Systeme investiert, die KI für die Optimierung der Cloudressourcennutzung nutzen, um die Verwaltung einer globalen Cloud effizienter zu gestalten und somit die Kundenzufriedenheit zu verbessern. Ein Beispiel hierfür ist Resource Central, eine KI-fähige Plattform für Azure, die wir unter Communications of the ACM vorgestellt haben. Diese Plattform sammelt Telemetriedaten aus Azure-Containern und -Servern, lernt aus früherem Verhalten und erzeugt bei Bedarf Vorhersagen für zukünftiges Verhalten. Wir setzen Resource Central bereits für die präzise Vorhersage vieler verschiedener Merkmale von Azure Compute-Workloads ein (einschließlich Ressourcenbeschaffung und -zuordnung), um die Systemleistung und -effizienz zu steigern.

Eine vielversprechende Zukunft

Hier haben wir Ihnen an unseren Zielen für die KI-Einführung für die Azure-Plattform und unsere DevOps-Prozesse teilhaben lassen und mehrere Lösungen hervorgehoben, die in vielen Bereichen bereits zur Verbesserung der Dienstqualität eingesetzt werden. Zukünftig werden weitere Informationen zu internen KI- und ML-Lösungen veröffentlicht, mit denen die Cloudverwaltung noch intelligenter gestaltet werden soll. Wir sind davon überzeugt, dass wir nicht nur unsere Effektivität und Effizienz als Cloudanbieter, sondern auch die Zuverlässigkeit und Leistung der Azure-Plattform mit diesen Investitionen verbessern können.