WASM has near instant startup, making a cold start for each request feasible. I think this could be a key property/advantage that makes it preferable and more economically efficient in the long run.
WASM I think has a stronger sandbox as well. Containers in a multi-tenant environment need to run inside a virtual machine. WASM can be run in multi-tenant without the need to isolate each tenant in a virtual machine, again making it more efficient in long run.
edit: also recalled a relevant tweet from creator of docker https://twitter.com/solomonstre/status/1111004913222324225
WASM just replaces JVM/BEAM/CLR/etc with its own virtual machine. It doesn't address all the stuff that container orchestration tools address such as lifecycle management, update management, artifact management, autoscaling, networking, management access control, logging & metrics, etc.
If you want to start faster than containers, you already can — by not using containers.
So given all this above, how is "starts faster than containers" an advantage?
And containers are not exactly slow to start. `time docker run -ti --rm ubuntu:20.04 true` => 0.5s. I suppose that's too slow for serverless cold start, but if you really care about that then the startup time of Ruby, Python, Node.js etc with all the packaged dependencies are also in that order.
Absolutely agree, it's just a core technology, which enables new model of operation, on which all that is necessary to run. Right now there is almost nothing.
> If you want to start faster than containers, you already can — by not using containers.
Only if don't care about security/isolation. WASM is strongly sandboxed. It's appropriate for multi-tenant systems, where containers/jvm/etc have to be run inside of virtual machines(e.g. firecracker) to get acceptable isolation.
> I suppose that's too slow for serverless cold start
Yep, half a second is way too slow for new instance per request. I think wasm startup time around 35 μs for lucet.