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
There is also community work in-progress to support:
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 firstname.lastname@example.org. 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:
- Marathon Mesos
- AWS ECS
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)
- List / Create / Delete a function
Method(s): GET / POST / DELETE
- Get a specific function
- Scale a specific function:
- Invoke a specific function
Examples / documentation¶
- See the Swagger API as a starting point.
The Kubernetes integration was written by Alex Ellis and is officially supported by the project.
- See the FaaS-netes handlers for examples of how to implement each endpoint.
Rancher / Cattle (community)¶
This work is by Ken Fukuyama from Japan.