Files
faas/ROADMAP.md
Alex Ellis cb807d2fa9 Adjust documentation
Allow content-type for UI
2017-01-31 17:30:42 +00:00

2.1 KiB

Roadmap

1. Current items

The API Gateway

This container acts in a similar way to the API Gateway on AWS. Requests can be made to this endpoint with a JSON body.

Features:

  • UI for viewing and testing functions deployed through stack
  • Auto-scaling of replicas as load increases
  • Backing off of replicas as load reduces
  • Unique URL routes for serverless functions
  • Instrumentation via Prometheus metrics at GET /metrics
  • Bundled Prometheus stack with AlertManager

Incoming requests and routing

There are three options for routing:

  • Functions created on the overlay network can be invoked by: http://localhost:8080/function/{servicename}
  • Automatic routing is also enabled through the / endpoint via a X-Function header which matches a service name (function) directly.

The watchdog

This binary fwatchdog acts as a watchdog for your function. Features:

  • Static binary in Go
  • Listens to HTTP requests over swarm overlay network
  • Spawns process set in fprocess ENV variable for each HTTP connection
  • Only lets processes run for set duration i.e. 500ms, 2s, 3s.
  • Language/binding independent - can invoke any UNIX process, including built-ins such as wc or cat

2. Future items

  • UI enhancements to create new function through a form
  • Asynchronous / long-running tasks
  • Built-in TLS termination
  • Deeper tests coverage and integration tests
  • Documentation about Alexa sample function

3. Development and Contributing

For development of the FaaS framework / library read on. If you would like to consume the project with your own functions then you can use the public images and the supplied docker stack file as a template (docker-compose.yml)

License

This project is licensed until the MIT License.

Contributing

Here are a few guidelines for contributing:

  • If you have found a bug please raise an issue.
  • If the documentation can be improved / translated etc please raise an issue to discuss.
  • If you would like to contribute to the codebase please raise an issue to propose the change.

Please provide a summary of what you changed, how you did it and how it can be tested.