What The Heck Is Cloud Computing?
Larry Ellison, Founder and CEO of Oracle, asks the above question (using the R-rated word instead of my PG substitution) in this audio sound bite as his way of saying the term is meaningless and ill-defined. His rant becomes even more strident in this video, although in both he does label those that would use the term as "insane".
Perhaps at risk of my own sanity, I think we can pin down a few key features that define cloud computing. To give Larry his due, he does have a point. We (especially in Tech) love to latch onto a good marketing term, even if it is not the most precisely defined. "Web 2.0" springs to mind as a term that means whatever you want it to mean, while at the other end of the spectrum "AJAX" is a term that actually had a specific technical meaning, but in common usage its definition has gotten overly broad. I think Larry's point is that we have this perfectly fine internet, let's use it and not claim we invented something new. Recall that Mr. Ellison called for the downfall of the thick-client PC years ago to be replaced with a thin-client "Information Appliance" connected to "giant computers via the internet". He lamented that we put bits on a disc, then in box, then on a truck, when we could just pull them down off the net. (Interestingly, this "cheap" internet appliance was to cost $500 in 1996, the price of a decent PC today). So I don’t think he is adverse to the concept, just to the marketing, the terminology, and to the repeated refrain that cloud computing will kill off everything else.
Microsoft on the other hand has embraced a Cloud Computing strategy, and the face of that strategy is Chief Software Architect Ray Ozzie. When asked to pin down the term Ray says:
"The cloud is a self service on demand way of accessing computation resources with a virtualized abstraction, that is relatively homogenous. Built on federated infrastructure, it's a public service. The reality is that it is different from a developer's perspective because you can treat it as a utility"
Well, it doesn’t exactly flow, but it is precise and information dense. Just focus on two words - "abstraction" and "utility" - and I think you've got 60% of what you need in looking for a definition. Think about this progression. When I use a computing resource, be it a platform, a utility, or an application:
1. On my machine: I use the software (applications), storage, and even databases all self contained on the machine right in front of me.
2. On your machine: You install the software and maintain the machines, services, storage, etc. I log on or connect to those machines to use it.
3. In the cloud
So what's going on in 3 that different than 2? It's the abstraction. I no longer have any idea (nor do I care) about your hardware or services, it is pure functionality. If I want storage I call an Amazon S3 API to store or retrieve my data. If I want to run my service on Azure I don't care about which servers I deploy to, I just deploy to Azure itself. The cloud is an abstraction of the utilities that developers want to use be they storage (Amazon S3), database (Amazon SDB, Amazon RDS), platforms (Microsoft Azure), or virtual servers themselves (Amazon EC2). It is scalable, flexible functionality on tap to use as much or as little as you need and not worry about the "how", only caring about the "what".
Notice how in the previous paragraph I talk about infrastructure (database, storage, servers) and platform but not services. When we talk services in the cloud then we get into Larry Ellison type terminology "heck". Is SaaS Cloud Computing? Is Hotmail Cloud Computing? You might argue that Hotmail is just a website for reading and sending mail, but consider that I can configure it (or GMail for that matter) to receive and send mail from other mail accounts I might own (yes I can send and receive my GMail through the HotMail interface). So it is really a Mail Client Application running in the cloud.
I have already talked about infrastructure and platforms in the cloud, so off course one can see there would be analogs for these to go with SaaS:
- IaaS: Infrastructure as a Service
- PaaS: Platform as a Service
- SaaS: Software as a Service
As we moved from SaaS to PaaS and IaaS we made the great leap from providing applications in the cloud to providing functionality in the cloud. This is when the term Cloud Computing started coming into its own, and it rapidly grew to encompass all three areas. For better or worse, I think that in the mind of the tech public, this is firmly where it is going to stay.
So in closing, Larry Ellison’s complaint is that Cloud Computing is meaningless because we already have it. He says "All it is, is a computer attached to a network…what are you talking about?" and "Salesforce.com has been around for years". Now we can see that Larry thinks (or wants you to think) that when we talk about Cloud Computing all we are talking about is SaaS. The power of Cloud Computing, however, lies in putting databases in the cloud, creating virtual servers in the cloud, and developing applications on a platform in the cloud. Since he runs a database company and they don't do anything like that, maybe he's feeling a little left behind.
This blog entry is part 1 in a series:
- What the Heck is Cloud Computing? [THIS POST]
- What The Heck Is Cloud Computing? – A Brief Re-Look
- What The Heck Is Cloud Computing? – Another re-look, with Pretty Pictures
Comments
Anonymous
December 08, 2009
Thanks for the write-up Seth. I'm glad you shared the Larry Ellison rants. I've had to give a talk on Cloud 101 once before and love using his rant. He's over the top but he is also right. I just love the example that SalesForce.com was the preeminent example of SaaS but now they are branding themselves Cloud. What the heck is cloud if everyone is going to subsume the name cloud for whatever they have to sell today.Anonymous
December 10, 2009
I liked your blog entry. But I've always thought cloud computing (today's and tomorrow's) has always fallen horribly short of the (correct) vision laid out by Anderson and Kubiatowicz in 2002 (http://oceanstore.cs.berkeley.edu/publications/papers/pdf/sciam-worldwide.pdf). I don't just want "functionality in the cloud". I want a seemless and ... See Morefluid allocation of computing resources to meet my immediate needs. And I don't just want to connect to a server; I want my home PC to be one of those servers -- contributing to the "grid" (earning me money) when I'm not using it in full. Another take on all this: if I want to sort a trillion integers, right now, then I want the necessary computers "in the cloud" marshaled together for my task, so that my latency is absolutely minimized. But I always thought the true technical vision of Cloud Computing wasn't simply "company A's data center vs company B's data center". It was a ... See Moregeneralized version of MapReduce or Amazon's EC2 or what not that was hardened enough as an interface that it spilled out beyond the data center. Any computer on the internet could contribute. Web server apps would become massively distributed, in a very commoditized way. I fully admit this notion REEKS of technical naivety, if not glossing over the implementation challenges (and computer science reality). But then again, that's the whole goal of the vision, right? "Computing as the electricity grid". It's a utility, you turn it on and get all that you need, when you need it. Whatever excess you have (e.g. solar panels on your rooftop), you sell back to the grid. > [seliot] The linked article is cool, but the list of "existing distributed systems" > from 2002 is most interesting from a "where are they know" POV Definitely. I was a bit surprised (and saddened) to see that the OceanStore project page hasn't been updated since 2005, it seems. Further proof that ideas, important as they are, remain the cheapest part of the picture. (Action and funding matter much, much more).