diff --git a/guide/backends.md b/guide/backends.md index ae8063c915470330c87f448efee06beb5061d6f6..1b1058d82935090b5817195899cfc686a223f122 100644 --- a/guide/backends.md +++ b/guide/backends.md @@ -22,6 +22,29 @@ Here are some ideas: 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](https://github.com/alexellis/faas/tree/master/api-docs) 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](https://github.com/alexellis/faas-netes): + + + +### 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](https://github.com/alexellis/faas-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 @@ -48,9 +71,21 @@ Method(s): POST Method(s): POST + ### Examples / documentation +* See the [Swagger API](https://github.com/alexellis/faas/tree/master/api-docs) as a starting point. + +#### faas-netes (Kubernetes) + +The Kubernetes integration was written by Alex Ellis and is officially supported by the project. + * See the [FaaS-netes handlers](https://github.com/alexellis/faas-netes/tree/master/handlers) for examples of how to implement each endpoint. -* See the [Swagger API](https://github.com/alexellis/faas/tree/master/api-docs) +#### Rancher / Cattle (community) + +This work is by Ken Fukuyama from Japan. + +* [Blog post](https://medium.com/@kenfdev/openfaas-on-rancher-684650cc078e) +* [faas-rancher](https://github.com/kenfdev/faas-rancher) implementation in Golang