F2S OSS is our OpenSource Functions as a Service Platform for Kubernetes. It is under active development and has a lot of useful business features:
scale to zero
autoscaling
gitops configuration (crd's)
kafka integration (in development)
authentication (none, basic, token)
Architecture
F2S uses 2 namespaces: "F2S" - where the F2S Operator runs and "F2S-Containers", where the workloads / Pods are started.
The F2S Operator itself is an opensource Go-Program. One instance of the F2S Operator will serve as the master. F2S Operator encompasses the following components:
API Server API Server is the REST API Interface. Functions can be defined and invoked via API. All invocations are sent to the dispatcher component.
Metrics F2S Exposes Metrics in order to be able to make scaling decisions and have insight in all current activity
Config The Config Component observes CRD's (F2SFunction Declarations) in "f2s" namespace on Kubernetes
Kafka Package for Interaction with Kafka Event Bus (planned). All invocations are sent to dispatcher.
Operator Operator reacts to Config Changes and creates or deletes deployments and services in f2s-containers namespace. It is also responsible for scaling functions up and down.
Dispatcher Dispatcher picks up all incoming requests (REST, Kafka) and decides which function pod should serve the request.
Gitops
F2S allows for a Gitops approach as you can define all F2S Function Declarations by Kubernetes CRDs
Links
Quick Start
Get it up and running on your Kubernetes Cluster in 5 Minutes