OpenFaaS can be deployed to a variety of container platforms such as Kubernetes, OpenShift, Docker Swarm and to containerd using the faasd project.
Whilst support is available for Docker Swarm and faasd, we recommend using Kubernetes in production and for work projects.
PLONK is a cloud native stack for application developers and an acronym that stands for:
- Prometheus - metrics and time-series
- Linux/Linkerd* - OS or service mesh (Linkerd is optional)
- OpenFaaS - management and auto-scaling of compute - PaaS/FaaS, a developer-friendly abstraction on top of Kubernetes. Each function or microservice is built as an immutable Docker container or OCI-format image.
- NATS - asynchronous message bus / queue
- Kubernetes - declarative, extensible, scale-out, self-healing clustering
Find out more in the OpenFaaS architecture
Kubernetes (recommended for production and for work)¶
A foreword on security
Authentication is enabled by default with OpenFaaS, however you will also need to obtain a TLS certificate for your cluster if you are using OpenFaaS on the public Internet. Free certificates are available from LetsEncrypt.org.
There are three recommended ways to install OpenFaaS to a Kubernetes cluster:
- Using the helm chart with our arkade installer, (recommended for dev/test)
- Using the helm chart directly or via Weave Flux - ideal for a GitOps/IaaC configuration
- Using the plain YAML files - generated YAML which you will need to customise
Start here: Deploy to Kubernetes
faasd with containerd¶
faasd is a light-weight option for adopting OpenFaaS which uses the same tooling, ecosystem, templates, and containers as OpenFaaS on Kubernetes, but which doesn't require cluster management. faasd uses containerd as a runtime and CNI for container networking.
Why might you try faasd?
- It's a lightweight option and is suited to use-cases such as: appliances, VMs, embedded use, edge, and for IoT.
- Teams may also find faasd useful for local development before deploying to Kubernetes.
- Teams who feel that they could benefit from functions and microservices, but who do not have the bandwidth to learn about Kubernetes may prefer this option.
Get started with faasd
OpenShift is a variant of Kubernetes produced by RedHat: Deploy to OpenShift
If you prefer to use Docker Swarm, then follow the deployment guide Docker Swarm.
Docker Swarm Playground¶
If you cannot run Docker on your local machine, or can't install anything locally, then you can try OpenFaaS on play-with-docker.com (PWD). Follow the playground guide here