DEV Community

Cover image for WebAssembly - Docker killer? 7 reasons
Ahmad
Ahmad

Posted on

WebAssembly - Docker killer? 7 reasons

Tweets from Dockers co-founder:

“So will wasm replace Docker?” No, but imagine a future where Docker runs linux containers, windows containers and wasm containers side by side. Over time wasm might become the most popular container type.Docker will love them all equally, and run it all"

If WASM+WASI existed in 2008, we wouldn't have needed to created Docker. That's how important it is.
https://twitter.com/solomonstre/status/1111113329647325185

TLDR: Containers will remain relevant , however the WebAssembly revolution will take over behind the scenes impacting all the major frameworks and libraries, that are transitioning to webassembly modules. This is for both client and server applications. https://madewithwebassembly.com/ . WebAssembly IS Cloud Native and a distributed computing assassin.

  1. In terms of cold start, WebAssembly is 100 times faster than Docker. And hence much cheaper to manage , pound for pound.

  2. In terms of execution duration, WebAssembly is 10% - 50% shorter than Docker.
    WebAssembly is free from the operating system as a simple virtual machine, making its execution duration 10% - 50% shorter than that of Docker.

  3. WebAssembly occupies a smaller space.
    The applications based on WebAssembly are generally within 1MB in size, while one Docker image can be 100 or 200 MB in size.

  4. WebAssembly embraces a modern security policy. Better and more explicit + composable , compared to containers.
    WebAssembly enjoys its “Capability-based Security” strategy, a risk control strategy based on resources offered. Different operating system interface/resources permission provided for each independent module instance can be designated by callers when instantiating each module. Built in sandboxing without a VM

5.WebAssembly facilitates the combination of software. Server + Client side. Allows for interop between all languages which compile to the WASM target.e.g. WebAssembly seamlessly supports server application frameworks, such as Node.js and Python. You can call python code from your nodejs application.

6.Part of kubernetes is being re-written in Rust, which highly complements WebAssembly.

7.Because of its small size, we can move compute to data, instead of pulling data into applications. Compute can now be funneled to the data , this reduces data duplication, data movement, and is more scalable as data sizes explode. See wasi-data ( https://github.com/singlestore-labs/wasi-data)

Streaming compute to data!
Think map reduce on steroids, and the impact that had on creating an entire "Big Data" industry.

Further Reading:

If you enjoyed my post I'd really appreciate it if you could check out my new webapp WannaGo. Its meant for developers and designers to come together on a cross-skill platform with built in scheduling and instant WebRTC based peer-to-peer text, audio and video chat in the browser.

WannaGo

Collaboration app for devs, designers and people who just wanna study or watch movies together :p

https://www.iwannagoapp.com/
https://twitter.com/iWannaGoApp

Image description
Image description
Image description
Image description
Image description

Discussion (2)

Collapse
yvad60 profile image
Ivad Yves HABIMANA

Great read!

Collapse
ahmad_butt_faa7e5cc876ea7 profile image
Ahmad Author

thank you very much! :)