I am currently working on private cloud like AWS and I am using AWS lambda for serverless. This is very cool like framework that's why I did some researches to find open source alternatives. I came out with some names: OpenWhisk, OpenFaas. These frameworks use Docker to supervise containers in which code is executed. I am new with those technologies so I am still confused in some aspects.
Here is my point: I don't understand if these frameworks need to be used with a orchestartor like Kubernetes. If yes, how does it work with an orchestrator ?
If you have some information, links or documentations, it will be great !
Thank you very much.
OpenWhisk actually bypasses k8s to schedule the containers that run the user functions (known as actions in OpenWhisk). The function containers are managed entirely by the Invokers, which are OpenWhisk’s orchestrators custom built for handling functions.
The OpenWhisk system components are managed by Kubernetes. But Kubernetes itself is generally too slow for short lived function containers and can take many seconds to start one. That is a non starter for functions that may execute for milliseconds. Kube was not really designed to churn through tens of thousands of containers at high rates.
You may also want to take a look at Knative which is relatively new but aligns itself very closely with Kubernetes.
Here are 3 articles that may be informative to you:
What Invokers do in OpenWhisk: https://link.medium.com/MrhGj6RVrV and https://link.medium.com/pifBTkQVrV
The Serverless Contract provides some context to understand the performance implications of the underlying platform on the user functions: https://link.medium.com/2EMzs0FVrV
Lastly it may be worth noting that OpenWhisk may be deployed on baremetal and VMs, and Mesos DC/OS, or Docker Compose, giving you lots of options for custom deployments.