Skip to content

What I’m trying to achieve ?

Info

07.11.2021 - I have finally got around to order proper PSU and some voltage convertors for my Raspberry cluster. Powering over USB hub this many devices is not that great. So I will be rebuilding everything from scratch on purpose and go over whole guide to do updates :)

My personal goal is to have a FaaS environment at home. Building it from scratch would help me to understand Kubernetes cluster solutions for future reference. Another advantage of building it from the bottom up is that, if something breaks, you will at least have some idea about 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 and Architecture designer in one person.

And, since navigating the waters of Cloud Native Landscape is so easy (Yeah, you can feel the sarcasm, can't you), I made this guide.

For funzies, look at the current state of Cloud Native Landscape

https://landscape.cncf.io/

What did 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

Kubernetes + OpenFaaS + Longorn Logo

This gives me a nice solution to deploy functions, learn more about Serverless Applications, and try a new way of building applications. I do worry that function as a service might introduce lag, but on other hand I can invoke functions asynchronously, and consume the results when they come, while the main program continues. Kind of like external multitasking. It is certainly helpful for load balancing, or even scaling to 0, which is super nice. It requires me to think a bit differently (more complexly, in my opinion) about building applications compared to standard monolith programing.


Last update: November 7, 2021