Yeah so we have a different story. We build Natural Language Processing and statistics software. We tried the cloud first, but it was just unworkable. Limited IOPS, outrageous prices for even a modest amount of RAM, slow virtualized CPUs, limited GPU options with terrible performance. So one day I hired half a rack, bought some machines with fast SSDs, 128GB RAM each, dual CPU with high clockspeed, and even some boxes with GPUs. The difference was incredible. Not just in performance, which was orders of magnitudes faster (going from barely workable to "pleasant user experience" without any software changes), but also in terms of cost. If we were to provision these machines on Azure or E2 we'd spend in a month what these machines cost, and our current current costs are maybe $500 in electricity + rack rental. Sure, it's a bit of a workout to put stuff in racks, but I actually quite enjoyed doing it. Sure stuff will break and things will go down. We can take the downtime at this point. And seriously, cost and performance wise there is no competition between cloud and rolling your own hardware (if you know how to do it). Also I'm perpetually surprised by how overstated the complexity of this is, yes it's tricky. But so is CSS, and Javascript these days. And unless you go "full cloud" (never go full cloud), you still have to manage fallover/redudancy/CI/provisioning yourself. It's not much different on "actual" hardware (there is no cloud, it's just somebody else's computer). If my firewall or switch catches fire, that might be problematic. But if that happens at an Amazon or Azure data center, that's also problematic. At the very least you'll suffer terrible latency because it needs to move the VMs dynamically.