\pagenumbering{roman}
\setcounter{page}{1}

\selecthungarian

%----------------------------------------------------------------------------
% Abstract in Hungarian
%----------------------------------------------------------------------------
\chapter*{Kivonat}\addcontentsline{toc}{chapter}{Kivonat}

Napjainkban egyre elterjedtebb a webes alkalmazások fejlesztése során kisebb részegységek fejlesztése, melyeknek saját felelősségük is lehet. Ezzel a kódbázis növekedése nem vonzza maga után annak az átláthatatlanságát. Erre egy megold\'as a Function as a Service architekt\'ura.

Fennáll viszont a probléma, hogy az egyes részek akkor is készen állnak kérések fogadására, ha nincs rájuk szükség, ezzel feleslegesen foglalva az erőforrásokat. Szintúgy gyakori probléma a váratlanul megjelenő, nagy terhelésre a lassú válaszreakció. Ez a probléma legtöbbször nem egy rosszul elkészített alkalmazásból adódik, hanem a futtató környezet adottsága. 

A Knative ezt a problém\'at oldja meg. Lehetővé teszi az egyes részegységek nullára val\'o skálázását, tov\'abb\'a a megjelenő konkurens kérésekkel arányosan k\'epes a szolg\'altat\'asok gyors sk\'al\'az\'as\'ara. 

A szakdolgozat keretein belül a Knative ezen funkciójának működését vizsgálom. Ehhez kidolgoztam m\'er\'eseket, melyek betekint\'est ny\'ujtanak a rendszer belső műk\"od\'es\'ebe. Feladatom r\'eszek\'ent a kidolgozott m\'er\'eseket, valamint azok eredm\'enyeinek anal\'izis\'et automatiz\'altam, ami felgyors\'itja az eredm\'enyek \'ertelmez\'es\'et.

Dolgozatom kifejezetten hasznos lehet azoknak, akik d\"onteni pr\'ob\'alnak a Knative haszn\'alata mellett, vagy meg szeretn\'ek tudni, hogy műk\"odik ez a rendszer.

\vfill
\selectenglish


%----------------------------------------------------------------------------
% Abstract in English
%----------------------------------------------------------------------------
\chapter*{Abstract}\addcontentsline{toc}{chapter}{Abstract}

Nowadays breaking web based applications into small components each with their own responsibilities is common practice. By doing this a growing codebase does not become too complicated to manage. One such architecture is Function as a Service.

However, these functions are ready to accept requests even when they are not needed thereby reserving resources unnecessarily. Another problem is the typically slow reaction to a sudden rise of the incoming request rate. This is not due to bad design by application developers, but a characteristic of runtime systems.

Knative gives an answer to these problems. It is able to scale application components to zero and scale them quickly proportional to the number of concurrent requests.

In my thesis I analyze these functions of Knative and compare them to traditional scaling available in Kubernetes. To do this I devised measurements which provide an insight into the inner workings of Knative. As part of my assignment I automated these measurements and their analysis thereby speeding up interpretation of results.

My thesis may be especially useful for those trying to decide whether to use Knative or not or to those trying to gain an insight into the inner workings of Knative.

\vfill
\selectthesislanguage

\clearpage
\newcounter{romanPage}
\setcounter{romanPage}{\value{page}}
\stepcounter{romanPage}
