Machine Learning based Chaos Engineering for Cloud-Native Microservice Architectures

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Sähkötekniikan korkeakoulu | Master's thesis

Department

Mcode

ELEC3029

Language

en

Pages

57

Series

Abstract

This thesis evaluates Chaos Engineering methods for cloud native microservices architecture, creates a reproducible Chaos Engineering environment and investigates machine learning classification algorithms to automate generation of Chaos Engineering experiments. The inefficiency of manually generating new experiments and then monitoring the experiment results motivates the automation aspect of this thesis. Chaos Engineering, on the other hand, is motivated by the difficulty of verifying whether a software system is able to withstand turbulent conditions in its development life cycle, even though it is very important for today's organizations to be resilient in order to avoid economic losses. Chaos engineering is a method of experimentation differentiating from normal software testing. The author of the thesis applies Chaos Engineering's the following three advanced principles: building a hypothesis about steady-state behavior, varying events of real world, and automating experiments to run continuously. Since Chaos Engineering is based on experimentation over testing and verification over validation, it provides flexibility in how to implement these experiments, as well as how to apply these advanced principles. The author puts her initial efforts into examining Chaos Engineering tools and then creating a reproducible environment for the selected tool. The author also automates the data collection process for machine learning requiring steady-state metrics of Kubernetes cluster and Sock-Shop application, experiment parameters and experiment results. The best solutions containing from k-nearest neighbors and decision tree classifiers have accuracy of \%93 and \%83, respectively. The primary outcome of this thesis originates in tools and techniques for Chaos Engineering adoption and automation by Machine Learning, enabling to cover a larger set of experiments more than humans could manually cover. The proposed tools for the automation pipeline constitutes a prototype or baseline approach towards achieving advanced principles of Chaos Engineering and ensure resilience in cloud-native microservices architectures.

Description

Supervisor

Jung, Alex

Thesis advisor

Komu, Miika

Other note

Citation