Skip to content
Snippets Groups Projects
Commit 8734a3a5 authored by Alex Ellis's avatar Alex Ellis
Browse files

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

parents 9656b530 57317167
No related branches found
No related tags found
No related merge requests found
# 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 ...@@ -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: ...@@ -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:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment