Bachelor's Thesis

Design and implementation of a Function as a Service module

Final Thesis 3.31 MB Appendix 38.31 kB

Author of thesis: Gleb Sabitov

Acad. year: 2025/2026

Supervisor: doc. Ing. Václav Kaczmarczyk, Ph.D.

Reviewer: doc. Ing. Jakub Arm, Ph.D.

Abstract:

This bachelor's thesis analyzes existing serverless platforms and develops a custom FaaS framework designed for low-cost, small-scale, self-hosted deployments. Built on the .NET 8.0 platform and C\# 12, the resulting solution utilizes a process-centric architecture where complex containerization is replaced by efficient operating-system-level isolation using dynamic assembly loading and deep reflection. The architecture strictly separates the control plane, represented by a central controller, from the execution plane consisting of independent runners. The communication layer adopts an inverted-connection pattern via the high-performance gRPC RPC protocol with Protocol Buffers binary serialization. Unix Domain Sockets (UDS) are utilized as the primary transport medium, operating directly within kernel memory and bypassing the network stack, featuring an automatic fallback logic to local TCP/IP sockets for environments with restricted filesystem access. Although the framework is primarily designed as a minimalist alternative for local automation, its conception allows for seamless connectivity and integration with cloud services. Through shared interfaces and controller service endpoints, functions can consume external cloud APIs, while the normalized data layer and the multi-cloud potential of the architecture allow the framework to operate either on local hardware or as a hybrid component connected to robust cloud backends (BaaS) for data persistence or authentication.

Keywords:

serverless computing, Function-as-a-Service, cloud-native, cloud architecture, code loading, Inter-Process Communication, IPC, Remote Procedure Call, RPC, gRPC, Unix Domain Sockets, UDS, .NET Core, stateless functions, MongoDB

Date of defence

16.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Student obhájil bakalářskou práci. Komise neměla žádné námitky k řešené práci. V průběhu odborné rozpravy student odpověděl na dotazy oponenta a dotazy komise, kterou byl dotázán na praktické nasazení prezentovaného řešení.

Language of thesis

English

Faculty

Department

Study programme

Automation and Measurement (BPC-AMT)

Composition of Committee

prof. Ing. Roman Prokop, CSc. (předseda)
prof. Ing. Pavel Václavek, Ph.D. (místopředseda)
Ing. Peter Honec, Ph.D. (člen)
doc. Ing. Václav Jirsík, CSc. (člen)
doc. Ing. Václav Kaczmarczyk, Ph.D. (člen)
Ing. Stanislav Klusáček, Ph.D. (člen)

V rámci své bakalářské práce se student zabýval návrhem a realizací vlastního Function as a Service (FaaS) frameworku zaměřeného na nízkonákladové self hosted nasazení v malém měřítku. Student nejprve analyzuje existující serverless platformy a poznatky používá jako východisko pro vlastní návrh. Následně navrhuje a implementuje procesně orientovaný framework v prostředí .NET CORE a jazyce C#, který odděluje řídicí rovinu od exekučních jednotek a využívá gRPC nad Unix domain sockets či TCP pro vzájemnou komunikaci.

Téma považuji z hlediska koncepce za poměrně náročné – kombinuje oblast cloud native / serverless architektur, návrh IPC vrstvy a dynamické načítání kódu v .NET včetně práce s AssemblyLoadContext, reflexí a řízením životního cyklu modulů.

Po formální stránce je práce na velmi dobré úrovni. Student pracuje v angličtině, text je logicky strukturovaný, s jasně vymezenou teoretickou částí a návrhovou a implementační částí. Struktura kapitol je přehledná a odpovídá inženýrskému postupu: od požadavků přes architekturu, volbu technologií až po implementaci a testovací aplikaci. Citace primárních zdrojů jsou adekvátní a Bibliografie je zpracována korektně.

Odborná stránka práce je na velmi dobré úrovni. Student prokazuje detailní orientaci v dané problematice – rozlišuje role FaaS a BaaS v serverless architekturách, správně interpretuje rozdíly v izolačních modelech a tyto poznatky reflektuje v návrhu vlastního řešení. V návrhové části jasně zdůvodňuje volbu .NET/C# (přenositelnost IL, reflexe, asynchronní model) a navrženou architekturu controller/runner s inverzním komunikačním vzorem, persistentním řídicím procesem a efemérními exekučními procesy.

Po odborné stránce je však třeba zmínit i některé slabší stránky práce. Předložené řešení je především funkční proof of concept, který zatím nedosahuje robustnosti produkčně nasaditelného systému. Autor sám uvádí omezení zejména v oblasti dynamického plánovače, chybového zpracování a monitoringu. Praktické ověření navíc probíhá pouze na jedné ukázkové aplikaci, takže některé přínosy zůstávají doloženy spíše na úrovni prototypu než širší experimentální evaluace.

Z pohledu průběhu vypracování a přístupu studenta hodnotím spolupráci pozitivně. Student si zvolil ambiciózní zadání a po celou dobu projevoval vysokou míru samostatnosti, schopnost nastudovat pokročilé technologie a znalosti přetavit do funkčního návrhu. Konzultace probíhaly pravidelně, připomínky vedoucího reflektoval.

Zadání práce bylo splněno v plném rozsahu. S ohledem na odbornou náročnost tématu, kvalitu návrhu i implementace a velmi dobrou formální stránku práce ji hodnotím známkou A – 95 bodů. Points proposed by supervisor: 95

Grade proposed by supervisor: A

Reviewer’s report
doc. Ing. Jakub Arm, Ph.D.

Práce se zabývá návrhem a implementací vlastního frameworku typu Function-as-a-Service (FaaS) určeného pro malé self-hosted instalace. Autor nejprve představuje základní koncepty serverless architektur a stručně analyzuje vybrané komerční platformy AWS Lambda, Azure Functions a Google Cloud Run. Na základě požadavku vlastního řešení navrhuje vlastní architekturu založenou na oddělení řídicí a exekuční vrstvy spolu s dynamickým načítáním knihoven.
Zadání požaduje „otestovat celé řešení a zdokumentovat jej“. Testování je omezeno především na demonstraci jednoho scénáře ukázkové aplikace a kvalitativní ověření funkčnosti. Chybí systematické testy výkonnosti, spolehlivosti či srovnání s existujícími řešeními. Dokumentace ve formě popisu použití rozhraní (příkazy) také chybí.
Návrhová rozhodnutí jsou často zdůvodněna kvalitativně. Některé stěžejní části (Dynamic Scheduler) jsou zmíněny pouze v implementaci s diskuzí problémů a možného vylepšení.
Práce je po formální stránce zpracována na dobré úrovni. Značný rozsah je věnován implementačním detailům a výpisům kódu, zatímco analytické a hodnoticí části jsou relativně stručné. Občas se objevují formulace s marketingovým charakterem.
Výběr literatury se hlavně opírá o dokumentaci výrobců cloudových platforem a několika článků.
Základní body zadání byly splněny. I přes uvedené výtky považuji dílo za zdařilé. Topics for thesis defence:
  1. V práci opakovaně uvádíte, že použití gRPC a Unix Domain Sockets přináší vyšší výkon a nižší režii. Jakou výkonovou úsporu tohle řešení přineslo v reálném nasazení?
  2. Framework je prezentován jako FaaS řešení. Jakým způsobem by bylo možné rozšířit současnou implementaci o automatické horizontální škálování a jaké architektonické změny by to vyžadovalo?
Points proposed by reviewer: 85

Grade proposed by reviewer: B

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