What is Cloud Computing

Last week the National Institute of Standards and Technology released their draft definition of cloud computing. I’ve read several blogs and articles that express their opinions on the matter and realized why should my opinion be any less important. So here I am back on my soap box to give you my two bits on the subject. Ok, so its not a soapbox so much as a cardboard box that promptly collapsed flat when I tried to step on. But I’m still standing on it and you’re here so I’m going to assume you have at least a passing interest in what I have to say.

Why do we care about a definition?

Like every other industry buzz word of the last 30 years, cloud computing has caught on and is being bandied about as the silver bullet for just about everything. Yet nearly everyone is using a different definition. This is only adds to the confusion that many IT managers may be feeling and when they are unsure about a technology, you can bet they won’t want to put their critical business functions on it. At least not without a darn good reason.

So the first reason for a definition is to clear the air a bit and make sure everyone has the same basic foundation.

The second reason is to help establish certain concepts and terminology that can be used to help discuss cloud computing so that we can all talk the same language. Lets say two people get together for a discussion on cloud computing. They both have the same definition but one speaks English while the other speaks only Mandarin Chinese. Having a common definition really isn’t going to help them because their vernacular is completely different.

The NIST’s Definition

Go read the full definition (its only 3 pages) if you like. I’ll just summarize it here:

  • Cloud Computing solutions must provided on-demand self-service, be accessible from anywhere on the internet, provide location independent resources, and exhibit rapid elasticity (aka quickly scalable), and fees should be based on usage (pay per use)
  • the Clouds themselves can exist as a private (dedicated solution), community (think farmer’s co-op), public (EC2), or hybrid infrastructure (combination of other types)

Furthermore, cloud solutions exist as 3 types:

  • Software as a Service (SaaS) – access application services (Google Apps, Yahoo Mail, crm, etc…)
  • Platform as a Service (PaaS) – deploy your application into someone else’s infrastructure
  • Infrastructure as a Service (IaaS) – you manage your portion of the cloud and the bits that are on it

Not a bad first stab actually. I don’t necessarily agree that rapid elasticity MUST be a requirement. For many SaaS offerings, I don’t believe this applies. If you’re Joe average using a hosted email solution, you really don’t care about the ability to rapidly increase capacity. Its more the job of the vendor to make sure they plan for and manage the growth of their service. So they must have the ability to scale, but its not something that has to be quick or that you need to be able to manage yourself.

I also don’t agree with a small note that these solutions need to be accessible via thin clients. Limiting ourselves like this seems kind of pointless.

So how does this help?

Now we’re to the crux of the matter. IMHO, cloud computing isn’t really anything new. Its been around by my account for at least 10-15 years. Its just that today we’re finally getting to the point where the technology is making it more mainstream and easier to consume. IT managers are starting to demand the kind of convenience they’ve been getting from end user applications in their enterprise solutions. By using these terms and putting them in context, we can help address many of the perceptions and fears that are out there. Here’s my short list…

“Cloud computing is too cutting edge, we’re not an industry leader.” – Remember back in the early 90’s when you signed onto Compuserve for your company’s email solution, you were consuming Software as a Service. So this is definitely a road that has been well plowed.

“There’s no money in providing cloud solutions.” There’s a relatively small company in California that would beg to differ this point. They have millions of subscribers, each paying only about $15 a month. They host this highly successful SaaS offering in their private datacenter and provide their users with a custom client to access their data over the internet from anywhere in the world. This product is estimated to generate about $250 million annually. The product is one you’ve heard of but likely never thought of as a cloud solution… the computer game World of Warcraft.

“Why would I let someone else host my applications and/or data” – When was the last time you set foot in your own corporate datacenter? You have a group of network jockeys that keep things up and running. These folks might be your own employees but could just as likely be contractors. Heck, the datacenter itself likely isn’t even in a building you own but instead in a larger center that you simply pay for space in. You’re already consuming PaaS or IaaS in a fashion.

So lets have a seat and start a conversation

Ultimately, what the NIST or any other ‘governing body’ has to say doesn’t really matter all that much (at least to me). The real point is to get folks to start agreeing on what things mean. The terms will change of course (its the nature of language and also an interesting topic itself), but at least these attempts at definition allow us to start the dialog that will eventually enable us to get to the real work of solving problems. And isn’t that what we’re really here for?


4 Responses to What is Cloud Computing

  1. Neil says:

    I disagree with your statement about elasticity in that I believe elasticity to be a vital component of any true cloud offering. "Joe average using a hosted email solution" may not care about elasticity but the vendor providing the hosted email really should. The underlying features of a platform should not matter to the SaaS user but they should matter to the SaaS provider.

  2. Brent says:

    But is elasticity the same as scalability? A scalable solution means it can easily grow to meet increased demand. Where as elasticity indicates that capacity can be adjusted up or down. In the hosted email solution it would be argued that the provider needs to make sure their solution is scalable while the consumer doesn\’t care about the services elasticity. Hotmail is scalable but I wouldn\’t consider it having elasticity. Where as hosted Exchange has both.The root of my statement was that some services don\’t need to exhibit elasticity but can still be consider cloud computing solutions.

  3. Neil says:

    I should have been clearer that I was really referring to elasticity being a core requirement of a cloud platform rather than the services needing it. As proprietary service hosted in the cloud might only have a few users and not really need either scalability or elasticity but it would still be a cloud-based service. It is similarly trivial to come up with examples of a service with only one user but massive elasticity needs – e.g., computer simulations in the drug industry and in financial services.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: