Let’s journey back in time when the concept of containers first emerged.
1st generation: Computing has come a long way since the early days of single-purpose applications on dedicated hardware. The emergence of general-purpose computers was quickly followed by the ability to isolate processes from each other, allowing many users to run multiple applications on the same hardware simultaneously.
2nd generation: Virtual machines (VMs) supported not just multiple applications, but multiple operating systems on the same hardware. This advance made it easier to migrate guest operating systems from one host hardware to another.
3rd generation: Containers (i.e. Docker) and container-orchestration (i.e. Kubernetes) took this even further. Unlike VMs, containers only package applications, their dependencies, and a small part of the operating system. Applications in containers not only require less disk space but also work anywhere the container runtime is available.
Despite advancements in container technologies, even tiny microservices with few dependencies incur an overhead of several hundred megabytes of disk space. It may not sound like much but, on top of the disk space overhead, starting a container may take several hundred milliseconds — an order of magnitude slower than launching the same application natively. On top of that, building and orchestrating container infrastructure can be challenging for most organizations.
This is where WebAssembly (or Wasm for short) comes into play.
What is WebAssembly?
What does WebAssembly have to do with microservices?
WebAssembly was originally developed for client-side applications, but it is also perfectly suited to run server-side code. Similar to containers, applications can be packaged into WebAssembly files and are sandboxed. Unlike containers, however, WebAssembly files are binaries and contain just the applications and their dependencies.
WebAssembly binaries are portable like containers, much smaller because they contain the application and its dependencies, without the overhead of an operating system, and can run code at near-native speed. On top of that, starting WebAssembly applications is instantaneous, which comes in handy for all sorts of PaaS, FaaS, and serverless use-cases. Last but not least, since WebAssembly is portable, it enables completely new types of distributed applications.
“WebAssembly will be a key piece for the future of software execution and containerization — not only inside the browser but also outside.”
— Syrus Akbary, Founder & CEO, Wasmer
Solomon Hykes (Co-Founder & former CTO, Docker), who is also an investor in Wasmer, believes that WebAssembly is a faster and more secure alternative to containers.
“If Wasm […] existed in 2008, we wouldn’t have needed to create Docker. That’s how important it is. WebAssembly on the server is the future of computing.“
— Solomon Hykes, Co-Founder & former CTO, Docker
WebAssembly is still in its infancy, but there is lots of activity and enthusiasm among developers. Just like containers changed how software is built and deployed, WebAssembly has the potential to start a similar tectonic shift.
Wasmer is at the forefront of WebAssembly
Wasmer makes WebAssembly accessible to developers and enterprises. The open-source WebAssembly tool and server-side runtime make it possible to package applications written in other programming languages (including C/C++, C#, Go, Java, PHP, Ruby, Rust, and many others) into WebAssembly applications and enables execution at near-native speed anywhere: from Desktop to the Cloud and IoT devices.
With Wasmer, enterprises can run ultra-lightweight containerized software with blazing-fast startup times (~20ns), almost no overhead (near-native speed) anywhere — be it on servers, edge, and IoT devices or in serverless environments.
After humble beginnings and two years of hard work, Wasmer just released version 1.0 of their software. It brings a vastly improved and simpler to use API, massive performance improvements -despite already being blazing fast before-, support for Apple Silicon, a pluggable infrastructure for easy customization, support for “Headless Wasmer” a new ultra-lightweight runtime, ideal for IoT, and many additional features and improvements.
Wasmer has quickly established itself as a leader in the WebAssembly space. Founder and CEO Syrus Akbary has built a team of world-class engineers and WebAssembly experts.
We couldn’t be more excited to back Wasmer, along with Florian Leibert at 468 Capital, Aneel Ranadive at Soma Capital and an incredible group of angels, such as Solomon Hykes (Co-Founder & former CTO, Docker), Olivier Pomel (Co-Founder & CEO, Datadog), Jason Warner (CTO, GitHub), Marco Palladino (Co-Founder & CTO, Kong), Beyang Liu (Co-Founder & CTO, Sourcegraph), Christopher Golda (Co-Founder and former CEO, BackType), Yuri Sagalov (Co-Founder & former CEO, AeroFS), Pete Soderling (Founder, DCF), Ramnik Arora (Head of Product, FTX), Lingtong Sun (Engineer, AngelList), Michael Münnix (GP, Target Partners), and Micha Hernandez van Leuffen (Founder & former CEO, Wercker). We look forward to the mission ahead to make the next generation of cloud computing a reality! 🚀✨