mirror of
https://github.com/openfaas/faas.git
synced 2025-06-22 14:53:25 +00:00
2.1 KiB
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 aX-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
orcat
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.