Skip to content
Snippets Groups Projects

faas - Functions As A Service

FaaS is a platform for building serverless functions on Docker Swarm Mode with first class metrics. Any UNIX process can be packaged as a function in FaaS enabling you to consume a range of web events without repetitive boiler-plate coding.

This is a Quickstart guide for the FaaS functions as a Service project

The guide makes use of a free testing/cloud service, but if you want to try it on your own laptop just follow the guide in the README file on Github. There is also a blog post that goes into the background of the project.

  • So let's head over to http://play-with-docker.com/ and start a new session.

  • Click "Add new Instance" to create a Docker host, more can be added later.

This one-shot script clones the code, initialises Docker swarm mode and then deploys the FaaS sample stack.

# docker swarm init --advertise-addr=$(ifconfig eth0| grep 'inet addr:'| cut -d: -f2 | awk '{ print $1}') && \
  git clone https://github.com/alexellis/faas && \
  cd faas && \
  ./deploy_stack.sh && \
  docker service ls

The shell script makes use of a v3 docker-compose.yml file

  • Now that everything's deployed take note of the two DNS entries at the top of the screen.

  • Head over to the README to see how to invoke the sample function for Docker Hub Stats via the curl commands.

The sample functions are:

  • Webhook stasher function (webhookstash) - saves webhook body into container's filesystem (Golang)
  • Docker Hub Stats function (hubstats) - queries the count of images for a user on the Docker Hub (Golang)
  • Node Info (nodeinfo) function - gives you the OS architecture and detailled info about the CPUS (Node.js)

Invoke the sample functions with curl or Postman:

Head over to the Github repo now for the quick-start to test out the sample functions:

Quickstart documentation with docker-stack deploy

Once you're up and running checkout the gateway_functions_count metrics on your Prometheus endpoint on port 9090.

Would you prefer a video overview?

See how to deploy FaaS onto play-with-docker.com and Docker Swarm in 1-2 minutes. See the sample functions in action and watch the graphs in Prometheus as we ramp up the amount of requests.

Prometheus metrics are built-in

Prometheus is built into FaaS and the sample stack, so you can check throughput for each function individually with a rate function in Prometheus like this: