Nane Kratzke

Blog:

A List of Serverless Frameworks

Published: 12 Sep 2017 (latest update: 28 Apr 2018)
Author: Nane Kratzke
Image: https://caylent.com/containers-vs-serverless/

Serverless computing is a cloud computing execution model in which the the allocation of machine resources is dynamically managed. There is a good blog bost by Mike Roberts on serverless architectures for the interested reader. “Serverless computing” is misleading to some degree. Obviously servers are still needed, but the term “serverless” is used because the server management and capacity planning decisions are completely hidden from the developer or operator. Serverless code can be used in conjunction with code deployed in more traditional styles, such as microservices. However, applications can be written to be purely serverless as well.

There are very well curated link lists dealing with serverless computing in general like Awesome serverless. However, this blog post would like to concentrate only on the frameworks. The main intent is to curate a list of open source serverless frameworks over time. If you think some framework is missing do not hesitate to propose it.

Public (commercial) serverless services

Most public cloud service providers offer compute runtimes, also known as function as a service (FaaS) platforms. Here are some well known type representatives.

Open (source) serverless platforms

All of the mentioned commercial serverless computing models are prone to create vendor lock-in (to some degree). Therefore, open source serverless frameworks might be an alternative with the downside that the infrastructure must be operated. Obviously these frameworks need platforms or infrastructures to be executed on.

  • OpenFaaS - OpenFaaS
  • nuclio - High-Performance Serverless event and data processing framework
  • Fn project - The Fn project is a container native serverless platform. It supports every programming language.
  • OpenWhisk by Apache includes native support for Node.js, Python, Java, and Swift, and supports other languages and runtime via Docker containers.
  • Kubeless, a serverless framework for Kubernetes.
  • Fission, another serverless framework for Kubernetes, supporting Python, NodeJS, Go, C#, and PHP.
  • Funktion, an event-based lambda programming environment for Kubernetes.
  • Functions as a Service (OpenFaaS) - a serverless framework for Docker & Kubernetes
  • IronFunctions - the serverless microservices platform
  • SpringCloud Functions - the serverless approach of Spring

This list is likely not complete. If you know further serverless platforms do not hesitate to contact me.

Provider agnostic serverless frameworks

While serverless platforms need infrastructures to be executed on, provider agnostic serverless frameworks provide a provider and platform agnostic way to define and deploy serverless code on various serverless platforms or commercial serverless services. This is an option to avoid (or reduce) vendor lock-in without the necessity to operate an own infrastructure.

This list is likely not complete. If you know further provider agnostic serverless frameworks do not hesitate to contact me.

Provider-specific serverless frameworks and IDEs

Provider-specific serverless platforms are often optimized for operation from a provider point of view. But from a developper point of view there are a lot of opportunities to improve the task to develop and deploy serverless code in a more convenient way. The following frameworks make use of serverless infrastructures but provide more convenient (but still provider-specific) IDEs.

  • AWS Cloud 9 (Online IDE for AWS cloud services)
  • SLAppForge Sigma (Currently AWS Lambda focussed, support for Azure and Google Cloud seems to be planned)

This list is not complete. If you know further provider-specific serverless frameworks and IDEs do not hesitate to contact me.