Cloud Virtualization: Red Hat, AWS Firecracker, and Ubicloud internals
14 comments
·January 24, 2025bonzini
jetbalsa
I've become a huge fan of incus as of late. I do wish it had more out of the box support for some of the firecracker/microvm qemu workflows
umur
Thank you Paolo — for what was an excellent post, and also for this helpful update!
moorow
We use Ubicloud for our GHA runners, because we have a very extensive test suite and need the extra parallelisation. Extremely easy to roll out from GHA, reduced our CI costs from CircleCI by 80% and we've been very pleased. Thanks for the great product!
bithavoc
Ubicloud is built on Ruby, interesting take for 2025.
ozgune
Yes, it is. :) Our CTO, Daniel, described why we chose Ruby for our control plane in a blog post.
https://www.ubicloud.com/blog/building-infrastructure-contro...
On the data plane side, we use different open source components and our choice of programming language depends on them. For example for virtualization, we rely on Linux KVM and the Cloud Hypervisor. The former is in C and the latter in Rust.
andrewstuart
May you live in interesting times.
perching_aix
Is there an actual underlying message to this or is this just wordplay? Don't know much about Ruby, but what I do know doesn't suggest it would make our (already all too "interesting") times even more "interesting".
mdaniel
It's an infamous quote: https://en.wikipedia.org/wiki/May_you_live_in_interesting_ti... and likely GP means it due to the yolo attitude of many ruby projects
qqqult
May the gods give you everything you ask for
UltraSane
ewww
andrewstuart
Qemu's response to Firecracker is microvm:
ozgune
[dead]
null
Author of "All you need to know about KVM userspace" here! I am happy that you liked it. Some things have changed since then, some have not...
Red Hat is now shipping Kata Containers, which does not (much to my dismay) use Libvirt, and also KubeVirt which uses Libvirt but not for sandboxing (only to drive QEMU; Kubernetes takes care of the sandboxing by running one VM per pod). But the original architecture is still in use and new users appeared such as cockpit-machine and crun-vm.
Another super interesting project for KVM userspace is libkrun which, among other things, is being used for gaming on Arm Mac's. :)
Firecracker's scope has grown somewhat, in particular it supports snapshots for warm start of VMs.
QEMU's microvm didn't have a huge success but recently Amazon contributed support for running Nitro enclaves in QEMU, which reuses a lot of the microvm code.
Some Rust components have been developed to build virtio devices out of process (for example virtiofsd). QEMU is also experimenting with devices written in Rust, and I expect to have two almost-entirely-safe-Rust devices (converted from C) within a month or two.