Awesome site; I discovered it when researching how to backup my own personal server (nextcloud, webhost, home automation).
I currently host off of an old laptop, and would like to provide redundancy similar to your docker swarm. I’m curious if a swarm can be run on multiple hardware configurations, and how the performance would be impacted. I have spare AMD64 machines that could serve this need.
Even with your professionally hosted VM example, could you pay for one premium VM with additional memory/CPU, and two redundant low-speced VMs and gain a performance benefit? As your configuration is a personal server, the number of requests will be very low, but the operations to be performed can be intense.
I don’t see why not Docker swarm has some sort of visibility of the performance of each node, and uses this to schedule new containers to a particular node. So if you setup 1 grunty VM and 2 lower-specced VMs, I’d expect to see the majority of the containers scheduled to the grunty VM by default.
You could also play with affinity and constraints, requiring some containers to run on the grunty hardware (nextcloud DB, for example), and others to run on the lower-specced hardware (db-backup, or nzbget, etc)
I’ve been playing with a similar idea in Google Kubernetes Engine, setting up a node pool comprised of “pre-emtible” VMs (which can be powered off at any time), simply for routine tasks which can be stopped/started without impact.