Merge branch 'draft_1' of https://github.com/alexellis/faas into draft_1

This commit is contained in:
Alex Ellis 2016-12-30 18:55:31 +00:00
commit 8734a3a5ac

View File

@ -1,5 +1,9 @@
# faas # faas - Functions As A Service
Functions as a service
This project provides a way to run Docker containers as functions on Swarm Mode.
* Each container has a watchdog process that hosts a web server allowing a JSON post request to be fowarded to a desired process via STDIN. The respose is sent to the caller via STDOUT.
* A gateway provides a view to the containers/functions to the public Internet and collects metrics for Prometheus and in a future version will manage replicas and scale as throughput increases.
Minimum requirements: Docker 1.13 Minimum requirements: Docker 1.13
@ -10,9 +14,9 @@ This container acts in a similar way to the API Gateway on AWS. Requests can be
Features: Features:
* auto-scaling of replicas as load increases * [todo] auto-scaling of replicas as load increases
* backing off of replicas as load reduces * [todo] backing off of replicas as load reduces
* unique URL routes for serverless functions * [todo] unique URL routes for serverless functions
* instrumentation via Prometheus metrics at GET /metrics * instrumentation via Prometheus metrics at GET /metrics
watchdog watchdog
@ -23,7 +27,7 @@ This binary fwatchdog acts as a watchdog for your function. Features:
* Static binary in Go * Static binary in Go
* Listens to HTTP requests over swarm overlay network * Listens to HTTP requests over swarm overlay network
* Spawns process set in `fprocess` ENV variable for each HTTP connection * Spawns process set in `fprocess` ENV variable for each HTTP connection
* Only lets processes run for set duration i.e. 500ms, 2s, 3s. * [todo] Only lets processes run for set duration i.e. 500ms, 2s, 3s.
* Language/binding independent * Language/binding independent
Complete example: Complete example: