It’s always wonderful to have a look at what’s new in the world of technology. Recently, Cloud Foundry Foundation, a collaborative project with Linux Foundation and a non-profit organization overlooking the open source platforms, conducted a worldwide survey and it surfaced that 46% IT decision makers are already using serverless.
Citing that, serverless is rapidly becoming the hottest trend in the cloud ecosystem. But how well is the open source serverless community doing? Where does it stand? What’s the future of open source serverless landscape?
Let’s explore and frame answers to some of these questions.
A Brief History of Serverless
Serverless computing is a paradigm and a next abstraction layer added to the world of cloud computing. You need not to worry about provision of infrastructure while you’re deploying your code. Along with that, since your code isn’t running continuously and on demand, you only pay for the time your code is running.
In today’s skyrocketed competition, where shorter time to market is becoming a key success factor, serverless is proving to be a major benefit. More to that, it is changing the manner in which DevOps team work. It is increasing the autonomy in terms of the technology stack and resources.
Amazon Web Service was the first one to debut with AWS Lambda (functions-as-a-service) in 2014. Since then, the list of FaaS providers is increasing. As of now, major serverless providers are AWS Lambda, GCP Functions, Microsoft Azure and IBM OpenWhisk.
Serverless & Open Source
If we talk about the traditional serverless offerings, you’ll have to sign up with the credit card and edit the code from the web browser or upload the zip file to run your functions. The way things work didn’t feel right to many of the developers in comparison to the enterprise grade CI/CD pipeline. There are better way to do things and that’s what triggered the momentum for open source serverless platforms and frameworks.
Gabe Monroy, CNCF Board Member & Product Head at Azure, raises concerns about the cloud lock-in and points out open source abstraction is the way to move forward.
Moreover, despite the well-earned success of these commercial FaaS providers, they aren’t meeting the demands of everybody which is making room for more customizable offerings. Pricing is, indeed, a consideration while choosing out the serverless vendors but definitely not the biggest one. Developers are aiming high for the platforms which provide them high velocity to deploy their applications.
Before we discuss the open source serverless ecosystem, we need to understand the reason behind their emergence. Slowly and gradually enterprises are experimenting with the open source serverless technologies citing the benefits over their vendor counterparts.
Broadly speaking, open source serverless can be classified into two categories: platforms and frameworks. About which we will discuss in the following section.
Where Do We Stand?
Let’s analyze where exactly do we stand with serverless and open source community and what experts has to say about it.
OpenFaaS is created by Alex Ellis with the intention to run functions with the least possible restrictions. It won Mobi’s Cool Hack Competition at DockerCon 2017 and the ball of momentum is still rolling. Currently, it has over 10,000 starts on GitHub.
Some of the exceptional features of OpenFaaS is that you can write it in any language you want. You can also remove the cloud overhead and can run your functions without any runtime limits. The project is licensed under MIT which makes it a low barrier entry point for enterprises and startups both.
Since serverless functions are single threaded, they suffer the most in the form of access to resources and memory allocation/deallocation and encoding. In many cases, connections are restarted per invocation which eventually slows down the performance. Nuclio not only solves these problems but also facilitates the common event structure, separating protocols from the event header and context body.
It is an extremely simple building block for building serverless architecture which works with a single Lambda function. To create functions, you’ve to use effe-tool. This tool automatically creates a new function. You can write your own logic into it and compile.
The idea with Effe is to run multiple docker containers for every function. However, these functions don’t know which trigger/URL to respond which requires you to route the traffic. This makes it inherently slow and further adds the scalability problems.
4. Pivotal Function Service
Pivotal Function Service is an open source, built on riff project, function-as-a-service platform which can handle event integrations, web events and large scale integration data. Currently it is available to selected users through early access entry. It is set to be launched publicly around late 2018.
It is powered to connect with various message topics via a language-neutral, function and a container interface with pluggable event brokers. It can also run natively on Kubernetes so that it is easy to invoke containers in response to the events.
5. Fn Project- Oracle
Developed by Oracle, this is an open source serverless platform which is a container-native and can be run anywhere. The main aim behind the Fn Project is to accelerate the adoption of fully serverless programming models and pave the way for multi-cloud computing.
This consists of
- Fn Server- a platform to build and scale your functions on multi-cloud environment.
- Fn Load Balancer- a platform which let developers to deploy and balances load intelligently on the Fn clusters.
- Fn FDK’s- these are development kits for bootstrapping functions in multiple languages and for providing data binding models for functions inputs.
- Fn Flow- This let developers orchestrate higher level of workflows of all the functions with their choice of programming language.
Kubeless is a Kubernetes native framework build for serverless applications. It utilizes the underlying resources of Kubernetes to let you develop FaaS application over it. It is an open source solution which provides the functionalities of AWS Lambda, Azure Functions and GCP Functions.
It employs Kafka messaging system and HTTP for event triggers. It uses Custom Resource Definition so that you can create custom resources for your functions on Kubernetes and eventually control function-runtimes for the same. It is also compatible with Serverless Framework.
7. Apache OpenWhisk
The main problem with the open source projects who wish to have a commercial success is to find contributors and collaborators. With the decision of Adobe and Red Hat to adopt the OpenWhisk has accelerated the momentum.
Citing that, Rich Sharples, Senior Director for Middleware Product Management at Red Hat, credited OpenWhisk with the most advanced feature set with largest community of collaborators. This provides the asynchronous functionalities, scalability and elasticity by design, which is the requirements of most of the enterprise level projects.
Fission is a FaaS platform built on Kubernetes. With fission, you can easily create HTTP services on Kubernetes from function as it works at the source level and remove the abstraction of container images. With fission, functions consume storage resources while sitting idle and CPU & memory while they are running.
Since Kubernetes offers a flexible and powerful orchestration system with a rigorous API backend, building Fission on top of it means to leave the container orchestration mechanism to Kubernetes and solely focus on FaaS features.
Iron functions are written in any language and can run on any platform of choice including hybrid cloud. This gives you the functionality to import functions directly from Lambda and run them.
It has a single system to manage and monitor. You don’t need to scale each app independently. Scaling can be done by simply adding each more Iron nodes to your already existing functions.
Galactic Fog’s Gestalt is a serverless framework built for Mesosphere’s DC/OS. It has a task based proficiency that lets developers built functionalities without any management of container environment. This is a series of microservices whose main focus is to set the right policy environment for enterprise looking forward to move their application in the cloud.
The main aim of the framework is to provide a scheduling layer from top to bottom which can offer policy and ID management. Along with that, an infrastructure layer with a pluggable interface for Mesosphere DC/OS and polyglot Lambda services.
All the projects that we’ve discussed so far are intended for the commercial and production use. However, as per the paper that demonstrates the project’s goal, OpenLambda’s main intention is to enable exploration of new approaches to serverless computing.
As of today, it has pretty basic functionalities and hence it isn’t recommended for the production use due to its inherently loose and insecure design.
The Future of Open Source Serverless
As of now, AWS is leading the serverless game. Since the Serverless Framework supports most of the popular cloud providers, it’s growing significantly faster than other serverless frameworks. But the open source serverless community requires to establish compelling use cases based on event-driven service integration among the multi-cloud, on-premise and private cloud systems.
The market of serverless is on hyper growth as of today. It is expected to increase at the rate of 37.2 percent at the end of 2021. Citing that, here are the major reason why open source serverless is going to be an integral part of serverless:
- These are developer first. OpenFaaS is one of the best example. It’s easy UI and simple CLI has received a lot of attention from community with features like one-click deployment.
- Simple in operations. Since most the offerings are built on cloud-native applications, it is fairly easy for Ops teams to work with. Required Helm charts an YAML files makes it easy to get started (as much as 60 seconds) if you already have a Kubernetes cluster.
- It is community centric and empowering developers. As of today, decision making in IT organizations is not exclusive to CXOs and architects. Developers play a key role adopting new technologies.
- Lock-in freedom: Vendor specific offerings have the potential to fall for the lock-in especially in serverless. Lack of flexibility and inescapable price increase is also becoming a serious concern.
Not only that, in my experience, any approach that restricts the organization to a single platform, costs a lot in terms of efficiency and cost. The market is moving too fast to be limited by a single platform.
Moreover, application portability is one of the initial feature that enterprises look into. This is why FaaS/PaaS on top of container orchestration is so important. By running FaaS on Kubernetes, you hedge against the abstractions you’ve bet on today, while setting yourself up to benefit from the abstractions to come.
For example, if your framework or FaaS platform is developed on the top of another open source offering like Kubernetes, then they can shift their application around anywhere. This is becoming an interesting approach in the way it is affecting the business perspectives and decisions henceforth.
While the future of open source serverless looks promising but the path to reach there is still to be determined and hence it’d be interesting to see how it unfolds!