Please use this identifier to cite or link to this item: http://dx.doi.org/10.18419/opus-10867
Authors: Kammhoff, Niklas
Title: Algorithms for Efficient Chaos Experiment Selection in Microservice Architectures
Issue Date: 2019
metadata.ubs.publikation.typ: Abschlussarbeit (Bachelor)
metadata.ubs.publikation.seiten: xiii, 116
URI: http://elib.uni-stuttgart.de/handle/11682/10884
http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-108844
http://dx.doi.org/10.18419/opus-10867
Abstract: Chaos Engineering is an approach to resilience benchmarking for distributed architectures. Existing approaches for experiment selection include random fault injections and lineage driven fault injection, however, while quite exhaustive, they do lack in the area of efficiency. The ORCAS project introduces a new approach to resilience benchmarking for microservice architectures by leveraging knowledge about the architecture, as well as the simulation of experiments outside of the production environment. By prioritizing certain experiments, instead of choosing at random, the goal is to provide an efficient alternative to the existing approaches. As one of the main components of the ORCAS project, the decision engine is responsible for experiment selection based on the inputs of the architecture and previous experiment results. An outline for integrating the results into this framework is presented. This thesis explores algorithms suitable for efficient experiment selection in the decision engine, and evaluates these algorithms. Algorithms presented are based on Bayesian networks, reinforcement learning, artificial neural networks, and multilevel feedback queues. For evaluation, the algorithms are evaluated based on their efficiency and fault detection rate. For this, five versions of an example architecture have been used. The five architectures are grouped into three equivalence groups, based on their level of resilience. One candidate of each group is then used for evaluation. The results show that reinforcement learning is a suitable approach for the problem of efficiently selecting fault injections, since it does not require a training phase. In any case, almost all algorithms improve on the results of random fault injection selection.
Chaos Engineering beschreibt die Idee der Einführung von Fehlern in laufende Systeme. Das System wird dann, basierend auf einer vorher definierten Metrik, beobachtet. Diese Beobachtung zeigt, ob das System sich verhält, wie erwartet. Durch diese Einfühgrung von künstlichen Fehlern ist es möglich Systeme auf ihre Widerstandsfähigkeit gegen unerwartete Ereignisse zu untersuchen. Als Teil des ORCAS Projekts generiert die Orcas Decision Engine Chaos Experimente, welche dann sowohl in einem Simulator, als auch in einem realen System für Tests der Widerstandsfähigkeit verwendet werden sollen. Die Ergebnisse dieser Experimente werden dann in der Orcas Decision Engine verwendet, um die folgende Auswahl von Chaos Experimenten zu verbessern. Neben den Experimentergebnissen sind auch Informationen über die Microservice-Architektur, wie zum Beispiel Abhängigkeiten zwischen Operationen, bekannt. Diese Arbeit präsentiert Algorithmen zur Wahl von Fehlern, die dann in Chaos Experimenten verwendet werden können. Diese Algorithmen kommen aus den Bereichen Bayes'sche Netze, Reinforcement Learning und Multilevel Feedback Queues. In einer experimentellen Auswertung werden die Algorithmen mit einer zufälligen Wahl von Fehlern verglichen. Metriken zum Vergleich der Effizienz und Fehlererkennungsrate werden definiert. Die Ergebnisse zeigen, dass Reinforcement Learning eine passende Herangehenweise für die Wahl von Fehlern ist. Im Vergleich zu Bayes'sche Netze ist hier keine Trainingphase notwendig. Fast alle Algorithmen zeigen deutliche Verbesserungen im Vergleich zu der zufälligen Wahl von Fehlern.
Appears in Collections:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Files in This Item:
File Description SizeFormat 
thesis.pdf7,75 MBAdobe PDFView/Open


Items in OPUS are protected by copyright, with all rights reserved, unless otherwise indicated.