-
Alex Ellis authoredAlex Ellis authored
OpenFaaS backends guide
OpenFaaS is a framework for building serverless functions with containers and running them at scale.
Bring Serverless OpenFaaS functions to your favourite container platform.
We support two orchestration platforms or "backends":
- Docker Swarm
- Kubernetes
There is also community work in-progress to support:
- Rancher/Cattle
The Docker Swarm support is built-into the faas repo, but the Kubernetes support is provided by a microservice in the faas-netes repo.
If you're thinking of writing a new back-end we'd love to hear about it and help you, so please get in touch with alex@openfaas.com. Existing implementations (like OpenFaaS) are written in Golang and this provides a level of consistency across the projects.
I need a backend for X
This project is focusing on Docker Swarm and Kubernetes, but we're open to support from third parties and vendors for other backends:
Here are some ideas:
- Nomad
- Marathon Mesos
- AWS ECS
- Hyper.sh
If you would like to write your own back-end for X
then you can write your own microservice that conforms to the Swagger API here.
How does my back-end work?
In order to support a new back end you will write a new "external_provider" and configure this on the API Gateway. The API Gateway will then proxy any requests to your new microservice. The first "external_provider" was the Kubernetes implementation faas-netes:
Deploy a function - through the built-in Swarm support or through faas-netes
Invoke your function - through the built-in Swarm or via faas-netes
Find out more about the watchdog here.
Automatically compatible OpenFaaS
The following are fully compatible with any additional back-ends:
- API Gateway
- Promethes metrics (tracked through API Gateway)
- The built-in UI portal (hosted on the API Gateway)
- The Function Watchdog and any existing OpenFaaS functions
- The CLI
- Asynchronous function invocation
Dependent on back-end:
- Secrets or environmental variable support
- Windows Containers function runtimes (i.e. via W2016 and Docker)
- Scaling - dependent on underlying API (available in Docker & Kubernetes)
Backend endpoints:
- List / Create / Delete a function
/system/functions