You know how to manage the move to The Cloud, but what if you’re asked to cost-justify it? Could you?
Ask virtually anyone about The Cloud and they will tell you what marketing has driven into their heads. The Cloud saves money. Well, it’s true, or it can be. But how does it save you money?
The Old Guard
When you start pitching a move to The Cloud, you may find that there are some members of the Old Guard who haven’t heard that marketing message. Maybe they haven’t even heard about The Cloud, or at least they haven’t heard the pitch that it saves them money. Worse yet, they might want you to prove that you can actually save money by moving your infrastructure.
For the most part the marketing engine has done a great job of drumming savings into people’s psyches, but hasn’t put as much effort into showing how this savings from moving to The Cloud is brought about.
So it may fall upon you to explain it.
No worries. It’s not a hard case to make. You just need to compare current costs with projected costs due to moving to The Cloud, and one way to do this is by calculating the cost per unit. This allows you to make a relatively objective comparison between your current infrastructure costs and the estimated Cloud costs.
Your first step is to figure out your current performance for a common unit of work that your software is doing. Sometimes your software may be doing several tasks at once. If this is the case, choose the most commonly run task or the most performance-intensive task. In my Million Monkeys research, I had an easy choice of unit of work: Everything in the Monkeys code is about character groups.
Once you have chosen your unit of work, you need to get your performance numbers. That is, how many units can be calculated/produced/transformed per hour. You’ll need to get those performance numbers for both your current setup and for the system using your planned Cloud provider.
However you collect these numbers, the process should be easily repeatable. It will be similar to, but not necessarily, a unit test. Make sure that you run any test for a few hours to get a good average.
If you have the time, try to get performance numbers for as many instances as possible. You may not use these instances in the short term, but you can get an idea of how your software will perform as you scale up.
The next step is calculating total cost per hour. This can be a big job in itself. Although some Cloud providers offer cost calculators, you still need a decent amount of domain knowledge to come up with a cost estimate. Keep in mind, this a total cost of everything. That includes things like compute time, storage, routing/load balancing, and bandwidth. Anything that you have in your current IT infrastructure (unless you are reengineering things) needs to be in this cost estimate.
This work is guaranteed to make you feel like you are being nickeled and dimed to death. Alas, that is the nature of the Cloud beast.
Certain costs may not lend themselves to an hourly cost estimate. This is where you may have to fudge things. Try to give it your best guess or take an average.
Calculating your current costs may be difficult as well. These need to include time spent by staff dealing with hardware issues, for example. Once again, this may be a case where fudging and best guesses are in order.
Cost Per Unit
You’ve done the hard parts and now it’s time to see the fruits of your labor. You’re ready to calculate your cost per unit.
To be sure that we’re clear on the concept, let’s step outside your domain and look at cost per unit in terms of a different domain, say buying food. If you have a giant box of crackers that costs $3 and a small box that costs $1, which one is a better buy? The answer is that neither is demonstrably better, because you don’t have enough information to make an informed decision. You only know the cost, but you need to know the unit. For crackers, this is usually in weight, like ounces or kilograms.
If you have a box of crackers that weighs 6 pounds and costs $3 and a box of crackers that weighs 1 pound and costs $1, which one is a better buy? OK, now you have the information you need. You take the unit (pounds) divided by the cost. So the big box costs $0.50 (6/3=0.5) per pound and the small box costs $1 per pound (1/1=1). The big box is the better buy, provided you actually consume the entire box.
Your performance and costs for assessing the move to The Cloud are calculated the same way. Take your performance per hour and divide that by the cost per hour. Do this same calculation for every instance that you have performance numbers for. I highly recommend graphing this data, as it helps everyone visualize the comparison. Take a look at my research for how I visualized the data.
Show Your Work
This approach is straightforward, but the point is that it is a very objective way to compare things. Keep in mind that there are lots of other variables in choosing a Cloud provider, or even deciding whether or not to move to The Cloud. Just looking at straight costs may lead you to a bad decision.
As you get into Cloud usage, keep in mind that the fastest or cheapest instance may not have the best cost-per-unit ratio. In my research, I found that the Hi-CPU Medium instance performed the best relative to the cost. If you only get performance numbers for one instance type, you may be missing the instance type that saves you the most money.
Want to impress your bosses? Have these numbers and charts ready from the beginning, or at least early on in the process. You may not want to show every detail, but a chart showing cost-per-unit comparisons might get you some kudos.
The costs per unit calculations take some work. You have to compile performance numbers and costs, but it’s really worth the effort once you can back up “The Cloud saves money” with actual numbers.
Jesse Anderson is a Creative Engineer in Reno with many years of experience in creating products and helping companies improve their software engineering. He works at Cloudera on the Educational Services team as a Curriculum Developer and Instructor. He does both professional and personal projects. Personal projects like the Million Monkeys project went viral and gained international notoriety. His interviews appeared in such prestigious places as the Wall Street Journal and Fox News. To help the local community, he volunteers his time as the President of the Northern Nevada Software Developers Group and he sits on the Technology Advisory Committee at Morrison University. His blog and website is www.jesse-anderson.com.