Distributed Tasks in an Enterprise Computing Environment
Loading...
Date
Authors
Tichavský, Milan
Advisor
Referee
Mark
B
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
ORCID
Abstract
V architektuře orientované na mikroslužby jsou zprávy běžně používaným prostředkem pro komunikaci mezi jednotlivými službami. Obecně je zde potřeba naslouchat zprávám odeslaným na sběrnici a reagovat na ně spouštěním úloh. Tato práce prezentuje všechny podstatné úvahy k vyřešení tohoto problému. Přichází s rámcem pro spouštění úloh, který vykonává úlohy v libovolných kontejnerech na OpenShiftu. Řešení se skládá z API napsaného ve Flasku, které obsahuje spouštěcí logiku, a klienta, který přes STOMP příjmá zprávy ze sběrnice a poslílá je na API. Součástí jsou i testovací scénáře, které předvádějí funkčnost celého systému. Řešení je vyhodnocováno porovnáváním s existující aplikací postavené na nástroji Jenkins. Rovněž je diskutovaný alternativní návrh využívající Tekton. Druhým problémem, kterým se tato práce zabývá, je provádění pravidelně naplánovaných úloh. Namísto implementace vlastního řešení navrhuje použití Kubernetes objektů CronJob.
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.
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.
Description
Keywords
distrubuované výpočty , spouštění úloh , mikroslužby , posílání zpráv , STOMP , ActiveMQ , OpenShift , Kubernetes , kontejnerizace , Tekton , distributed computing , job execution , microservices , messaging , STOMP , ActiveMQ , OpenShift , Kubernetes , containerization , Tekton
Citation
TICHAVSKÝ, M. Distributed Tasks in an Enterprise Computing Environment [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2023.
Document type
Document version
Date of access to the full text
Language of document
en
Study field
Informační technologie
Comittee
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)
Date of acceptance
2023-06-16
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.
Result of defence
práce byla úspěšně obhájena
