Interesting article. Though it’s not true that
the difference in overhead between running a virtual machine and a process is the difference between gigabytes and kilobytes; somewhere between 4-6 orders of magnitude. That’s a huge difference
I think that’s probably true with qemu-kvm with some big drivers, but I read recently that Intel Clear Containers provide an Intel VT powered container runtime that takes ~50mb overhead .Yes, that’s some overhead, but not gigabytes.
Could be wrong, only just read about the project, but just a data point for others to consider.
On top of it, an old trick is to just keep one copy of all the code or static data in memory with the VM’s basically just using memory for dynamic data. When Burroughs (1961) did this at process level with options for no sharing if you wanted to isolate the process.
There’s also the “Just Enough OS” style where you delete everything in the kernel or userland your app doesnt need. Alternatively, run it on an embedded Linux if it can handle it. Result is way less than GB. More like tens of MB last time I used one.