In a basic sense, grid computing is many systems performing many functions. When one function needs more resources, or resources to perform a function are unavailable, the grid can provision idle resources from elsewhere in the grid.
Clustered computing was the first evolution of grid computing. The work performed to make clustered computing a reality is also what makes grid computing a reality. The grid can be composed of multiple clusters and/or single nodes. For instance, in the grid, I might have one database cluster, two web server clusters, and a single database node. The database cluster needs more resources, so the grid provisions one node from one of the idle web server clusters to help out the database cluster. Once the workload on the database cluster goes down, the node can be provisioned elsewhere.
Note that you are not required to have clusters in your grid and not all clusters are part of a grid. But clusters and grids do work nicely together.
This was first published in January 2008