Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-9589
Autor(en): Wenzler, Nils
Titel: Automated performance regression detection in microservice architectures
Erscheinungsdatum: 2017
Dokumentart: Abschlussarbeit (Bachelor)
Seiten: xiii, 93
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-96067
http://elib.uni-stuttgart.de/handle/11682/9606
http://dx.doi.org/10.18419/opus-9589
Zusammenfassung: The emergence of microserive architectures has lead to a need for software performance techniques which cater to the needs of these architectures. Microservice architectures are architectures which are build out of small independent processes which communicate by use of language independent interfaces such as REST. Microservice environments challenge common software performance engineering techniques by their highly distributed nature, their rapidly changing systems and their extensive use of virtualization and containers. Detecting performance changes of a system during development, so-called performance regression detection, is a valuable addition to the development and maintenance of software systems. How software performance regression detection can be performed in microservice architectures is the non-trivial question, on which this thesis focuses to answer. To reach this goal, in a first step extensive research on by the microservice orchestration technology Kubernetes and the containerization technology Docker provided software performance metrics is performed. Results show that some major performance metrics can not be considered to be stable concerning redeployments of the microservice system. They suggest that performance metrics of a microservice instance can be highly impaired by other microservices running on the same node. A second step empirically evaluates the performance of existing performance regression detection techniques in the context of a microservice environment. After a thoroughly comparison of the different approaches, selected approaches were implemented and their performance was evaluated empirically in the test setup. The results show that some approaches are not applicable or show a bad performance in the microservice setup. Although none of the approaches performed well enough for practical application, two of the approaches showed promising results, which could lead to enabling performance regression detection in microservice architectures.
Das Aufkommen von Microservice Architekturen hat zu einem Bedarf an neuen Software-Performanz-Techniken, die an die Eigenschaften dieser Architekturen angepasst sind, geführt. Microservice Architekturen sind Architekturen die aus kleinen und unabhängigen Prozessen aufgebaut sind, die über sprachenunabhängige Schnittstellen wie REST kommunizieren. Microservice-Umgebungen stellen auf Grund ihrer massiven Verteiltheit, den sich schnell und häufig ändernden Systemen und ihrer Verwendung von Virtualisierung und Containerisierung eine Herausforderung für Software-Performanz-Ingenieure dar. Performanceänderungen eines Systems zu erkennen, so genannte Performance-Regressions-Erkennung, ist eine wertvolle Ergänzung zur Entwicklung und Wartung von Softwaresystemen. Die nicht-triviale Frage, wie Performance-Regressions-Erkennung im Umfeld von Microservice-Umgebungen durchgeführt werden kann, steht deshalb im Fokus dieser Arbeit. Um Antworten auf diese Frage zu finden, werden zunächst die von der Microservice-Orchestatrationstechnologie Kubernetes und der Containerisierungstechnologie Docker zu Verfügung gestellten Performanz-Metriken untersucht. Die Ergebnisse dieser Arbeit zeigen, dass manche Microservice-Performanz-Metriken im Bezug auf Redeployments desselben Systems auf demselben Cluster nicht als stabil angesehen werden können. Sie suggerieren, dass Performanz-Metriken einer einzelnen Microservice-Instanz massiv durch andere Microservice-Instanzen auf demselben Knoten beeinflusst werden können. In einem zweiten Schritt wird die Performanz existierender Performanz-Regressions-Erkennungsverfahren im Microservice-Umfeld empirisch untersucht. Nach einem gründlichen Vergleich der unterschiedlichen Verfahren, wird eine Auswahl der Verfahren nachimplementiert und ihre Performanz in einem Test-Microservice-System mit künstlichen Regressionen evaluiert. Die Ergebnisse zeigen, dass manche Verfahren nicht anwendbar sind oder sehr schlechte Ergebnisse erzielen. Obwohl keins der untersuchten Verfahren für eine praktische Anwendung gut genug wäre, zeigen zwei der unter-suchten Verfahren vielversprechende Ergebnisse, die zielführend für die Entwicklung von Performanz-Regressions-Erkennung im Microservice Architekturen sein könnten.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat 
AutomatedPerformanceRegressionDetectionInMicroserviceArchitectures.pdf928,67 kBAdobe PDFÖffnen/Anzeigen


Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.