One of the most interesting cloud computing technologies to emerge since the container could be ready for prime time later this year, as long as its community-oriented approach holds together and delivers the key pieces of the puzzle needed to unlock enterprise support.
WebAssembly is a low-level software execution format that was originally designed by Mozilla engineers for web browsers but has captivated the cloud computing community in recent years as a fast, secure, and vendor-neutral approach to app deployment. Backers believe it can improve application performance and server efficiency without having to throw away investments in technologies like Docker containers and Kubernetes or rewrite apps for serverless computing services.
WebAssembly, which is usually shortened to "Wasm" for brevity, caught the attention of Fermyon CEO Matt Butcher several years ago while he was working at Microsoft following the acquisition of container platform Deis.
"What if there's another class of cloud compute, another kind of runtime, that would have these virtues of being a really strong, secure sandbox, but also would be able to start instantly, and we can move small objects around very quickly, and it could scale down to zero when no load was coming in and scale up to tens of thousands (of instances) nearly instantly when traffic started to come?" Butcher said. "WebAssembly ended up bubbling up on the radar, because the design characteristics for the browser were kind of exactly the characteristics we were looking at for this cloud environment."
However, outside of a few brave early adopters like Shopify, more work needs to be done to expose the benefits of Wasm to a wider variety of organizations that need APIs, developer tools, and support for their favored programming language to make a bet on this emerging technology.
"It's the tip of the iceberg problem," said Bailey Hayes, director at Cosmonic and board member of the Bytecode Alliance, an industry organization working on several projects addressing those issues. By that, she meant that while lots of people can see the benefits of Wasm, there are a significant number of challenges below the surface that will dictate its long-term success.
Standard issue
Wasm grew out of a desire to correct some of the early issues posed by JavaScript as it became the dominant programming language in the early days of Web 2.0.
That shift in web development saw browsers become an actual execution environment for applications rather than a window displaying static web pages, and it was an enormous breakthrough built mostly around JavaScript. However, while software developers didn't want to write every application in JavaScript, they certainly couldn't ignore that the web was becoming the primary vehicle for new apps.
Wasm emerged in 2015 as a partnership between the major browser companies to allow developers to compile applications written in other programming languages to browsers. But it quickly became clear that it had potential outside the browser, said Luke Wagner, distinguished engineer at Fastly and one of the co-creators of Wasm while at Mozilla.
At a meeting with Fastly a year or two after that release, Wagner and other Wasm collaborators heard how Fastly was using Wasm in its content-delivery network to abstract a configuration language tied to that CDN.
"That was kind of eye-opening. We were like, 'whoa, OK, so there's real use cases in cloud scenarios,' which we didn't even know that much about, because again, we were browser people," Wagner said in a recent interview.
Several features made Wasm interesting for those cloud scenarios: it could launch an application extremely fast from a cold start, it (theoretically) allowed companies to bring apps written in any language and deploy them to servers running Wasm, and it had a strong security model in which that executable code was "sandboxed," or confined to a secure area of the computer in case any malicious code tagged along with that application.
Fermyon is particularly interested in Wasm's fast-twitch response times as the underpinning for its serverless application development platform, Butcher said.
"If you're combating a user whose attention span starts to dwindle at around 100 milliseconds, any technology you built for the browser has to just be blazingly fast," Butcher said, and the same principle holds true for lots of other applications. Containers allowed developers to launch applications much faster than virtual machines could handle, but Wasm allows those apps to launch even faster.
That speed — which also applies to how quickly apps shut down — could allow companies to squeeze more efficiency out of their infrastructure, the logical next step in a process that has unfolded over the last couple of decades of infrastructure computing, said Justin Warren, chief analyst and managing director of PivotNine.
"It's very likely to have a similar effect to the early days of VMware, where the migration story or the motivation for moving to VMware was about capacity consolidation," Warren said. Computing power has to be paid for one way or another, and apps that can start and stop themselves on a dime will require less horsepower.
I think WebAssembly is probably the most remarkably vendor-neutral core that I have ever seen.
Enterprise interest continued to grow after Wasm became an official W3C standard in 2019 with a minimum of the angst that had accompanied other web standards processes, which have been weighed down by competing commercial interests and politics many times in the past.
"What normally happens is people make a whole bunch of totally incompatible things that are proprietary, and then the standard comes around after the fact and tries to gel them all together in a standard," Wagner said. "And now you have this tension where if my exact thing isn't in there, it's going to be a ton of work for me or maybe a deal breaker."
By emerging from group consensus before the standards-setting process began, Wasm was able to avoid a lot of strife.
"I think WebAssembly is probably the most remarkably vendor-neutral core that I have ever seen," Butcher said.
Milestones to go
But there are several hurdles that mainstream companies — many of which are still evaluating cloud computing and containers — will need to clear before they start building apps around Wasm.
One is a pretty common problem with enterprise tech breakthroughs: the underlying technology can be extremely compelling, but if it can't easily interact with the rest of the user's environment, it doesn't really matter.
WASI, a key project that paves the way for Wasm to run outside the web browser by specifying how it should talk to different operating systems, was launched in 2019 and is still technically in preview mode.
"I refer to WebAssembly often as a bunch of numbers in a trench coat," Hayes said. "And what I mean by that is a WebAssembly module itself is pure compute, it's crunching numbers. (But) to do things like accessing (the) network or HTTP or connecting to a database, all of that is provided by the host," and right now the number of languages supported by those hosts is relatively low, she said.
Those hosts are open-source projects like wasmCloud, Wasmtime, and a host of other runtimes that support modern memory-safe languages like Rust and Go but not necessarily the full breadth of programming languages used in software development. But key Wasm contributors like Wagner and Bailey now want to focus on what they call the "component model," or a way to mix and match components written in different languages within the same Wasm application so developers can build applications around existing code libraries.
Making sure all of these standards work well together is both complex and tedious, and stable versions of the projects that hope to make them safe for enterprise use likely won't arrive until later this year, Hayes said.
The cloud giants have been decidedly neutral so far when it comes to Wasm, which could have negative ramifications for their proprietary functions-as-a-service serverless compute strategies, primarily AWS's Lambda. That could change, but if the cloud could adopt a technology like Kubernetes — born inside Google Cloud and heavily influenced by the company for years after it was released as an open-source project — as widely as it did, advocates think Wasm support could follow relatively quickly after stable releases arrive.
"My intuition is that within the next 18 months, we will have a solid signal that (Wasm) is either definitely going to progress very well, or no, this is going to be much slower," Warren said. "I hope that it goes quickly, because I can see this being quite useful and beneficial for a bunch of things where containers and Kubernetes feel like a halfway measure."