Original title:
Konfigurovatelná paralelní exekuce systémových testů v rámci projektu Strimzi
Translated title:
Configurable Parallel Execution of System Tests within the Strimzi Project
Authors:
Orsák, Maroš ; Rogalewicz, Adam (referee) ; Češka, Milan (advisor) Document type: Master’s theses
Year:
2022
Language:
eng Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[eng][cze]
V poslednych rokoch mnoho spolocnosti prijalo Kubernetes a architekturu mikrosluzieb, ktoru umoznuje. Tato technologia otvorila nove moznosti nielen pre velke spolocnosti, ale aj pre malych vyvojarov softveru. Kubernetes je system riadenia kontajnerov a nedavno sa objavil novy koncept, ako efektivnejsie organizovat kontajnery - vzor operatora. Jeden takyto operator je vyvinuty a udrziavany v ramci open-source projektu s nazvom Strimzi. Projekt Strimzi spaja niekolko nastrojov, ktore sa staraju o nasadenie Apache Kafka na Kubernetes. Kedze Kafka je komplexny, horizontalne skalovatelny, distribuovany system, viete si predstavit, ze jeho instalacia je pomerne zlozita akcia. Preto jednou z najvacsich vyziev pouzivania Kubernetes je, ako efektivne a rychlo otestovat projekty ako Kafka a Strimzi a zaroven overit integraciu s inymi podobnymi produktmi. Zdroje, ktore potrebuje Kubernetes, su ovela narocnejsie v porovnani s nasadenim Kafka na virtualne stroje alebo typicke instancie kontajnerov. Aby sme tento problem vyriesili, prijali sme principy par- alelneho vykonavania a vytvorili mechanizmus v ramci systemovych testov Strimzi, ktory paralelne spusta testy iba proti jedinemu klastru Kubernetes. Okrem toho sme navrhli uplne novu architekturu pre end-to-end testy. Vylepsenia su zamerane na skalovatelnost a skratenie casu vykonavania . Prostrednictvom niekolkych experimentov tato praca ukazuje, ze navrhovany mechanizmus s roznymi konfiguraciami klastra Kubernetes (vratane pocet uzlov Kubernetes , pocet paralelne vykonavanych testov a sad ) vyrazne urychlil vykonavanie testov.
In recent years, many companies have adopted Kubernetes and the microservices architec- ture it enables. This technology was opened up many new possibilities not just for large companies, but also for small software developers. Kubernetes is a container-orchestration system and recently a new concept has emerged arround how to orchestrate the containers more efficiently - the Operator pattern. One such operator is developed and maintained under an open-source project called Strimzi. The Strimzi project gathers together several tools, which take care of the deployment of Apache Kafka on Kubernetes. Since Kafka is a complex, horizontally scalable, distributed system, you can imagine that its installation is a relatively complex action. Therefore, one of the biggest challenges of using Kubernetes is how to effectively and quickly test projects such as Kafka and Strimzi and at the same time verify integration with other similar products. The resources needed by Kubernetes are much more demanding compared to the deployment of Kafka on virtual machines or typi- cal container instances. To tackle this problem, we adopt the principles of parallel execution and created a mechanism within Strimzi system tests, which runs tests in parallel against only a single Kubernetes cluster. Furthermore, we proposed a brand new architecture for the end-to-end tests. The improvements aim at scalability and reduction of execution time . Through several experiments, this paper shows that proposed mechanism with different configurations of the Kubernetes cluster (including number of Kubernetes nodes , number of tests and suites executed in parallel ) significantly accelerated execution of the tests.
Keywords:
Apache Kafka; AWS; Azure; Distribuovane systemy; Klastering; Kubernetes; middleware; multi-vlaknove vykona- vanie; Openstack; operatory ; Orchestracia; paralelizmus; skalovatelnost; Strimzi; subeh; sychronizacia; systemove testy; Apache Kafka; AWS; Azure; Clustering; Distributed systems; end-to-end tests; Kubernetes; middleware; multi-threaded execution; Openstack; operators ; Orchestration; paralelism; race condition; scalability; Strimzi; synchronization
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/207466