Developer tools for cloud-native Wasm go mainstream



The Cloud-native Wasm Day at KubeCon + CloudNativeCon has become the go-to place for Wasm (short for WebAssembly) aficionados to gather and chart the future of the ecosystem. Cloud Native Wasm Day at KubeCon 2022 in Detroit focuses on developer tools for server-side WebAssembly.

Wasm was originally developed as a secure sandbox for the web browser. In recent years, it has found many server-side applications as a secure, lightweight, fast, and portable alternative to VMs and Linux Containers (LXC).

The event brought together well-known companies such as Docker, Microsoft, VMWare, Fastly, Red Hat and Cisco, as well as startups such as Fermyon, Second State, SingleStore, Cosmonic and Suborbital.


At the event, Docker announced the Technical Preview of Docker+Wasm in partnership with CNCF’s Wasm Execution Engine WasmEdge. Docker CTO Justin Cormack explained how Wasm fits into Docker’s vision to support multiple types of containers. Next, Chris Crone from Docker and Michael Yuan from Second State presented how to build, run, and share Wasm applications using the Docker toolchain.

The Docker+Wasm demo application, based on WasmEdge and provided by Second State, is a database-based web application written in Rust and compiled in Wasm to run in WasmEdge. The entire application can be built in containers (e.g. a container with a pre-configured Rust development environment) and deployed side-by-side with containers (e.g. a container with a MySQL database) with a single command” docker compose up”.

Component model

Within the community there is a lot of effort to improve Wasm to make it easier for companies like Docker to build tools for Wasm. The Consensus Effort is the component model for Wasm. Fastly’s Luke Wagner gave a great talk on the design and progress of the component model, which would greatly improve the reusability and composability of the Wasm module. It will allow better access from a Wasm module to other modules and systems, including OS APIs (e.g. networking). Major Wasm runtimes such as WasmEdge and Wasmtime have already committed to supporting and implementing the component model proposal.

Although the Wasm component model is still under development, the community is already using part of the specification. Brooks Townsend of Cosmonic gave a talk demonstrating practical examples of Wasm components that can migrate across clouds and devices using wasmCloud. Next, Taylor Thomas explained what component model applications might look like in the real world.

The Wasm component model defines new ways to manage and interact with Wasm modules. Bailey Hayes of Cosmonic and Kyle Brown of SingleStore, presented warg, a cryptographically verifiable and transparent registry for Wasm components. This could enable Wasm component modules to achieve new levels of software supply chain security.

Programming languages

Programming language support is a crucial part of development tools. Several discussions on Wasm Day focus on support for new programming languages ​​in Wasm.

Daniel Lopez Ridruejo and Rafael Fernandez Lopez from VMWare Office of CTO and Wasm Labs introduced the mod_wasm project. It’s an Apache module that runs PHP applications in Wasm. The project has already advanced enough to run complex PHP applications such as WordPress.

Joel Dice from Fermyon explained how to run Java applications in Wasm. It’s still early, because there is no support for GC in Wasm. But short-lived Java programs can already work without GC.

Christian Heimes from Red Hat discussed the current support for Python in Wasm runtimes. The CPython project can be compiled into Wasm, allowing a diverse set of Python applications to run on Wasm both in the browser and on the server!

Ivan Towlson from Fermyon presented new .NET runtime features for Wasm that allow C# programs to better interact with C programs.

Embedded functions

A common use case for Wasm is for developers to create extensions for established software products or platforms.

Carl Sverre’s SingleStore presentation showed how developers could use the Wasm runtime built into the SingleStore cloud database to customize data processing through UDFs. By leveraging the built-in AI capabilities provided by SingleStore, developers can create sophisticated video games on this database platform!

Cisco’s Guba Sandor and Dubas Adam demonstrated a Wasm-based plug-in system for the Envoy proxy, specifically designed to customize logging data pipelines.

Cloud services

Finally, for developers, the easiest way to deploy Wasm functions is to have someone else manage the infrastructure for users. Several choices of startups are in this field at the time of cloud native Wasm.

Fermyon has launched the Fermyon Cloud service which allows developers to simply turn a GitHub repository into a serverless microservice. Fermyon Cloud fetches the source code from the GitHub repository, builds it into the Wasm bytecode, runs it on demand, and connects HTTP input and output to it.

Cosmonic launched a PaaS that allows developers to build, compose, run, and scale Wasm modules on clouds to accomplish complex workflows.

Suborbital presented a cloud-based extension engine for SaaS. It allows Wasm functions to be integrated into SaaS products as a more secure, faster and more powerful alternative to web APIs.

Second State previewed, a serverless functions platform for SaaS. Stream functions can be triggered by SaaS webhook events and send output to another SaaS API. It enables Wasm-based SaaS connectors (like Zapier but with code) and automated bots (e.g. GitHub bots or chatbots).

Source link


Comments are closed.