I'm just going to point out that besides containers, systemd can now manage virtual machines:
systemd version we added systemd-vmspawn. It's a small wrapper around qemu, which has the point of making it as nice and simple to use qemu as it is to use nspawn.
The idea is that we provide a roughly command line equivalent interface to VMs as for containers, so that it really is as easy to invoke a VM as it already is to invoke a container, supporting both boot from DDIs and boot from directories.
Yeah, meanwhile I’ll keep using LXD / Incus for both containers and VMs.
Incus has a few advantages: an image repository, a nicer container manager (cli tools) and sane security defaults. By default Incus assumes your containers should be isolated and secure environments while systemd-nspawn is more about quick and dirty containers useful to compile something or run some trusted task.