Wednesday, August 31, 2011

The Datacenter as a Computer (Chapters 1, 2)

Motivation:
Introduce the concept of warehouse scale computers and outline the
differences with traditional datacenters. The first two chapters
introduce the architecture and software components such clusters.

Main Ideas:
- There is a broad shift to server-side computation due to the ease of
deployment and the growing influence of large scale workloads like
websearch.
- Warehouse-scale computers are defined as clusters consisting of
thousands of machines and services which are deployed across them.
With such large scale, failures are commonplace and are a part of the
design.
- The architecture of the warehouse scale computer consists of a set of
servers arranged in racks and connected by a rack-level switch. The
racks are then connected by a cluster-level switch which could be
over-subscribed by a factor of 5 or 10.
- The bandwidth and latency varies a lot for memory / disk accesses
on a local machine vs. machines in the same rack vs. machines in other
racks.
- There are many levels of software components in a warehouse scale
computer. The resource manager, storage servers and monitoring
infrastructure are examples of lower-level software components
- Applications in warehouse scale clusters could be latency senstive
like websearch or batch processing jobs like indexing and article
similarity.

Trade-offs, influence
- This work analyzes many trade-offs involved in constructing a
warehouse scale computer. These include
- Using NAS storage solutions vs. distributed file system like GFS.
GFS provides better availability and performance benefits for locality
aware applications.
- Choice between buying and building software components for warehouse
scale computing. Building components in-house gives more flexibility
and ease of maintenance.
- Software components can also trade-off between advanced features and
performance. For example, Bigtable does not support multi-row
transactions and GFS does not have POSIX semantics. These are not
frequently used in the workloads observed at Google, Microsoft etc.
- The advent of warehouse scale computers has been a key driving factor
for the rise of cloud computing. With increasing operating costs for power
consumption, warehouse scale computers can help in building more
efficient systems to support newer applications.
However, there will be a client-side component for most of the
applications (the authors acknowledge this) in say a mobile device or
a web-browser. With changing hardware costs, there could be a shift in
the most efficient way to split the computation between the server and clients.

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.