Ben Franklin was wise with his money and he would have certainly considered his ROI on using Public or Private cloud services. It is clear that IT is headed towards a cloud centric model for all future development and deployment services, and this raises the age old model of rent vs. buy. While this may appear to be a simple issue of cost benefit analysis, there are deeper issues that need to be considered before a final decision is made, and in fact it might be that a strategy is needed rather than a single decision.
Let’s start with cost/benefit though, as it’s the most common conversation point when discussing cloud, and we will start with a little thought experiment. So what does it cost to build actually build a cloud? Let’s say you want to support 500 medium instances (call it a 1 ‘core’ 1 GB with 4 GB SSD backing storage, perhaps approximately a m3.medium amazon instance which is ~ 0.07c/CPUhr at AWS or $50/month). Add free software (os, cloud), add a system engineer to operate the platform (expecting him/her to support as many as 100 physical machines, so 5000 VMs at @80K/yr) would be 1.30/vm/month, but we’re looking at 500 VMs, so let’s call it 13.00/vm/month at 500 VMs managed. Need a rack, power, space. $3K/month (2 racks, 10 physical servers, power, at a local colo facility that also includes network access and a block of public IP addresses): $6/month/VM. Let’s not forget network gear, a pair of white box switches, ~$10K or again, amortized over 36 months, at $0.50/VM. So our per/month VM cost is approximately 3+13+6+0.5: $22.5/VM/Month.
So m3.medium scale 500 VMs cost about 25K/month at AWS, and potentially 11K/month self hosted/managed.
So if you’re running 500 VMs 100% of the time, it could actually make sense to build out your own infrastructure. But for a new startup (which honestly is where this cloud discussion usually comes from), the up front costs: $3K/month for space, 3K/month for sallary, and 15K initial setup (1 server 2 switches), might be ok for some, but compare that to: a potential $2.5K bill for 50 full time use m.medium VMs, and it becomes clear that for starters, a cloud service makes sense. However, as your organization grows, it can fairly quickly make sense to build your system out.
Before we get to far from this point, let’s consider the entity where 500 VMs isn’t too far off of the mark, where a potential $10,000/month cost savings could be realized! If this enterprise is a modern built from scratch Dev/Ops focused Agile development house, then perhaps the on-demand aspect of running VMs as needed wipes out much of that savings. But most enterprises are still in the “VM replaces a physical server and is never shut down” space. In fact, most developers who have access to on demand hardware spin up all of their resources and let them sit, lest they get taken away for not having been used! Education can help resolve some of this, and monitoring of actual instance use can also work (until engineers get smart and start running load generators to protect their instances), and this also costs money if it’s not part of the culture of an organization. So the reality is that yes, a 500ish system space is really one where a cost savings could potentially be realized by building a private cloud! And I’m not sure there’s a CFO who wouldn’t be happy to save $120K/year off of infrastructure costs, and have something to amortize off the books…
Another model is to have someone manage your cloud for you, and the one published model that I’ve seen for this is the Canonical Bootstack model, where (on top of hardware/power/space), for 500 VMs, you could pay them ~12K/month to manage your cloud. So if we back out our person cost, we could still be cost positive against an AWS based deployment at 17K/month (~5K in fixed asset costs). And this may again, make sense, if adding a resource brings with it other costs and implications (an 80K/yr engineer doesn’t actually cost a company 80K, probably closer to 100K with taxes, insurance, and other benefits). And as part of a strategy to migrate from an initial public cloud use case to a fully private self managed cloud, an intermediate management by 3rd party of -your- cloud infrastructure can make plenty of sense.
I realize that this isn’t the cleanest model in the world, and is missing all kinds of variables, such as variable usage costs (you don’t necessarily just turn all 500 VMs on and leave them running), reserved vs. on demand pricing, bandwidth, network service etc. But even if some of the base costs are off by a few percent higher or lower, there is still a potential for a cost savings on the order of 20% for longer term consistent usage of infrastructure.
And all of this is just the tangible aspect of build vs. buy. There clearly is a model where it can make financial sense to buy your system at some point. So let’s have a look at some of those less tangible aspects of the service cost. If we look at the headlines today, we see that HP’s Helion public cloud is no longer available as of January 2016, and Verizon has just shuttered it’s offering as well. And it’s not just the EC2 equivalent IaaS offerings that are having trouble, a recent PaaS vendor announced a need for their customers to migrate off of their platform within a month due to an inability to find a profitable model for their service. So a public service as the _only_ model for your cloud can actually lead to a need to migrate what may be critical business functions or even your entire customer application environment to a new system. What’s even worse is that all of the tooling developed to manage your cloud instances may instantly also become useless, especially if any vendor specific technologies are used (ahh, good old vendor lock in…). So buyer beware, the cloud can be tempting, especially from the cost perspective of initial starting costs, it is important to think strategically about cloud.
So let’s think about a strategy that makes sense. Remember Ben (Franklin)? What would he do? To be continued….