I have not used a container today. Let's use one:
$ time docker run --rm debian:11-slim echo hello
hello
real 0m0.528s
user 0m0.015s
sys 0m0.023sI have not used a container today. Let's use one:
$ time docker run --rm debian:11-slim echo hello
hello
real 0m0.528s
user 0m0.015s
sys 0m0.023sAs a random example, Azure full-clones 127GB disk images by default. It takes over a minute to create a VM. Booting form a cold start is sluggish because there is no sharing with other tenants, hence no caching.
Using the same hypervisor (Hyper-V) I can clone out a Windows server VM and boot it in about 3 seconds by simply using delta cloning. Subsequent boots of it or any of its siblings is just over a second!
Containers and Kubernetes are throwing the gloves down and will force the competition to pick up the pace.
AWS EC2s start within a couple of tens of seconds max. AWS Lambda, Google Cloud Functions, Google Cloud Run start within ms (Google Cloud Functions used to have a cold start problem where sometimes they'd take up to a few seconds to start, but that has been fixed).
But overall, I'd say VM platforms are somewhat a thing of the past. Nobody cares about running an OS, what you need is the things inside (your application, database, etc.) so fundamentally a VM is an abstraction at the wrong layer, a means to an end. Don't get me wrong, they're still here and aren't going anywhere, but should no longer be the go-to outside of a few specific cases - bare metal, containers and "serverless" (running on bare metal) is where it's at.