I am pleased to finally have found a paper that manages to bring together the different aspects of cloud computing in a coherent fashion, and suggests the requirements for it to develop further.
Written by the Berkeley RAD Lab (UC Berkeley Reliable Adaptive Distributed Systems Laboratory) the paper succinctly brings together Software as a Service with Utility Computing to come up with a workable definition of Cloud Computing and is a recommended read.
The services themselves have long been referred to as Software as a Service (SaaS). The datacenter hardware and software is what we will call a Cloud. When a Cloud is made available in a pay-as-you-go manner to the general public, we call it a Public Cloud; the service being sold is Utility Computing. We use the term Private Cloud to refer to internal datacenters of a business or other organization, not made available to the general public. Thus, Cloud Computing is the sum of SaaS and Utility Computing, but does not include Private Clouds.
Exploring the difference between the raw service of Amazon EC2 to the high level web centered Google App Engine, the highlights are:
- Insight into the pay-as-you go aspect with no commits
- Analysis of cost with regards to peak and elasticity in face of unknown demand
- Cost of data transfers versus processing time
- Seamless migration of user to cloud processing
- Limits and problems with I/O on shared hardware
- Availability of Service
- Data Lock-In
- Data Conﬁdentiality and Auditability
- Data Transfer Bottlenecks
- Performance Unpredictability
- Scalable Storage
- Bugs in Large-Scale Distributed Systems
- Scaling Quickly
- Reputation Fate Sharing
- Software Licensing
I particularly find interesting the analysis of transportation cost versus computing cost; when is it more efficient to to use EC2 than your own individual processing? I predict speed of light and available of raw transfer capacity is going to become a even larger obstacle. (Both inside computers, between them on local LANs and on WANs.)
The paper reinforces my belief in the cloud, but that we need open source cloud environments and a larger ecosystem of providers.
Read more on the Above the Clouds blog.