Skip to content
Snippets Groups Projects

Roadmap

1. Current features

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.

Completed 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
  • UI enhancements to create new function through a form
  • Raspberry Pi (armhf/armv6) support (currently available)
  • Documentation for current API in Swagger format
  • Documentation about Alexa sample function
  • Native CLI for templating/building and deploying functions
  • Windows support for watchdog back-end - so that Windows executables can be used in a multi-OS swarm
  • Enforcing function execution time in seconds.

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

Most items are detailed via Github issues.

Must have

  • New logo - graphic icon and text
  • Asynchronous / long-running tasks
  • Website / landing page

Should have

  • Kubernetes support
  • AARCH64 (64-bit ARM) port
  • Basic auth for /system endpoints (probably via reverse proxy)

Could have

  • Function store - list of useful predefined functions
  • Supporting request parameters
  • Configurable memory limits via "new function" pop-up (already supported by Docker compose stack)

Nice to have

  • Guide for termination through NGinx or built-in TLS termination
  • Guide for basic authentication over HTTPs (set up externally through NGinx etc)
  • CRIU - (Checkpoint/Restore In Userspace) for warm-loading serverless tasks with a high start-up cost/latency.
  • Deeper tests coverage and integration tests

3. Development and Contributing

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)

Contributing

Please see CONTRIBUTING.md.