Bachelor's Thesis

Support for Predictive Application Autoscaling on Kubernetes Platform

Final Thesis 2.11 MB Appendix 16.18 MB

Author of thesis: Bc. David Fridrich

Acad. year: 2022/2023

Supervisor: doc. Mgr. Adam Rogalewicz, Ph.D.

Reviewer: Ing. Jiří Pavela

Abstract:

The goal of this work is to create a new interface that will allow users to process collected metrics for scaling according to a formula (e.g. average value, mathematical equations, conditional statements) defined by a user. It also allows users to use an external interface for connecting KEDA to a component that defines its own scaling behavior, with which the user can achieve more complex solutions like automated predictive scaling of applications on Kubernetes platform. I solved the selected problems by modifying the KEDA core by implementing a new interface for scaling according to a custom formula with arithmetic and conditional expressions and the ability to connect a custom external remote method for calculating metrics using gRPC technology. The created solution provides a more flexible way to process metrics and also allows user to implement their own methods.

Keywords:

KEDA, Kubernetes, K8s, scaling, automatization, scaledObject, scaler, HPA, external, trigger, external calculation, grpc, controller

Date of defence

13.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, např. k upřesnění cílů práce a implementovaných řešení. 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 velmi dobře / B.

Topics for thesis defence

  1. V technické zprávě nezmiňujete, zda je Vaše rozšíření součástí upstreamu nástroje KEDA. Je integrace Vašeho rozšíření v plánu? Narazil jste případně při pokusu o integraci na nějaké problémy?

Language of thesis

Czech

Faculty

Department

Study programme

Information Technology (IT-BC-3)

Field of study

Information Technology (BIT)

Composition of Committee

doc. Ing. Vladimír Janoušek, Ph.D. (předseda)
doc. Ing. Lukáš Burget, Ph.D. (člen)
prof. Ing. Jan M. Honzík, CSc. (člen)
Ing. Vojtěch Mrázek, Ph.D. (člen)
Ing. Radek Kočí, Ph.D. (člen)

Supervisor’s report
doc. Mgr. Adam Rogalewicz, Ph.D.

Pan Zbyněk Roubalík (technický vedoucí z RH) k práci studenta napsal:


"Pan Fridrich plně splnil zadání práce a prokázal proaktivitu a poctivou práci po celou dobu. Výsledky práce jsou velmi přínosné a budou určitě využity v open source projektu KEDA. Jsem velmi spokojen s jeho výkonem a myslím si, že tato práce umožňuje rozšíření a navázání v potenciální budoucí diplomové práci."


S ohledem na stanovisko technického vedoucího a včasné dokončení práce navrhuji známku A-výborně.

Evaluation criteria Verbal classification
Informace k zadání

Jedná se o externí zadání z firmy RedHat. Jde o doplnění a úpravu velkého projektu. U takovýchto zadání bývá nejobtížnější částí proniknutí do funkcionality tohoto projektu a nalezení správného místa pro příslušné úpravy.

Práce s literaturou

Student vycházel především z dokumentace projektů Kubernetis a KEDA.

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

Student na řešení spolupracoval především se svým technickým vedoucím z RH. Já jsem byl cca jednou za měsíc informován o postupu.

Aktivita při dokončování

Práce byla dokončena včas, měl jsem možnost přečíst si většinu textu ve skoro finální verzi a dát k ní studentovi pripomínky.

Publikační činnost, ocenění

Práce bude zveřejněna v rámci open-source projektu KEDA.

Points proposed by supervisor: 90

Grade proposed by supervisor: A

Reviewer’s report
Ing. Jiří Pavela

Výstupem práce je nepříliš rozsáhlé, avšak kvalitní realizační řešení, které se zabývá rozšířením architektury aktivně vyvíjeného open-source nástroje KEDA. U řešení předpokládám využití v praxi po integraci do upstream větve projektu KEDA. Odevzdaná technická zpráva je spíše průměrné kvality a jako největší nedostatek vnímám množství jazykových a typografických chyb v textu.

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

Evaluation level: průměrně obtížné zadání

Jedná se o průměrně náročné zadání, při kterém bylo potřeba nastudovat fungování kontejnerů a jejich orchestrace. Stejně tak bylo potřeba se seznámit s několika open-source nástroji a následně provést úpravy v jednom z daných nástrojů.

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

Evaluation level: zadání splněno

Zadání bylo ve všech bodech splněno. Na základě technické zprávy jsem nezaregistroval významná rozšíření práce nad rámec zadání.

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Rozsah práce je přibližně na spodní hranici obvyklého rozsahu práce.

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

Práce má slušnou logickou strukturu a návaznost. Jednotlivé kapitoly na sebe plynule navazují. Jedinou výtku bych měl ke skutečnosti, že některé sekce nebo kapitoly příliš rychle sklouzávají k detailnímu popisu technických detailů, namísto snahy a zprostředkování lepší představy o celku.

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

Typografická a jazyková stránka práce je nejslabší částí výsledného řešení. Text obsahuje vcelku velké množství překlepů (Jednim, správny, každy, apod.) a gramatických chyb (shoda podmětu s přísudkem, chybějící čárky před "které", "že", apod.), které čtenáře vyrušují od plynulého čtení. Autor si rovněž nedával příliš velký pozor na používání anglicismů, u kterých v češtině existuje ustálený překlad (string, parser, scaler, trigger). Z hlediska typografie bych vytkl především nevhodné sázení obrázků (vzniká velké množství volného místa na předchozí stránce), přetékání textu za okraj stránky (str. 28), chybějící text mezi nadpisy různých úrovní (např. sekce 4.3 a 4.3.1) nebo až příliš stručný popis obrázku, ze kterého se čtenář nic nedozví (např. obrázek 3.1).

65
Práce s literaturou

V práci je uvedeno celkem 7 zdrojů, z nichž velká část odkazuje na dokumentaci nástrojů Kubernetes nebo KEDA. Výjimku tvoří dvě citované knihy. Některé další zdroje (týkající se převážně převzatých obrázků a ilustrací) jsou uvedeny v popiscích obrázků. Tyto citace by bylo vhodnější uvést v seznamu literatury, kde je možné uvést i další důležité údaje (jako např. datum návštěvy online zdroje). Jednotlivé citace v soupisu literatury nejsou příliš konzistentní – někdy je citovaná dokumentace uvedena v češtině a jindy v angličtině.

70
Realizační výstup

Kvalita realizačního výstupu je vysoká, což bylo možné si ověřit při demonstrace výsledného řešení studentem. Přestože rozsah realizace se mi jeví jako spíše menší, tak samotná realizace vyžadovala detailní nastudování a pochopení kódu architektury existujícího open-source nástroje. Následně bylo zapotřebí provést v této architektuře modifikace za účelem rozšíření podpory pro komplexnější specifikace škálování zdrojů. V rámci technické zprávy není zmíněno, zda byly vytvořeny automatické testy pro ověření funkčnosti řešení, nicméně tyto testy jsem měl možnost vyzkoušet v rámci demonstrace řešení.

90
Využitelnost výsledků

Jedná se především o práci kompilačního charakteru, u které předpokládám využití v praxi. V technické zprávě však není zmíněno, zda je dosažené řešení už integrováno do upstream větve open-source projektu KEDA.

Topics for thesis defence:
  1. V technické zprávě nezmiňujete, zda je Vaše rozšíření součástí upstreamu nástroje KEDA. Je integrace Vašeho rozšíření v plánu? Narazil jste případně při pokusu o integraci na nějaké problémy?
Points proposed by reviewer: 80

Grade proposed by reviewer: B

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