So how real is cloud computing? Pretty real by the number of servers being deployed by Amazon, reports Bernard Golden in an excellent CIO article.
I don' know what the number is and it's probably a lot less than what the article implies, yet it is a staggering number. But there are some differences worth discussing. More after the quote.
Tue, September 29, 2009
—
CIO
—
There's been a lot of discussion the past couple of days about an analysis by Guy Rosen, in which he estimates that Amazon Web Services (AWS) is provisioning 50K EC2 server instances per day. He created this estimate by examining EC2 resource IDs (if you read his post, you'll see how he broke down resource IDs to understand their meaning) and doing a time-series analysis on how much the IDs are incremented per hour. From this analysis, Rosen concluded that AWS is provisioning around 50,000 EC2 instances per day.
At newScale we have been using Amazon EC2 for about year. During that time, we have spun up lots of instances. We also shut them down when no longer needed. So that leads to a large number of instances I suppose, as the article implies, but a lower total number of actual servers running all the time. Since our software is entirely web-native, it's easy to give one of our customers a new version, trial, proof-of-concept, dev, qa, and production servers in the cloud. This bypasses the months of waiting for hardware.
The other thing is that we tend to "waste" servers on purpose. For example, we have a bunch of images, each specialized for certain workloads. It's easier, and more convenient to spin up two or three images that are purpose built rather than spending a day or two installing SQL, Oracle, Java, and our software on a server. In other words, I'm wasting servers, because labor hours are precious and scarce. That's a theme that I've observed with other companies using cloud computing.
It's a bit like what happened with CPU power: programmer resources and time are expensive, so we use higher level languages like Java rather than Assembly and "waste" processor. I remember when Windows took off -- people were concerned that all those "graphics" were wasting transistors. Turns out we didn't have to worry.
In the cloud, if I spin up 20 servers this week, and shut them down in a couple of days, and then spin up them later, I only pay for what I consume. I couldn't do that with physical servers, even virtualized.
Working with some amazing sys admins that come from traditional hosting, it's been a hard change at first. Traditionally, server uptime and server scarcity is what they care about. In my project, I care about their time.
So what's the key to this magic? We've had to do three things:
1) Establish clear standards, policies and images. For example, only use Small Windows with SQL Express for these type of workloads. Here are the two images that fit that kind of scenario.
2) Tight control over the lifecycle to prevent sprawl. There are lot of parts to it, but all servers have an expiration date as well as other attributes that allows us to map it to customers, groups and usage. And a draconian termination policy: servers that are orphaned, get terminated.
3) Put some controls on entitlement: who can order, what level, how do we account for expenses.
At first, the Amazon console was good enough, but around 5 servers
and 3 internal requesters, the ease of use became a problem leading to
cloud sprawl.
We are about to probably quintuple our usage of cloud. So we are setting up all of this in our service catalog and our service lifecycle manager. I'll report more on our journey, if there's interest.
Recent Comments