As I wrote in The New Stack, one of the fastest-growing Cloud Native trends of 2021 is the adoption of WebAssembly (Wasm). With distributed application runtimes like wasmCloud (a Cloud Native Computing Foundation sandbox project we donated this summer) we see WebAssembly appearing on the server and the edge. This in turn addresses the myriad set of challenges hindering distributed application development, deployment, and maintenance.
The reasons behind the surge are broad and driven by CPU diversity, multiple operating environments, security, distributed application architecture, and scalability, all of which transcend deployments into a single public cloud provider.
Now layer on the vast number of disparate devices connected to the internet – a number on a skyrocketing trajectory toward an estimated 50 billion connected devices by 2030. Finally, add enterprise integration tasks that are intensified by the dozen or more popular and incompatible CPU architectures — each with their own unique operational lifecycle from as many major manufacturers — and it’s easy to see how the complexity of the future of distributed computing appears untenable.
Enter WebAssembly, which is well positioned to operate in this complex environment. Wasm excels because its near-native performance makes it ideal for standalone, embedded, and other types of integrations. Its portability and "write once, run everywhere"-approach give developers new capabilities to deploy applications.
There are several key value propositions offered by WebAssembly:
- Efficiency and speed – fast startup times make Wasm ideal for on-demand scaling with near-native speed execution
- Safety and security – sandboxed and operating in a deny-by-default where explicit access to individual capabilities is granted
- Open and debuggable – Wasm is a community-driven W3C standard under the stewardship of the Bytecode Alliance
- Polyglot – Choose your own language and you can bring well-tested libraries to a domain
- Portability – WebAssembly is a compilation target that runs on multiple environments – servers, browsers and embedded devices. As a secure sandbox, Wasm can also be embedded inside other applications making it ideal for executing other code
The question now becomes, as we connect billions of devices (may be even dumb endpoints that connect to smart core or intelligent edge) to the internet, can we offload all functionality to remote API and services? The edge will continue to move capabilities closer to users to minimize performance issues. However, devices will still need to be connected and offer functionality when offline or during intermittent connections. Where will real complex logic reside – on or within the end devices – and why?
To learn more about the new capabilities and additional security features WebAssembly brings to modern development environments — both in the browser and with cloud native – check out my post “WebAssembly: The Future of Cloud Native Distributed Computing” that appeared recently in The New Stack.
I believe you’ll find it’s well worth your while.