Tuesday, August 30, 2011

Above the Clouds: A Berkeley View of Cloud Computing

Problem Motivation:
- To define cloud computing and to analyze the trade-offs for cloud
providers and users

Main Ideas:
- Cloud computing refers to both applications delivered over the
Internet and hardware/software systems in datacenters.
- Computing available as a utility is an important shift in IT
infrastructure and similar to semiconductor foundries, it can enable
many more users to build scalable web-services.
- Cloud providers benefit from statistical multiplexing and bulk
purchasing. They can make money as it is cheaper to build larger datacenters and
cost is amortized. It also helps fulfill the needs of their existing customers
e.g., Microsoft, IBM etc.
- Advantage for users is that cloud computing allows them to scale their
applications based on traffic patterns. This includes scaling up and
scaling down and based on the interface, this could be automatic or
specified by the programmer.
- Economic factors have influenced the growth of cloud computing. Jim Gray
observed in 2003 that cost of wide area networking has fallen
more slowly compared to CPU and storage costs. Hence it is better to put
applications closer to the data. This trend continues (as seen by 2008
numbers) and when opeartional costs are included, it is cheaper to
rent than to buy clusters.
- There are ten obstacles identified for the adoption and growth of
cloud computing. Some of these are policy issues like licensing, while
others are research opportunities like a scalable storage solution.

Trade-offs, Influence
- The paper analyzes the economic trade-offs for an organization to use
cloud computing against building their own datacenter. This trade-off
is represented as an equation and based on the cluster utilization,
companies can decide when it would be profitable for them to switch to
the cloud.
- The cloud computing interface also represents a trade-off between
flexibility and ease of use. While Amazon EC2 instances, close to
bare-metal hardware, provide flexibility, it is not easy to get
automatic scale up / scale down.
On the other hand Google AppEngine is designed for a restricted set of
applications, but provides automatic scaling.
- With the growing adoption of cloud computing, the ideas presented in
this paper are influential today and I think they will also be influential
in the future.