cloud computing distilled
This is how I think of cloud computing.
In the beginning ... the landscape
Services - People started to create services over the web that became building blocks for larger applications. This is part of Web 2.0.
Distributed computing - Because processor speed increases were slowing, there was pressure to shift from one computer to many.
Virtualization - People began to abstract the hardware away, allowing machines to be virtualized and share hardware resources.
Google engineers invent simple distributed computing model MapReduce, published in 2004, and highly scalable distributed platforms GFS (2003) and BigTable (2006). These made scalable (big), distributed computing popular and useful. Economies of scale ensue, Google dominates search, rolls out large applications at minimal risk.
Amazon invents virtual machine provisioning service around 2006. This makes infrastructure scalable (flexible) and easy, consolidating IT effort, taking advantage of economies of scale.
Scalable infrastructures are hard to build. These companies could only do it because of their extreme IT demands, their large size, and willingness to abandon existing solutions. Now that they've achieved this, everyone can use the same principles and enjoy the same benefits, either by building their own infrastructures according to these models or using existing systems.
Democratization of Scalability, Economies of Scale
Amazon creates services to let consumers use their infrastructure, Amazon EC2
Google creates public web applications on their private infrastructure, GMail, Google Docs, GoogleApps.
Google creates services for consumers to create web apps on their platform, Google AppEngine
Apache Hadoop implements an open source version of GFS (known as HDFS) and MapReduce.
Everyone else is doing roughly the same thing. The economies of scale make using these systems cheaper than in-house, or traditional shared-memory (non-distributed) systems. Because of this, lots of people are excited.