Where Does WebAssembly Fit in the Cloud Native World?
This past January, Matt Butcher, co-founder and CEO of Fermyon Technologies, wrote an article about the future of WebAssembly for The New Stack in which he made a bold statement: “2023 will be the year that the component model begins redefining how we write software.”
In this episode of The New Stack Makers podcast, Butcher acknowledged that that’s a “grandiose claim.” But, as he told Makers host Heather Joslyn, the component model is likely to help WebAssembly more quickly integrate into the cloud native landscape.
An advantage of WebAssembly, or Wasm — a binary instruction format for a stack-based virtual machine, designed to execute binary code on the web — is that it allows developers to write code in their preferred language and run it anywhere.
“When you think about the way that programming languages have evolved over time, every five to seven years, we see a new superstar programming language,” Butcher said. “And we’ve watched this pattern repeat: the language drops, and then it takes a couple of years, as everybody has to build up the same set of libraries.”
The component model, he said, is positioned to help eliminate this problem by providing “a common way for WebAssembly libraries to say, these are the things I need. These are my imports. And these are the things that I provide — these are my exports. And then we can compile that WebAssembly module, and it can express its needs and we can take another WebAssembly module and we can start joining them up.”
The Bytecode Alliance is in the midst of defining standards for the component model. The model holds enormous promise, Butcher said. Now, he said, if a new language shows up, “If it can compile the WebAssembly and use the component model, it can pull in libraries from other things. It reduces the barriers there. It means that the maintenance of existing libraries begins to shrink.”
And that,” he added, “really is a big game changer.”
This conversation was sponsored by Fermyon Technologies.
No ‘Kubernetes Killer’
Notably, Butcher said, WebAssembly could help deliver — finally — on the promise of serverless.
Serverless was supposed to offer two key benefits, he said. One, that “you’re only running your software when you’re handling requests.” And the second, to free developers from the need to run a server and allow them to dive right into programming core business logic.
The problem, he added, is that serverless was built on what he called “yesterday’s technology,” first virtual machines and then containers, which were built for long-running processes and aren’t cloud-agnostic.
“A virtual machine may take several minutes to start up a container takes a couple dozen seconds to start up. And if you’re really trying to handle requests that are coming in, and you know, process the request and return a response as fast as possible, you’re stuck with a kind of design Catch-22. Your core platform can’t do it that fast.”
By contrast, WebAssembly has a rapid startup time and solves other problems for developers, Butcher said. When he and his team began querying developers about their experiences with the cloud native ecosystem, they heard enthusiasm from devs about serverless.
Developers, Butcher said, told them ”If I could just find a platform that didn’t have this low startup time and had a better developer experience, was cheaper to operate, was cross-platform and cross-architecture, that would make me so happy.
“So it’s kind of like having people define a product for you and say, ‘Here’s my wish list of things. Can you build me one of these?’ That’s why I think serverless is in this position right now, where we’re gonna see a big resurgence of it.”
While Butcher acknowledged that he once believed that WebAssembly may be a “Kubernetes killer,” he now said he thinks the two are uncomparable apples and oranges. And that they can, in fact, be compatible.
“The fact that the Kubernetes ecosystem is so engaged in making sure that WebAssembly is supported alongside containers is a good indication that on the orchestrator layer, people are paying attention,” he said. “We’re making wise choices, and we’re making sure that we’re not orphaning an entire technology merely because something new and shiny came along.”
Check out the full episode for more on new developments in WebAssembly and how Wasm is poised to play a central role in the cloud native ecosystem.