Open Source Serverless Computing Frameworks, and Why They Matter
Serverless computing is fast becoming one of the hottest trends in the channel since the cloud. What is the open source ecosystem doing to keep pace with the serverless trend, and why does it matter? Here's a look.
Serverless computing is a paradigm in which developers deploy and run code on demand, without having to maintain a backend server at all. The term is a little misleading; serverless computing does not mean there is no server involved. A server still runs your code, but you don't have to think about the server when deploying it.
When it comes to deploying apps, serverless computing offers some key advantages. It eliminates the need to set up and maintain a virtual server in the cloud. In addition, because your serverless code runs on demand rather than continuously, you only have to pay for computing time when you are actually using it.
AWS Lambda was the first major serverless computing platform to debut, in 2014. Other cloud vendors have followed suit; Azure now offers Serverless Functions. Expect the list of serverless vendors to keep growing fast as more organizations look to leverage the advantages of the serverless model.
Serverless and Open Source
Most serverless platforms available today — including the big three mentioned above — run on closed-source code. But the open source world is not sitting idly by as more computing becomes serverless.
Fission is the open source ecosystem's major response to the serverless revolution. Fission works in conjunction with Kubernetes, the open source orchestrator for container clusters. It allows you to run serverless code on a Kubernetes cluster on demand.
That cluster can be one you build yourself on premise or in the cloud. Or, you can use Fission in conjunction with a managed Kubernetes service.
The big downside to Fission is that it depends on Kubernetes. It's not a totally pure-play serverless solution. Still, Fission is an important step forward for organizations that want to take advantage of serverless computing solutions, but don't want to rely on closed-source platforms.
The Effe project is also working to build an open source serverless computing solution. For now, Effe remains basic, and, like Fission, it is designed to work as part of a containerized environment. But it doesn't depend strictly on Kubernetes.
So far, the closed-source serverless solutions hosted by the big cloud providers are dominating the market. I have not heard much about anyone shifting production workloads to Fission or other open source serverless frameworks (although OpenWhisk on Bluemix has become an increasingly big deal since it became generally available late last year). But I suspect that will happen as serverless computing becomes more popular.
Why It Matters
Why? What's the point of adopting an open source serverless solution, rather than using one of those hosted in the public cloud?
That's a fair question to ask. For many organizations, the primary reason for adopting serverless computing is that you save time and money by not having to set up and maintain infrastructure. You get that benefit whether your serverless platform is powered by closed or open source software.
Still, there are advantages to keeping your serverless backend open. For one, you get more freedom in deciding how to deploy your serverless code. Solutions like AWS Lambda require you to run serverless functions in the AWS cloud, on special servers designed for Lambda. With Fission, in contrast, you can do serverless anywhere you want — in your own cloud, in a virtual server on a public cloud, or on a plain-old bare-metal server in your own office, if you want.
Keeping everything open in the serverless backend will also facilitate more integrations and standardization. Rather than being limited to using only the programming languages that a particular serverless vendor supports, or only the monitoring tools that the vendor makes compatible with its serverless platform, an open source solution will theoretically allow you to customize and extend your serverless computing stack. It maximizes your freedom.
Last but not least, open source serverless platforms may provide some assurance to people who see the cloud as a threat to open source software. As Richard Stallman has noted, cloud computing presents special types of challenges to open source (or, to use Stallman's preferred term, free software). That's because when an app is hosted in the cloud, users usually lack the ability to control or modify the app, even if the app is open source.
An open source serverless framework doesn't nullify that issue. But it at least keeps the server framework that hosts your app fully open. That provides an assurance to your end users, because they will know that they can review and study the source code of the platform that powers the serverless functions that help deliver your app — even if they are unable to control the app itself.