The Cranky Admin
Key Factors in Choosing On-Premises IT vs. Public Cloud
Public cloud computing costs more than do-it-yourself datacenters. Except when it doesn't.
Public cloud computing costs more than do-it-yourself datacenters. Except when it doesn't. On a per-VM basis, standing up public cloud Infrastructure-as-a-Service (IaaS) instances for 24x7 use is egregiously expensive per VM, but the floor cost can't be beat.
If I want to stand up a workable small business network, I need several infrastructure components. I need, at a minimum, a DNS server, a DHCP server, storage and something to run workloads. If I'm planning to expand my business at all before the refresh on that hardware is up, then I'm probably going to want to use virtualization, as it's still the only rational way to spin up and down workloads as needed for on-premises deployments.
The Importance of Multiple Clusters
In theory, I could do DHCP and DNS off of my switching or routing infrastructure, but that doesn't exactly provide high availability, and for core infrastructure components I like high availability. I also would kind of like to have a directory service so that I could have centralized passwords, security and so on. In the real world, this means a Microsoft Active Directory (AD) domain controller (DC).
AD is what the overwhelming majority of businesses use, and for a good reason. And a single DC can host AD, DNS and DHCP, all integrated and easy to use. Toss that on to a virtualization cluster and you can make it highly available, fairly easily.
Of course, once you have a virtualization cluster you need the management infrastructure to manage that cluster. Hard lessons learned have shown that virtualizing the management applications on the cluster they're managing can and does cause problems. That's before you even touch more complicated chicken-and-egg scenarios, such as which should boot first: vSphere Server, NSX or vCloud virtual machines (VMs).
If running VMware, you probably need two virtualization clusters to make a reasonably resilient entry-level on-premises IT infrastructure capable of surviving the most common issues. A vendor like Scale Computing for the virtualization layer can save you this because its management layer is distributed; but then you're using KVM as the hypervisor. In the real world that's not a problem, but there are some independent software vendors who might yell at you for it because they're from the past.
The Cost of Flooring
Depending on the level of IT service you're trying to provide, the amount of infrastructure you need just to get off the ground and start running your first workload can be quite high. This floor cost is important.
A fairly standard midsize VM will run about $800 per year on Amazon Web Services (AWS). Lighting up your own infrastructure will probably be in the $50,000 range for something I would consider minimally resilient. Because I'm talking real-world numbers here, not mythical marketing mumbo-jumbo, I'm going to throw out the three-year refresh cycle and replace it with a five-year one that small organizations actually use.
To make the on-premises choice for workloads worth it, you need to be running 13 workloads over a five-year period. Public cloud evangelists might argue that public cloud will go down in price over those five years, because it did so during the period of aggressive market expansion and establishment during the past 10 years (the British might disagree with that assessment).
Predicting the Future
Thirteen actual workloads is a lot, especially considering many small businesses consume basic core workloads such as Software-as-a-Service applications. For young companies, the choice between on-premises and public cloud computing is really one of growth prediction. What will you need, and when? And when does it make sense to invest? Remember either way to factor in all the costs. Determining your cost per VM can be tricky, but even minor differences really add up over the span of a five-year refresh cycle.
Trevor Pott is a full-time nerd from Edmonton, Alberta, Canada. He splits his time between systems administration, technology writing, and consulting. As a consultant he helps Silicon Valley startups better understand systems administrators and how to sell to them.