Bachelor's Thesis

Distributed Tasks in an Enterprise Computing Environment

Final Thesis 1.9 MB

Author of thesis: Bc. Milan Tichavský

Acad. year: 2022/2023

Supervisor: doc. Ing. Radek Burget, Ph.D.

Reviewer: RNDr. Marek Rychlý, Ph.D.

Abstract:

In a microservices architecture, messages are commonly used for communication between individual services. There is a general need to listen to messages sent on a message bus and react to them by triggering job execution. This thesis presents all essential considerations to be made when solving this problem. It comes up with an execution framework that enables such workflow by executing tasks in arbitrary container images on OpenShift. The solution consists of a Flask API that contains the execution logic and a STOMP client written in Python that receives messages from the message bus and sends them to the API. Test scenarios are included to showcase the functionality, and the solution is evaluated by comparing it with a Jenkins setup. Also, an alternative design using Tekton pipelines is discussed. The second problem this thesis focuses on is the execution of periodically scheduled tasks and suggests using Kubernetes CronJob objects instead of implementing anything custom.

Keywords:

distributed computing, job execution, microservices, messaging, STOMP, ActiveMQ, OpenShift, Kubernetes, containerization, Tekton

Date of defence

16.06.2023

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Topics for thesis defence

  1. Jaký je konkrétní přínos vytvořeného řešení, resp. jak se změní v praxi proces nasazení software s využitím Vašeho řešení?
  2. Jak jsou vytvořené aplikace škálovatelné? Je možné procesy zpracování požadavků v aplikacích nějak monitorovat a reagovat na zátěž?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
doc. Dr. Ing. Otto Fučík (člen)
Ing. František Grézl, Ph.D. (člen)
Ing. Ivana Burgetová, Ph.D. (člen)
Ing. Martin Hrubý, Ph.D. (člen)

Supervisor’s report
doc. Ing. Radek Burget, Ph.D.

Pan Tichavský pracoval na své bakalárské práci po celou dobu velmi svědomitě, své řešení konzultoval jak se zadavatelem, tak se mnou, jako vedoucím práce. Výsledné řešení bude zřejmě nasazeno ve vývoji ve firmě RedHat. Celkově hodnotím práci studenta jako velmi nadprůměrnou a navrhuji hodnocení stupněm A.

Evaluation criteria Verbal classification
Informace k zadání

Cílem zadání byl návrh a implementace rámcového řešení pro automatizované spouštění úloh v distribuovaném prostředí OpenShift, které by nahradilo aktuálně používaný nevyhovující nástroj Jenkins. Jedná se o firemní zadání RedHat. Zadání považuji z pohledu vedoucího za splněné bez výhrad.

Práce s literaturou

Student využíval zejména konzultací ve firmě RedHat a samostatně si vyhledával další informační zdroje.

Aktivita během řešení, konzultace, komunikace

Konzultace ohledně analýzy požadavků a technické realizace řešení probíhaly zejména ve firmě RedHat. Student mě však o průběhu konzultací a důležitých rozhodnutích vždy informoval. Na své bakalářské práci pracoval svědomitě po celou dobu řešení.

Aktivita při dokončování

Implementační výstup i technická zpráva byly dokončeny ve značném předstihu a jejich výsledná podoba byla důkladně konzultována. Mé připomínky student řádně zapracoval.

Publikační činnost, ocenění
Points proposed by supervisor: 95

Grade proposed by supervisor: A

Reviewer’s report
RNDr. Marek Rychlý, Ph.D.

Technická zpráva bakalářské práce, kterou považuji za mírně obtížnější, je na velmi dobré úrovni a vlastní programové řešení je funkční, prakticky zaměřené a dobře navržené, přestože má jisté rezervy. Navrhuji hodnotit práci stupněm velmi dobře (B).

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Jedná se spíše o obtížnější práci, vzhledem k hloubce a rozsahu propojení v práci použitých technologií (sběrnice zpráv, Kubernetes, OpenShfit).

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Zadání je zcela splněno.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Rozsahem je technická zpráva v obvyklém rozmezí, od úvodu po závěr obsahuje 38 vysázených stran. Text práce je velmi bohatý na informace a velmi podrobně popisu jak použité technologie, tak vlastní řešení včetně diskuze případných problémů a alternativních přístupů.

Prezentační úroveň technické zprávy

Technická zpráva má vynikající prezentační úroveň. Zaměření i pořadí jednotlivých kapitol a jejich podkapitol plynule a podrobně představuje problémy a jejich řešení - v tomto oceňuji zejména kapitoly 4 "Existing Solution" a 5 "Design".

95
Formální úprava technické zprávy

Technická zpráva je psána v anglickém jazyce bez výrazných nedostatků (vytknout lze pouze drobné nedostatky v interpunkci a nejednotném přístupu k velikosti písmen v nadpisech, např. v kap. 4 a ostatních). Také po typografické stránce je technická zpráva bez vážnějších nedostatků (v některých místech lze vytknout např. absenci nedělitelných mezer či sirotky).

85
Práce s literaturou

Seznam literatury obsahuje 11 položek, z nichž většina (až na jednu knihu) jsou online zdroje popisující použité technologie. Zde by bylo vhodné použít více odborných zdrojů (např. o tématech distribuované architektury a sběrnic zpráv existuje řada relevantních odborných publikací). Jednotlivé zdroje jsou v textu technické zprávy řádně dokazovány a je dobře patrný způsob a rozsah jejich použití v kontextu vlastních úvah studenta.

75
Realizační výstup

Realizačním výstupem jsou dvě aplikace v programovacím jazyce Python: první přijímá zprávy s požadavky ze sběrnice a předává je na rozhraní druhé části, která na jejich základě nakonfiguruje prostředí Kubernetes a spustí úlohu v OpenShift. Řešení je středně rozsáhlé a je funkční. Zdrojový kód obou aplikací je dobře strukturován a dostatečně komentován. Součástí řešení jsou jednotkové testy, ale vzhledem k předpokládanému nasazení bych očekával také akceptační resp. use-case testy které chybí. Dále je škoda, že nebyla věnována větší pozornost škálovatelnosti řešení v souvislosti s využitím fronty zpráv, alespoň popisem v textu technické zprávy.

85
Využitelnost výsledků

Celá práce je zaměřena na praktické nasazení řešení v procesu automatizovaného nasazení, integrace a testování software ve společnosti Red Hat Czech s.r.o. a výsledky mají dobrou využitelnost.

Topics for thesis defence:
  1. Jaký je konkrétní přínos vytvořeného řešení, resp. jak se změní v praxi proces nasazení software s využitím Vašeho řešení?
  2. Jak jsou vytvořené aplikace škálovatelné? Je možné procesy zpracování požadavků v aplikacích nějak monitorovat a reagovat na zátěž?
Points proposed by reviewer: 85

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová