Like the grid, the cloud is a utility computing model that involves a dynamically growing and shrinking collection of heterogenous, loosely coupled nodes, all of which are aggregated together and present themselves to a client as a single pool of compute and/or storage resources. But though the server side of the model may look similar, most the major differences between cloud and grid stem from the differences between their respective clients.
Instead of a few clients running massive, multinode jobs, the cloud services thousands or millions of clients, typically serving multiple clients per node. These clients have small, fleeting tasks—e.g., database queries or HTTP requests—that are often computationally very lightweight but possibly storage- or bandwidth-intensive.
Another difference between the cloud and the grid is that the grids are biased toward serving compute cycles, while clouds typically offer more in the way of storage than cycles. Indeed, most grids would be very ill-suited to cloud workloads like Web serving, and most clouds would fall far short of grid clients' massive compute needs.
Because of the nature of their respective client profiles, clouds and grids also have different ownership characteristics. I noted above that grids tend to be multi-institutional, where institutions and/or individuals all contribute hardware resources that are then shared by other contributors. A cloud, in contrast, is always owned by one institution, regardless of whether use of the cloud is open to clients outside that institution or not (i.e., whether the cloud is public, private, or hybrid). (Source