@aurynn I think we also need to address realistic resilience needs.
You, as a small operator, don't need the level of network resilience/redundancy as a Fortune 500 company that will lose millions of $ per minute of down time.
Not that redundancy is bad, but that you can go as far as having a simple two-small-machine setup and that will probably give you all the uptime you'll ever need.
Likewise, writing software in hardware-hungry languages is a luxury we've afforded ourselves because of the convenience of the cloud. Driving our software towards embedded queues, sqlite, systems software developed by communities for their own use, that can run on $30 hardware in a closet is very different from needing to spend hundreds of $ on each machine.