What I’m trying to achieve ?
My personal goal is to have FaaS environment at home. Building it from scratch would help me to understand Kubernetes cluster solutions for future reference. Advantage of building it from bottom up is also that if something break you will have at least some idea what might be wrong. Note that in doing so you will in essence become: Storage support, Networking support, OS support, Application support, Security support, Hands&Eyes, Architecture designer in one person.
And since navigating the waters of Cloud Native Landscape is so easy ( Yea, you can feel the sarcasm don't you ) I made this guide.
For funzies look at the current state of
Cloud Native Landscape
What I build ?
- Deployed 9 node Kubernetes cluster on arm64
- Deployed distributed block storage on Kubernetes - Longhorn
- Deployed OpenFaaS ( Function as a Service platform)
- Deployed example OpenFaaS function
This gives me nice solution to deploy functions and learn more about
Serverless Applications and try new way of building applications. I do worry that function as a service might introduce
lag but on other hand I can invoke function asynchronously and consume the results when they come, while main program is continuing. Kind of external multitasking. It for sure help with load balancing, or even scaling to 0 which is super nice. It require to think a bit differently ( more complex in my opinion ) about building applications than standard monolith programing.