8 ms·
Of course containers will be around probably forever, just as we still have mainframes. Note that current serverless and container platforms start and manage lo
by ledgerdev 5y ago
Of course containers will be around probably forever, just as we still have mainframes. Note that current serverless and container platforms start and manage long running instances and occasionally incur cold starts.
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 https://twitter.com/solomonstre/status/1111004913222324225
- FooBarWidget 5y agoHow can WASM start faster than actually native executables?
- ledgerdev 5y agocontainers != native exe. WASM can start faster than containers, not exe.
- FooBarWidget 5y agoWait a minute... we've had virtual machines (in the programming language sense) in like forever. JVM, BEAM, CRL, etc. None of them made containers obsolete. People package Java inside containers even though Java has had non-Linux-container ways to package things in like forever — because people like the tooling surrounding Linux containers. 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.
- ledgerdev 5y ago> 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. 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.