You have 1 article left to read this month before you need to register a free LeadDev.com account.
Advocates believe it’s ready for the mainstream, yet this enigmatic technology has yet to truly break through.
Hailed as the fourth official language of the web, WebAssembly (Wasm) is a World Wide Web Consortium (W3C) standard that offers a language-agnostic code compilation target with high performance and robust security.
Recent efforts around Wasm runtimes, and Wasm’s proposed companion interface (WASI), are helping it run outside the browser in any environment, providing significant portability benefits that are truly platform agnostic.
While this has provided the most progressive tech companies with plenty of opportunities to push things forward, Wasm has yet to see the sort of ubiquity and ecosystem maturity of more established deployment paradigms like virtual machines, the Java virtual machine (JVM), or Docker containers before it. What’s missing?
Tech companies embedding Wasm
The excitement around Wasm has been building for years, and finally, we’re beginning to see its promise unfold. WebAssembly is now actively used in production at Amazon Prime, AutoCad, Midokura (a Sony subsidiary), and beyond.
Impressively, Figma reports that Wasm has cut load times by a factor of 3x for large documents on the web. Shopify is actively using Wasm outside the browser with Shopfiy Functions, helping developers customize the backend of their online stores.
One notable Wasm success story is Adobe’s web-based versions of its popular Acrobat, Photoshop, Lightroom, and Express applications. “It’s all browser-based WebAssembly and runs in Chrome,” says Colin Murphy, senior engineer at Adobe. “It’s enabling us to bring C++ into the browser for a consistent browser experience,” he says, noting its significant performance benefits, especially in browser-based scenarios that don’t use large amounts of memory. Looking to the future, “every web product we have is going to have WebAssembly in it,” he says. Adobe is also spearheading the Content Authenticity Initiative, which uses Wasm as part of an SDK to verify the provenance of content created or modified by generative AI.
Google ships Wasm within countless products, including Google Earth, Google Photos, Google Meet, certain graphical tools, and multiple AI/ML libraries. “Many Google products make use of Wasm for code sharing, so the same business logic can be used to power a product on those different platforms,” says Thomas Steiner, developer relations engineer at Google. For instance, Google Sheets uses a calculation worker, originally written in Java and now compiled into Wasm, to power calculations across various platforms.
Although Google can’t comment on future product plans, Steiner reiterates Wasm’s importance to its overall technical strategy: “Google is heavily invested in the Wasm ecosystem, and it plays a central role in our products, existing and new.”
Wasm is stepping outside of the browser, too. WasmEdge, the extensible open-source WebAssembly runtime, is another project sparking new use cases.
Is Wasm the next wave of virtualization?
Wasm’s potential doesn’t end there. Experts see potential in its ability to alter the current container-based paradigm. For example, using Wasm modules in Kubernetes could increase the deployment density per Kubernetes node, and reduce cold start times for private serverless functions, says Forrester analysts Brent Ellis and Devin Dickerson.
Wasm’s emerging tooling ecosystem also makes it an alluring alternative to container-based development, and Kubernetes for that matter. Some even see it as the next wave of virtualization.
“wasmCloud and Wasmtime will eventually supplant Kubernetes for compute,” predicts Murphy. There will be upfront costs, “but once the momentum starts, there are a lot of cost savings due to its efficiency.”
Although Wasm could replace containers, the transition will likely be piecemeal. Wasm is more likely to be used within greenfield development rather than existing application stacks. It’s less likely that Wasm components will replace Docker entirely but instead complement existing Kubernetes-based microservices architectures.
“WebAssembly is a foundational technology for doing distributed computing,” says Matt Butcher, CEO at Fermyon. “Yet, Wasm and Kubernetes may stay together over the long haul.” For the moment, it seems like Kubernetes and Wasm will co-exist for some time, as the cloud-native ecosystem is developing tools to bring Wasm into the fold, such as runwasi, a package to facilitate running Wasm/WASI workloads with containerd.
Most enterprises are still just evaluating Wasm
More like this
Outside of the cloud-native world, large enterprise deployments of Wasm are still rare. “Wasm absolutely solves a real problem,” says Adam Wolf, head of global engineering at Bloomberg. However, “part of the reason why we haven’t really deployed it at scale is that the biggest problem that it solves is actually not a problem that largely applies to us.” Bloomberg very much controls the desktop environment where their applications run (largely Chromium) and primarily just needs bindings for their C++ code. This means the benefits Wasm grants, such as portability to various platforms, or compiling from various languages, are less attractive.
German manufacturing corporation Zeiss Group has been evaluating tools for operating Wasm workloads on Kubernetes. Wasm could bring Zeiss tremendous optimization and scalability for its Microsoft Azure Kubernetes service (AKS) workloads, says Kai Walter, distinguished architect at Zeiss Group. “We would not need to overprovision certain workloads on AKS to be responsive, could scale from zero/1 on demand without major lag, and thus re-use the same resources for multiple workloads or waves within batched workloads and with that save money.” However, Zeiss wants to see .NET support, better debugging, and in-module telemetry before considering it for production workloads. As of today, “we are not using WebAssembly on backends in production,” he says.
Telecoms giant Orange is also exploring using Wasm to virtualize network functions and enhance the flexibility and efficiency of its infrastructure, particularly in the context of 5G and future distributed networks, says Yann Cardon, head of software enterprise architecture at Orange Innovation. Wasm is also a big subject of interest for telcos collaborating on the TM Forum WebAssembly Canvas. Researchers at Orange are also exploring using Wasm for microcontrollers and edge computing. However, Orange is not yet using WebAssembly in production.
Another promising area is automotive. BMW is actively using Wasm in development, according to Christoph Brewing, data scientist and product owner at BMW Group. Modern cars are equipped with computers to verify onboard functionality – built using a complex distributed stack based on Wasm, he says. They are also investigating using wasmCloud within an edge inference engine powered by machine learning, yet these experiments are still in the early stages.
Since Wasm acts as a compilation target for many programming languages and its execution environments are continually expanding to cover new platforms, it’s more versatile than language-specific ecosystems, like the JVM. And since Wasm has such a small footprint, it will likely play a bigger role in machine learning on the edge, says Brewing, but more work needs to be done around persistent storage and mapping the lifecycle of AI artifacts, he says.
All of these cases highlight a familiar problem for Wasm though. While it might be the most technologically sound option for greenfield development, the benefits may not outweigh the risks when it comes to more established tech stacks.
At the enterprise level, it still takes time for new technologies to be vetted, especially for companies with significant hardware investments. Wasm may be evolving a bit too fast for large companies to follow. Orange, like many large enterprises, is just at the point of migrating from the world of virtual machines to Kubernetes.
Is Wasm enterprise-ready? Yes and no
So, is WebAssembly ready for greater use within large enterprises? For Google’s Steiner, “the answer is 100% yes.” Code sharing and platform independence are big drivers for Wasm adoption at Google as it finally delivers on the old mantra of “write once, run anywhere,” he says.
Still, opinions on Wasm’s overall enterprise readiness are pretty split at this point. “There are still a number of enterprise scenarios where WebAssembly has great promise but is not yet ready for wide-scale adoption,” says Luke Wagner, a distinguished engineer at Fastly. He thinks it will take more maturity in the tooling and standards ecosystem around WebAssembly before that is feasible.
“We’re seeing movement in standards, language support, and hearing from operators and platform engineers that they’re craving it,” says Butcher, who is optimistic that Wasm will help wrangle rising cloud costs, as it can run higher density nodes on existing Kubernetes clusters without increasing hardware spend.
Other hindrances are debugging limitations and incomplete language support. According to the WebAssembly Language Support Matrix, certain popular languages, like R, Objective-C, native Scala, Perl, Dart, and others lack full support across Wasm core and web, WASI, and the Spin SDK.
That said, for use in web browsers, WebAssembly is already pretty well proven. “We should not forget that Wasm inside the browser is already here, and it is here to stay”’ says Edoardo Vacchi, WebAssembly core engineer at Tetrate.
Taking Wasm beyond the browser is where the efforts are still maturing. Much of the discussion surrounds the component model, part of WASI (WebAssembly System Interface) 0.2.0, which defines a way to create modular, reusable Wasm components across different environments and languages.
This wave is bound to break
In terms of speed, Wasm is already demonstrating results. “Near-native speed web applications like those developed by Adobe showed how powerful Wasm can be,” Forrester analysts found. Faster loading time is the top reason for Wasm adoption according to the 2023 State of WebAssembly report. And 30% of developers report their performances have increased by more than 50% as a result of switching languages.
Wasm can help resolve the complex knot of modern applications, says BMW’s Brewing. “WebAssembly is so versatile. You can use it on every OS, it doesn’t matter where you run it, and it has a small footprint.” To his point, 64% of developers using Wasm say they’re using it to port existing applications to new platforms.
So, for the moment, the state of Wasm is complicated. Like a promising athlete, many want to see if it can live up to the hype before truly buying in.
“Up until six or eight months ago, Wasm was still very much in the [minimum viable product] stage,” says Fermyon’s Butcher. “Now, we’re in that late visionary stage, the beginning of early adopters stage. We’re right at the point where the wave breaks.”