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: