I wanted to focus this article on the actual cost of cloud computing. We covered different types of clouds in the previous article, "Understanding the Clouded Cloud
," but we never touched on the cost or ROI for any of the classes of cloud computing.
The worst that could happen is for people’s view to be crushed once they implement a cloud infrastructure, hoping for an ROI based on an unjustified hype.
10 Seconds on Cloud Computing
To recap, we have up to four categories of cloud, which are shown in figure 1.
Figure 1: Classes of Cloud Computing.
As you can imagine, there is a cost associated with each of these options. What are these costs? Everywhere you look there is cost-benefit-analysis especially for external public clouds by vendors. (I can't imagine why). But what are these costs? I will do some estimation to get to these numbers, but I do believe that these numbers are correct.
Overview on Cost
We are looking at an apple-to-apple comparison of what it would be for each of the options that showed in figure 1. We are not interested in a pie in the sky scenario that cloud vendors publish. I have nothing against cloud or any vendor for that matter, but we need to get past the hype and start to justify the cost.
This is what I like to get to:
* If you go and lease or buy 10 machines
* and one person is managing this cluster of 10 machines
* and you are utilizing this cluster 100% of the time for a month
What is the cost? ( = A)
Then, I like to get a number for a cloud vendor:
* you lend 10 machines, similar to above
* and you use these machines 100% of the time for a month
What is the cost? (= B)
Let’s compare A and B, and see what we will get. In fact, we can graph it and see where is makes sense to switch to cloud. I am sure that there is a turning point in that if you are, for example, utilizing over 50%, it is cheaper to self-host.
I wanted to add a very important note regarding the size of our infrastructure that we are considering for the Cloud. Obviously, if you want to Cloud-ify a single server, then Cloud makes sense. This is simply for the fact that a system admin to manage “a” server will cost too much. We will focus on economies of scale here. We will focus on a scenario where you need about 1000-10000 cores!
For anything smaller, a number of different variables need to come into play, which "clouds" the topic.
Imagine that you wanted to have a compute backbone of 1000 cores. Table below enumerated what you could expect under three different scenarios.
Interesting; not completely acute, but very interesting.
Some readers will send me hate emails, but that’s ok. Some will say that I am completely off on my numbers, and that’s ok as well. You can play with the numbers all you want, but the plain and simple fact is that if you rent 1000 cores from a cloud vendor for 10 cents/hr per core, you will pay over $900k for one year of usage:
Obviously, this figure includes a $50 for IT staff -– that’s one System Admin part time for the year.
There are a number of arguments against my calculation and generally speaking the approach that I have taken with the calculation. Let me cover some of them:
* One part-time IT staff is not enough.
* 5 cents/hr/core is too low
* Some costs are not included such as networking, security, build and configuring the OS, etc.
And last, but certainly now least:
* The assumption that Cores are used for the entire year is wrong!
These are the basic arguments – there could be others, but the list represents the majority of them.
Let’s take the simplest one first: IT staff size. I would break the IT staff in to two parts: System Admin and application Support. Application support is required regardless of where your applications are deployed. Many think that once an application is moved to the cloud, the application support needs disappear in the cloud as well. That’s where you get into trouble! Application support needs to always be there!
Your system admins need to have an automated way of maintaining your servers. It is beyond the scope of this article, but that is a must. Much of system admin in either Windows or Linux can be automated, and if you hire a part-time senior admin, s/he will automate your process to the last step. Why? Because it makes their life easier if everything is automated. If you have not automated your processes, cloud won’t help either, as you still need to create images, configure images, etc.
5 cents/core/hr might be a little too low, yes. Not by much though. I would argue that a cloud vendor needs t o have 100% margin on its services, and that’s where I got the 5 cents/core/hr. If you were a vendor, and I have been one, you have a markup of 100%, at least!
Now, as I mentioned in the previous article, the main difference between private and public clouds is that in a public cloud, you go over the Internet. Some argue that networking costs are not included in my calculations. I would also argue that you still need a high-speed network connectivity. In fact, you would need better connectivity to the Internet if you are connecting to a public cloud as the uplink bandwidth (what you essentially pay for) determines how much you can transfer to your cores on the cloud.
I would further argue that you have more to worry about insofar as security when you are wondering about public clouds. For some organizations that deal with sensitive data, this number is tremendously high!
Now, let’s tackle the find argument which read as follows: "The assumption that Cores are used for the entire year is wrong!"
This in fact is a true and good argument. We need to determine at which point does it make sense to move to the cloud:
You could do this for your organization, but logic prevails here in that if your utilization is over 50%, cloud is costing more than if you were self hosting.
I would argue that:
* Cloud would be more expensive than an internally managed infrastructure if you were to compare both having 100% usage
* Your cost today is a result of the inability to fully utilize your infrastructure
Let’s analyze these two scenarios. The key phrase for both of these test cases would be "use these machines 100% of the time for a month." Going to cloud vs. what you do today makes sense if you are over-provisioning. Better stated, if you are expecting spikes that you are unable to predict or provision for, a cloud approach makes sense.
Keep on reading.