Cluster computing and grid computing both refer to systems that use multiple computers to perform a task. The primary difference between the two is that grid computing relies on an application to be broken into discrete modules, where each module can run on a separate server. Cluster computing typically runs an entire application on each server, with redundancy between servers.
Standard cluster computing is designed to produce a redundant environment that will ensure an application will continue to function in the event of a hardware or software failure. This cluster design requires that each node in the cluster mirror the existing nodes in both hardware environment and operating systems.
General cluster computing is the process by which two or more computers are integrated to complete a specified process or task within an application. This integration can be tightly coupled or loosely coupled, depending on the desired objective of the cluster. Cluster computing began with the need to create redundancy for software applications but has expanded into a distributed grid model for some complex implementations.
Grid computing is more of a distributed approach to solving complex problems that could not be solved with a typical cluster computing design. Cluster computing is a replication of servers and environments to create a redundant environment and a grid cluster is a set of computers loosely coupled together to solve independent modules or problems. Grid computing is designed to work independent problems in parallel, thereby leveraging the computer processing power of a distributed model.
Prior to grid computing, any advanced algorithmic process was only available with super computers. These super computers were huge machines that took an enormous amount of energy and processing power to perform advanced problem solving. Grid computing is following the same paradigm as a super computer but distributing the model across many computers on a loosely coupled network. Each computer shares a few cycles of computer processing power to support the grid.
The typical cluster design for an enterprise is a tightly coupled set of computers that act as one computer. These computers can be load balanced to support work load and network requests. In the event of a server failure within a cluster computing farm, the load balancer automatically routes traffic to another server on the cluster farm, which seamlessly continues the core functionality of the application. Grid computing and cluster computing are very similar as they each use the resources of additional servers and computer processing units (CPU) to complete the load requirements of an application.