What is Function-as-a-Service (FaaS)?

Function-as-a-Service (FaaS) is a type of cloud computing allowing users to execute a function or single purpose program that removes the complexity that is often associated with servers and software stacks. FaaS cloud providers or more often referred to as, serverless providers that offer FaaS include Amazon Web Services Lambda, Google Cloud Functions, Microsoft Azure Functions, IBM Cloud Functions, and Oracle Cloud Fn are public cloud serverless offerings via FaaS.

Function-as-a-Service (FaaS) Platforms

There are numerous open source projects that allow you to deliver serverless computing on your own infrastructure. These platforms are primarily delivered using an open source development model but are usually backed by a primary sponsor (as shown in the parentheses in the listings below).

Firecracker (Amazon)

Firecracker was developed at Amazon Web Services that mimics the functionality of AWS Lambda and AWS Fargate.

Fission (Platform 9)

Fission is a framework for serverless functions on Kubernetes.

Fn Project (Oracle)

The Fn project is an open-source container-native serverless platform that you can run anywhere — any cloud or on-premise. It’s easy to use, supports every programming language, and is extensible and performant.

Knative/Kubernetes (Google)

Knative is a Kubernetes-based platform to build, deploy, and manage modern serverless workloads.

Kubeless (Bitnami)

Kubeless is a Kubernetes-native serverless framework that lets you deploy small bits of code (functions) without having to worry about the underlying infrastructure. It is designed to be deployed on top of a Kubernetes cluster and take advantage of all the great Kubernetes primitives.

OpenFaaS

OpenFaas is a serverless framework for Docker and Kubernetes that is maintained by Alex Ellis who is employed by VMware.

Apache OpenWhisk

Apache OpenWhisk is an open source, distributed Serverless platform that executes functions (fx) in response to events at any scale. OpenWhisk manages the infrastructure, servers and scaling using Docker containers so you can focus on building amazing and efficient applications.

Serverless (Serverless Inc.)

The Serverless Framework is written using Node.js by Serverless Inc. Serverless can be deployed to other function-as-a-service providers, including Microsoft Azure with Azure Functions, IBM Bluemix with IBM Cloud Functions based on Apache OpenWhisk, Google Cloud using Google Cloud Functions, Oracle Cloud using Oracle Fn, Kubeless based on Kubernetes, Spotinst and Webtask by Auth0.

FaaS Considerations

When choosing to provide your own serverless infrastructure you may want to look at the following factors;

  • Strength of Community – As with any open source project look at the variety and strength of the community of individual contributors and the companies who support the project. Frequency of commits, GitHub stars, and response time to issues are all reasonable criteria.
  • Supported Runtimes – Keep in mind that the velocity of technologies like Node.js, Java, and Go all are changing quickly and each platform supports specific versions of these technologies via these runtimes. Make sure your application runs in the supported runtimes.  
  • Underlying Technologies – Most of these frameworks are using the standard container orchestration technology, Kubernetes. If the underlying technology is proprietary or unique it may cause a form of lock-in by preventing application portability.

Create your first event flow in under 5 minutes