Autonomic self-healing in cloud computing platforms

Gulenko, Anton

Inst. Telekommunikationssysteme

The demand for increasingly rich services with high-level abstractions drives the field of cloud computing. In both research and industry, additional layers and components continuously increase the complexity of these modern platforms. In truth, the size of cloud systems has long surpassed what human administrators are able to manage. Nonetheless, users and customers expect high availability and reliability from both the applications and the underlying platform, which is only possible through automation. Today, most automated dependability techniques focus on increasing the availability of distributed systems by preventing or masking component outages. However, both software and hardware components often exhibit a behavior where the delivered service degrades without becoming entirely unavailable. Such anomalies, also called gray failures or degraded states, originate from software bugs or other unforeseen issues with the system. Some application-specific systems attempt to handle certain types of anomalies by applying a pre-defined set of rules. In general, however, administrators have to resolve anomaly situations manually. In practice, there is no technique or system for detecting and resolving anomaly situations in a generic way. Accordingly, this thesis suggests an extension to traditional cloud infrastructures by providing self-healing functionalities. Our approach monitors live data streams collected from all critical system components and analyzes the collected data for anomalous be- havior. Once an anomaly is detected, the system further investigates the situation, determines the root cause, and automatically implements a remediation plan to resolve the problem. We analyze the requirements to build such a self-healing system and present an abstract system architecture that fulfills the given requirements. The proposed self-healing cloud provides administrators with a coherent set of configuration values that determine the level to which remediation workflows are executed automatically. Further, we design a data analysis engine that executes the necessary processing tasks while co-existing with the cloud workload, and that, without disrupting it. Finally, we apply the abstract architecture to the scenario of a public cloud platform and present a prototypical implementation of the named concepts. We evaluate various properties of our implementation in a practical experimental testbed and a qualitative analysis.
Die steigende Nachfrage nach Diensten mit immer höheren Abstraktionsebenen bestimmt heutzutage das Gebiet des Cloud Computing. Sowohl in der Forschung, als auch in der Industrie, führen zusätzliche Abstraktionsschichten und Komponenten zu wachsender Komplexität moderner IT-Systeme. Längst hat die schiere Größe von Cloudsystemen die Grenze des von Menschen Beherrschbaren überschritten. Nutzer und Kunden von Cloudplattformen erwarten dennoch ein hohes Maß an Zuverlässigkeit und Ausfallsicherheit, sowohl von der Plattform, als auch von den darin ausgeführten Anwendungen. Dies lässt sich nur mithilfe von Automatisierungslösungen erreichen. Die meisten automatischen Lösungen für die Zuverlässigkeit von verteilten Systemen basieren darauf, Ausfälle von Teilkomponenten zu verhindern oder zu verschleiern. Dabei wird übersehen, dass sowohl Hardware- als auch Software-Komponenten auch ein degradiertes Verhalten aufweisen können, ohne komplett auszufallen. Solche Fälle, auch Anomalien genannt, entstehen häufig aus Fehlern im Programmcode einer Applikation, oder durch andere unvorhergesehene Umstände im System. Anwendungsspezifische Systeme für Anomalieerkennung und -behebung behandeln bestimmte Typen von Anomalien, basierend auf manuell festgelegten Regeln. Im Normalfall müssen Administratoren solche Anomaliefälle aber manuell behandeln. Momentan gibt es kein System in praktischer Benutzung, welches Anomalien erkennt und behebt, ohne dabei Annahmen über die überwachte Anwendung zu treffen. Daher schlägt diese Dissertation eine Erweiterung von traditionellen Cloudplattformen vor, die solche Plattformen um selbstheilende Fähigkeiten erweitern. Unser Ansatz basiert auf Echtzeitdatenströmen, die von allen kritischen Komponenten des systems erfasst werden. Diese Datenströme werden kontinuierlich analysiert, um festzustellen, ob die jeweilige Komponente sich normal verhält, oder eine Anomalie aufweist. Sobald eine Anomalie erkannt wird, wird die Situation automatisch weiter untersucht, die Ursache der Anomalie gefunden, und automatisch eine Gegenmaßnahme eingeleitet, um das Problem zu beheben. In dieser Arbeit analysieren wir die Anforderungen, die ein solches System erfüllen muss, und stellen eine abstrakte Systemarchitektur vor, die diese Anforderungen erfüllt. Diese selbstheilende Cloudarchitektur bietet Administratoren verständliche Konfigurationsparameter, die bestimmen, zu welchem Maß Reparaturaktionen automatisch ausgeführt werden. Desweiteren definieren wir das Konzept von “In Situ Datenanalyse”, die verwendet wird, um die Datenströme in der selbstheilenden Cloud effizient auszuwerten, ohne die Plattform bei ihren eigentlichen Aufgaben zu behindern. In einer prototypischen Umsetzung der abstrakten Konzepte zeigen wir, dass die selbstheilende Cloudarchitektur im praktischen Anwendungsfall eines öffentlichen Clouddienstes anwendbar ist. In einer experimentellen Testumgebung messen wir diverse Eigenschaften unserer Plattform, und erweitern diese Evaluierung durch eine qualitative Analyse.