What is Web Assembly (WASM) and what is it for?

What is Web Assembly (WASM) and what is it for?

Have you heard of WebAssembly (Wasm)? In simple: It is a new way of where and how the source code is processed, moving the load from cloud instances (or servers, etc.) to the end user's browser through "micro sandboxes" that will compile the app.

Imagine Wasm is an actor that can communicate with current browsers natively. A kind of translator that allows certain programming languages - such as C/C++, C# and Rust - to speak the "language of the web". The interesting part is that it does this very efficiently, running as fast as the browser allows.

Furthermore, Wasm is a very careful agent. When in action, it makes sure you don't screw up or cause conflicts with the browser. It remains in its own space, as if it were in its own bubble, theoretically isolated from the rest of the system (sandbox).

And what does this have to do with the "Cloud Native" world? It allows cloud applications to delegate costs (time, resources, traffic... yes, also billing) contributing to more efficient, secure and easy-to-manage applications for both users and all of us who suffer with pipelines, deployments and blablabla.

Let's talk about efficiency. Wasm a Formula 1? Well, that's what Wasm does. It converts programs into a special format that can be executed directly by the machine, without unnecessary detours.

In terms of security, Wasm is like someone who feels most comfortable in their own home. He doesn't leave his area and he doesn't go snooping where he shouldn't. That means it doesn't mess with the operating system or cause browser problems. Total tranquility.

And in terms of scalability, Wasm is like that versatile piece of clothing that you can wear on any occasion. Works anywhere that accepts WebAssembly. Do you need your application to grow? Wasm can adapt to change.

Finally, here are concrete examples of how Wasm is used in Cloud Native applications:

  • Microservices: Imagine microservices as little helpers that do specific tasks. Wasm gives them special training to make them efficient and secure in the cloud world.
  • Micro front-ends: They are like chapters in a book, but for applications. Wasm makes them portable so they work in any browser. As simple as that.
  • Artificial Intelligence and Machine Learning: Do you remember the movies where machines seem to think? Wasm allows machine learning models to work their magic in the cloud.

In short, Wasm is like a glimpse into the future of cloud applications. But attention...

Wasm Risks and Threats

The last risk to WebAssembly that I would like to point out worries and scares me because I have seen it happen too often. It scares me because ego, bad practices, "don't touch just because," secrecy and contempt for others can lead to this . And it scares me because old school thinking about "capturing a market" (hello Microsoft), often results in following a course of action that results in...

Fragmentation.

This occurs when a core technology is co-opted by many parties, each attempting to make its implementation incompatible with the others. Sometimes, the incompatibility is made "in the name of speed" or the fulfillment of short-term criteria. "We needed to go outside the box to meet customer demand." Other times, it comes as a response to competitors: "We decided not to share the source code so we could gain a competitive advantage." Unfortunately, sometimes it is simply due to ignorance and lack of community involvement.

Keep reading on SREDevOps.org: