Cloud Computing is hinting at a future in which we won’tcompute on local computers, but on centralized facilitiesoperated by third-party compute and storage utilities. We surewon’t miss the shrink-wrapped software to unwrap and install.Needless to say, this is not a new idea. In fact, back in 1961,computing pioneer John McCarthy predicted that”computation may someday be organized as a public utility”—and went on to speculate how this might occur.In the mid 1990s, the term Grid was coined to describetechnologies that would allow consumers to obtain computingpower on demand. Ian Foster and others posited that bystandardizing the protocols used to request computing power,we could spur the creation of a Computing Grid, analogous inform and utility to the electric power grid. Researcherssubsequently developed these ideas in many exciting ways,producing for example large-scale federated systems (TeraGrid,Open Science Grid, caBIG, EGEE, Earth System Grid) thatprovide not just computing power, but also data and software,on demand. Standards organizations (e.g., OGF, OASIS)defined relevant standards. More prosaically, the term was alsoco-opted by industry as a marketing term for clusters. But noviable commercial Grid Computing providers emerged, at leastnot until recently. So is “Cloud Computing” just a new name for Grid? Ininformation technology, where technology scales by an orderof magnitude, and in the process reinvents itself, every fiveyears, there is no straightforward answer to such questions.Yes: the vision is the same—to reduce the cost of computing,increase reliability, and increase flexibility by transformingcomputers from something that we buy and operate ourselvesto something that is operated by a third party.But no: things are different now than they were 10 years ago.We have a new need to analyze massive data, thus motivatinggreatly increased demand for computing. Having realized thebenefits of moving from mainframes to commodity clusters, we find that those clusters are quite expensive to operate. Wehave low-cost virtualization. And, above all, we have multiplebillions of dollars being spent by the likes of Amazon, Google,and Microsoft to create real commercial large-scale systemscontaining hundreds of thousands of computers. The prospectof needing only a credit card to get on-demand access to100,000+ computers in tens of data centers distributedthroughout the world—resources that be applied to problemswith massive, potentially distributed data, is exciting! So weare operating at a different scale, and operating at these new,more massive scales can demand fundamentally differentapproaches to tackling problems. It also enables—indeed isoften only applicable to—entirely new problems.Nevertheless, yes: the problems are mostly the same in Cloudsand Grids. There is a common need to be able to manage largefacilities; to define methods by which consumers discover,request, and use resources provided by the central facilities;and to implement the often highly parallel computations thatexecute on those resources. Details differ, but the twocommunities are struggling with many of the same issues.1.1 Defining Cloud ComputingThere is little consensus on how to define the Cloud ]. Weadd yet another definition to the already saturated list ofdefinitions for Cloud Computing:A large-scale distributed computing paradigm that isdriven by economies of scale, in which a pool ofabstracted, virtualized, dynamically-scalable, managedcomputing power, storage, platforms, and services aredelivered on demand to external customers over theInternet.There are a few key points in this definition. First, CloudComputing is a specialized distributed computing paradigm; itdiffers from traditional ones in that 1) it is massively scalable,2) can be encapsulated as an abstract entity that deliversdifferent levels of services to customers outside the Cloud, 3) itis driven by economies of scale], and 4) the services can bedynamically configured (via virtualization or other approaches)and delivered on demand.