Wednesday, April 23, 2008

confused between grid computing, cloud computing, utility computing, and software as a service (SaaS)

Grid computing is a fairly all encompassing concept and as you probably know, can be generally defined as: "a system that uses open, general purpose protocols to federate distributed resources and to deliver nontrivial qualities of service." Or in other words, it uses standard "stuff" to make many distinct systems work together in a way that makes them useful.

Utility computing or on-demand computing is the idea of taking a set of resources (that may be in a grid) and providing them in a way in which they can be metered. This idea is much the same as we buy electricity or a common utility today. It usually involves a computing or storage virtualization strategy.

Cloud computing is a subset of grid computing (can include utility computing) and is the idea that computing (or storage) is done elsewhere or in the clouds. In this model many machines (Grid) are orchestrated to work together on a common problem. Resources are applied and managed by the cloud as needed. (In fact this is a key characteristic of cloud computing. If manual intervention is required for management or operations, then it probably doesn’t qualify as a cloud.) Cloud computing provides access to applications written using Web Services and run on these Cloud Services.

Now let’s add to this discussion the idea of Software as a Service (SaaS). Usually this means a model where diverse applications are hosted by a provider and users pay to use them. So I would say the key distinction of SaaS and cloud computing is the service and business model provided as opposed to the architectural mechanism used to deliver it. In fact, I think it is also fair to say that a cloud computing architecture may be the key/best mechanism for delivering Software as a Service. Let’s look at a couple of today’s trends and see if this all fits. Probably the best known examples are of course search and mail. There are several companies that offer both freely, they are available via the web, and they are written using web services. (There is a growing set of additional capabilities that are becoming available.) For the most part, these are all free (fee based versions exist). Based on the scale and ubiquitous service they are able to deliver, it is fair to say that there is a cloud behind them. The Amazon Elastic Compute Cloud is noteworthy here. It is a virtual farm, allowing folks to host and run "their" diverse applications on Amazon's web services platform. It represents an excellent example of a business model where a company is providing "Cloud Services" to those who can and are willing to take advantage of them. Software as a Service is the logical next step in evolution. It is going to be very interesting to see how this motion will emerge. Ideally users will be able to "rent" the application and everything needed to apply them to their business in the form of Software as a Service.

No comments: