Should WebAssembly Get a PaaS?
The issue today is that Wasm continues to remain an emerging technology and thus far, a lot, if not most, energy is spent explaining what it does and what the hype is about.
For the purposes of this article, we take a high-level approach about what Wasm is and why a PaaS option is arguably essential. The most basic description of WebAssembly as Kevin Hoffman, CTO of Wasm provider Cosmonic recently wrote, matches the purpose or “missions statement” of Microsoft’s Orleans: “Orleans is a cross-platform framework for building robust, scalable distributed applications.” wasmCloud, as well as Wasm, and Orleans are designed to improve and simplify how developers build applications with fewer headaches about operations and interacting with operations teams, I would argue. However, as Hoffman writes, wasmCloud and Orleans differ in their implementation.
Indeed, Wasm is designed to make the developer’s process easier and direct, taking off at least some of the pressure to meet operations needs since its implementation offers a more direct path to deployment thanks largely to its binary computing structure. In this way, it offers a single binary executable across multiple targets without having to be reconfigured for each target.
“One of the premises of WebAssembly is the opportunity to return to simplicity because of the execution model. Simplicity really goes a long way,” Fermyon Technologies CEO and co-founder Matt Butcher told the New Stack. “WebAssembly is just easier to operate than some of the other core technologies.”
A PaaS alternative — at least in theory — makes that process that much easier for the developer. To be clear, it does not represent a serverless solution thanks largely to the freedom and flexibility Wasm offers the user for its implementation and application across distributed environments (due to the computing and binary executions of Wasm that write directly to the CPU).
This flexibility is what sets Wasm apart from opinionated platforms like Cloud Foundry, Torsten Volk, an analyst for Enterprise Management Associates (EMA), told The New Stack. “Wasm provides developers with a lot of freedom and easy extensibility when it comes to rolling their own application stack,” Volk said. “Of course, more turnkey integrations with popular databases, messaging platforms, observability tools and other runtime components would accelerate adoption — and the fact that these integrations are available on GitHub tells me that this can be done.”
The Writing Is on the Wall
A PaaS falls under the need for solutions that offer developer self-service. The demand was there long before the advent of Kubernetes and even before DigitalOcean’s amazing and fun options of being able to set up your own server through an API with just a few clicks became available a few years ago.
The central idea of a PaaS is that the developer has the ability to work with their own workflow, and then publish it into the environment that is least for staging in development if not in production, Butcher told the New Stack. “I think that the most compelling part of a PaaS is that it means that the relationship between infrastructure management teams and platform engineers or developers is formalized through a PaaS platform,” he said.
One key new nuance to take into account is that not all PaaS options are designed for WebAssembly. They are and should continue to be designed for tools and layers built on top of WebAssembly already. A couple of PaaS options for Wasm introduced during KubeCon+CloudNativeCon in Detroit included the Cosmonic platform’s free developer tier. The company says it offers:
- A lightweight and “low-boilerplate” development environment standard in wasmCloud.
- With the “Super Constellation” feature, developers can bring their own laptops, cloud resources or an entire data center and combine and scale them with Cosmonic-managed resources, while managing them from a single interface.
- The ability to run on any cloud, edge or other environment, so that the need to refactor applications for new environments is removed.
- Improvements so that developers have less concerns about meeting operations since many operations-related tasks and constraints the developer would otherwise have to assume are removed.
Fermyon says its platform eliminates “90% of the hassle, complexity and cost of building cloud apps” by offering a complete WebAssembly-based execution environment with an easy-to-use Web interface.” The capabilities Fermyon has communicated include:
- Microservices that start in milliseconds instead of seconds that can be scaled up or down “nearly instantly” and are executed in a secure sandbox environment for apps that can be run on Windows, macOS and Linux without recompiling or rewriting.
- Developers can compose microservices, web apps, scheduled batch jobs or machine learning triggered by HTTP, Redis pubsub or time-based events.
Fermyon is also built on a suite of existing open source projects that jointly comprise a WebAssembly PaaS. Hippo provides a web interface, Bindle manages packages, HashiCorp’s Nomad orchestrates deployments and Spin adds templating, monitoring, logging and caching to its execution environment, the company says.
Heroku Was More Than a Brilliant Failure
PaaS has some negative connotations by its association with Heroku. But this assumption is misleading as Heroku did in fact deliver on what it was supposed to do by offering build-back features for Kubernetes that worked. This nuance is described in a very comprehensive blog post that Butcher wrote on the historical connection between Heroku and PaaS and how Heroku’s functionality is similar to that of GitHub Actions.
At the risk of oversimplification, Heroku’s demise is still often associated with PaaS in general, in that Heroku’s functionality did not keep up with the evolving demands of the developer. Like serverless and even low-code alternatives that will invariably show up for Wasm, PaaS is at risk for being perceived as an alternative that lacks options for developers, especially for complex use cases.
“Saying Paas is the ‘right road’ really just means it’s the way we want to do it today because I think Heroku did it the right way at the right time for them and has gotten sort of a little bit of a bad rap, Butcher said. “They were highly successful and I used them for years, and they were fantastic, but then at some point, I had different interests and Heroku hadn’t changed with my interest. “So, this is the way technology works. WebAssembly is really an opportunity to make old things new again in interesting ways to solve newer problems.”
It is always easy to find those — such as some operations and security folks — who say offering developers more and easier access to create and deploy applications using a PaaS alternative is not a good idea. Indeed, arguments against why PaaS is unviable inevitably already exist, which I look forward to learning about in the future. In the meantime, it seems like PaaS will not get a pass but should be readily adopted.
“There is a fine line between letting developers go rampant and giving them just enough freedom to fully express their creativity in the most productive way,” Volk said. “But I believe that Cosmonic and Fermyon can both be integrated into the corporate software supply chain to provide DevOps with the controls they need to exercise the right level of governance.”