Loading…
Thumbnail Image

Automatic performance diagnosis and recovery in cloud microservices

Wu, Li

Microservices have emerged as a popular pattern for developing large-scale applications in cloud environments for its benefits of flexibility, scalability, and agility. A microservices-based cloud system (named as \emph{cloud microservices}) comprises hundreds or thousands of disparate services that communicate via lightweight messaging protocols, share a finite set of hardware and software resources, and are frequently updated to meet customer requirements. In such a complex and dynamic environment, the occurrence of performance problems (e.g., slow application responses) has become the norm rather than the exception, resulting in decreased revenue, damaged reputation, and significant human effort spent on performance diagnosis and recovery. Moreover, manual operation and maintenance of cloud microservices tend to be error-prone or even impracticable. Therefore, there is an urgent need for an automatic performance problem management system that can not only detect anomalous behaviors (performance anomalies) but also uncover the root causes and recommend recovery actions. In this thesis, we investigate methods for automatic performance diagnosis and recovery in cloud microservices. The core objectives of this thesis are to identify \emph{where} and \emph{why} a performance anomaly occurs, and further to decide \emph{how} to mitigate it. To this end, this thesis contributes: (1) a method for locating the faulty service from which a performance anomaly originates, including a graphical model for capturing the propagation of the anomaly in the system; (2) two methods for identifying the anomalous metrics that cause a performance anomaly, using deep learning and Spatio-temporal causal inference (CI). In addition, we evaluate the performance of CI techniques on performance diagnosis in cloud microservices through extensive experiments; (3) a method for selecting the most appropriate recovery action to mitigate an identified performance anomaly. Overall, the methods presented in this thesis diagnose root causes and recommend remedies in real-time without requiring any application instrumentation and historical failure instances. Our methods were implemented in prototypes and experimentally evaluated on representative microservices benchmarks. The evaluations show that they can support automatic performance diagnosis and recovery in cloud microservices and improve service reliability and end-user experience. The results have been peer-reviewed and published at renowned international conferences.
Microservices haben sich aufgrund ihrer Flexibilität, Skalierbarkeit und Agilität zu einem beliebten muster für die Entwicklung umfangreicher Anwendungen in Cloud-Umgebungen entwickelt. Ein auf Microservices basierendes Cloud-System (auch als \emph{Cloud-Microservices bezeichnet}) besteht aus Hunderten oder Tausenden von unterschiedlichen Diensten, die über leichtgewichtige Nachrichtenprotokolle miteinander kommunizieren, häufig aktualisiert werden, und sich eine begrenzte Anzahl von Hardware- und Softwareressourcen teilen. In einer derart komplexen und dynamischen Umgebung ist das Auftreten von Leistungsproblemen (z. B. langsame Anwendungsreaktionen) eher die Regel als die Ausnahme. Darüber hinaus sind der manuelle Betrieb und die Wartung von Cloud-Microservices oft fehleranfällig. Daher besteht ein dringender Bedarf an einem automatischen System zur Verwaltung von Leistungsproblemen, das abnormales Verhalten erkennen, die Ursachen aufdecken und Abhilfemaßnahmen empfehlen kann. In dieser Arbeit werden Methoden zur automatischen Ursachenlokalisierung und Behebung von Leistungsproblemen in Cloud-Microservices erforscht. Das Hauptziel dieser Arbeit ist es, zu identifizieren, wo und warum ein Leistungsproblem auftritt, und dann zu entscheiden, wie es behoben werden kann. Zu diesem Zweck bietet diese Arbeit (1) eine Methode zur Lokalisierung des fehlerhaften Dienstes, von dem ein Leistungsproblem ausgeht; (2) zwei Methoden zur Identifizierung der anomalen Metriken, die ein Leistungsproblem verursachen, unter Verwendung von Deep Learning bzw. räumlich-zeitlicher kausaler Inferenz (CI); (3) eine Methode zur Auswahl der am besten geeigneten Wiederherstellungsmaßnahmen zur Entschärfung des Leistungsproblems. Insgesamt diagnostizieren die in dieser Arbeit vorgestellten Methoden die Grundursachen und empfehlen Abhilfemaßnahmen in Echtzeit, ohne dass eine Anwendungsinstrumentierung und historische Fehlerfälle erforderlich sind. Unsere Methoden wurden in Prototypen implementiert und experimentell an repräsentativen Microservices-Benchmarks evaluiert. Die Auswertungen zeigen, dass sie zur Unterstützung der automatischen Leistungsdiagnose und -wiederherstellung in Cloud-Microservices, zur Verbesserung der Servicezuverlässigkeit und der Endbenutzererfahrung eingesetzt werden können. Die Ergebnisse wurden auf renommierten internationalen Konferenzen veröffentlicht.