As with nearly every IT trend, including service-oriented architectures and Web services, just because we're all talking about cloud computing doesn't mean we're talking about the same thing.
I recently joined a LinkedIn/Google group on cloud computing, a member of which posted what should have been an innocent question: Is there a difference between cloud computing and what we know as grid computing? I was ready with my own answer, but overnight about a dozen responses had already flooded in, creating an e-mail chain that offered some interesting nuances on the terminology.
I hope this doesn't get me kicked out of this group, but I thought it might be interesting to reproduce some of these as food for thought. In the interests of privacy I'm not publishing anyone's names, and I've edited some of the definitions for the sake of clarity and length. Here are the top five:
1. "Vendors, as always, blur the real definitions of new terms. In my opinion (and the opinion of others, cloud computing isn't the same as utility computing, which isn't the same as grid computing:
"Grid computing generally refers to resource pooled environments for running compute jobs (like image processing) rather than long running processes (such as a Web site or email server).
"Utility computing generally refers to resource-pooled environments for hosting long running processes, and tends to be focused on meeting service levels with the optimal amount of resources necessary to do so.
"Cloud computing refers (for many) to a variety of services available over the Internet that deliver compute functionality on the service provider's infrastructure (e.g. Google Apps or Amazon EC2 or Salesforce.com). A cloud computing environment may actually be hosted on either a grid or utility computing environment, but that doesn't matter to a service user."
2. "Cloud computing = Grid computing. The workload is sent to the IT infrastructure that consists of dispatching masters and working slave nodes. The masters control resource distributions to the workload (how many slaves run the parallelized workload). This is transparent to the client, who only sees that workload has been dispatched to the cloud/grid and results are returned to it. The slaves may or may not be virtual hosts.
"Cloud computing = Software-as-Service. This is the Google apps model, where apps are located 'in the cloud,' i.e. somewhere in the Web.
"Cloud computing = Platform-as-Service. This is the Amazon EC2 et al model where an external entity maintains the IT infrastructure (masters/slaves) and the client buys time/resources on this infrastructure. This is 'in the cloud' in so much that it is across the Web, outside of the organization that is leasing time off it."
3. "The cloud simply refers to the move from local to service on the Web. From storing files locally to storing them in secure scalable environments. From doing apps that are limited to GB spaces to now apps that have no upper boundary, from using Microsoft Office to using a Web-based office. Somewhere in 2005-2008 storage online got cheaper and more secure than storing locally or on your own server. This is the cloud. It encompasses grid computing, larger databases like Bigtable, caching, always accessible, failover, redundent, scalable, and all sorts of things. Think of it as a further move into the Internet. It also has large implications for such battles as static vs. dynamic, RDBMS vs. BigTable and flat data views. The whole structure of business that relies on IT infrastructure will change, programmers will drive the cloud and there will be lots of rich programmers at the end. It is like the move from mainframe to personal computers. Now you have a personal space in the clouds.
"It is a gimmick yes, just like Web 2.0, but there are real changes these are based on. The marketing has been made around the technological advances."
4. "Grid and Cloud are not exclusive of each other... Our customers view it this way:
"Cloud is pay for usage (i.e. you don't necessarily own the resources). "Grid is how to schedule the work - regardless where you run it.
"You can use a cloud without a grid, a grid without a cloud. Or you can use a grid on a cloud."