Since the advent of AWS Lambda in 2014, the Function as a Service (FaaS) programming paradigm has gained a lot of traction in the cloud community. At first, only large cloud providers such as AWS Lambda, Google Cloud Functions or Azure Functions provided such services with a pay-per-invocation model, but since then interest has increased for developers and entreprises to build their own solutions on an open source model.
The maturation of container platforms such as Docker EE has made this process even easier, resulting in a number of competing frameworks in this space. We have identified at least 9 different frameworks*. In this study, we start with the following six: OpenFaaS, nuclio, Gestalt, Riff, Fn and OpenWhisk. You can find an introduction (including slides and videos) to some of these frameworks in this blog post from the last DockerCon Europe.
These frameworks vary a lot in feature set, but can be generalized as having several key elements shown in the following diagram, from the Serverless Architecture from CNCF Serverless Working Group whitepaper:
- Event sources – trigger or stream events into one or more function instances
- Function instances – a single function/microservice, that can be scaled with demand. Typically, these instances are created as containers.
- FaaS Controller – deploy, control and monitor function instances and their sources.
- Platform services – general cluster or cloud services used by the FaaS solution. Generally, these frameworks can be run on a Kubernetes cluster.
In the past few months, we received frequent questions from customers about what serverless framework they should use on top of Docker EE. So we started an open source repository to document how to install all these frameworks on Kubernetes on Docker EE, with the goal of providing a benchmark of these frameworks: docker serverless benchmark Github Repository. Pull Requests are welcome to document how to install other serverless frameworks on Docker EE.
We will develop this benchmark in collaboration with the various serverless frameworks maintainers and communities in the context of the CNCF Serverless Working Group: we will propose this initiative at the next group meeting.
At DockerCon, maintainers of 5 of these 6 open source serverless frameworks will participate in a panel about the future of serverless.