CC module 1
CC module 1
Computing is being transformed toa model consisting of services that are commoditized and delivered
in amanner similar to utilities such as water, electricity, gas, and
telephony. In such a model,
access services based on their requirements regardless of where they are hosted. users
Several comput
ing paradigms such as Grid computing have promised to deliver this utility computing vision. Cloud
computing is the most recent emerging paradigm promising to turn the vision of "computing utilities
into a reality.
Cloud computing is atechnological advancement that focuses on the way in which we design com
puting systems, develop applications, and leverage existing services for building software. It is based
on the concept of dynamic provisioning, which is applied not only to services, but also to compute ca
pability,storage, networking, and Information Technology (IT) infrastructure in general. Resources are
made available through the Internet and offered on apay-per-use basis from Cloud computing vendors.
Today, anyone with a credit card can subscribe to Cloud services, and deploy and configure servers for
an application in hours, growing and shrinking the infrastructure serving its application according to the
demand, and payingonly for the time these resources have been used.
This chapter provides a brief overview of the Cloud computing phenomenon, by presenting its vision,
discussing its core features, and tracking the technological developments that have made it possible.
The chapter also introduces some of its key technologies, as well as some insights into developments
of Cloudcomputing environments.
dont care where my servers are, who manages them, where my documents are stored or whe
myapolications are hosted. ljust want them always avallable and access them from any device con.
nected through Internet. And Iam wiling to pay for this service for as a long as I needit."
The conceptexpressed above has strong similarities with the way we make use of other services such
as water and electricity. In other words, Cloud computing turns T services into utilities. Such adeliver
model is made possible by the effective composition of several technologies, which have reached the
appropriate maturity level. Web 2.0 technologies play a central role in making Cloud computing an
attractive opportunity for building computing systems. They have transformed the Internet into anch
application and service delivery platform, mature enough to serve complex needs. Sevice-orientation
allows Cloud computing to deliver its capabilities with familiar abstractions while virtualization confers
Cloud computing the necessary degree of customization, control, and flexibility for building production
and enterprise systems.
Besides being an extremely flexible environment for building new systems andapplications, Cloud
computing also provides an opportunity for integrating additional capacity, or new features, into existing
systems. The use of dynamically provisioned IT resources constitutes a more attractive opportunity than
buying additional infrastructure and software, whose sizing can be difficult to estimate and needs are
limited in time. This is one of the most important advantages of CIloud computing, which made t a popu
larandphenomenon. With the wide deployment of Cloud computing systems, the foundation technologjes
systems enabling them are getting consolidated and standardized. This is a fundamental siep
the realization of the long-term vision for Cloud computing, which provides an open environment where
computing, storage, and other services are traded as computing utilities.
1.1.1 The Vision of Cloud Computing
Cloud computing allows anyone having a credit card to provision virtual hardware, runtime environ-
cor
ments, and services. These are used for as long as needed and no upfront commitments are required.
The entire stack of a Computing system is transformed into a collection of utilities, which can be provi-
sioned and
Composed together to deploy systems in hours, rather than days, and with virtually no main
several
tenance costs. This opportunity,initially met with now become a
practice across
1
skepticism, has
of
An interesting perspective on how Cloud found in a series
Computing people, can be CTOs,
interviewS made by Rob evOcates different things to different
May 2007. CEOs,
founders of IT companies, Boothby,
and |T
vice president and platform
evangelist of Joyent, at the Web 2.0 Expo in the phenomenon, which
analysts were interviewed and all of them ngave their personalfollowing
at that time was starting to link:ofhttp://www.youtube.com/
perception
spread. The video of the interview
watch?v=6PNuQHUiV3Q. can be found on YouTube at the
application domains and Intrnduelnrn 12
development and enrichedbusiness
the set ofseclors (see Fig 1 1) (he
cheaper. services offered, which havedemand has fast-tracked the technical
also become more sophisticated
Despite its and
evolution,
the usage of Cloud
more conmmonly, a set of related computing
is often limitedto a Single
services offered by the sarne 9erice at tirne or
tion efforts made it difficull to move vendor The lack of
hosted services from one effective standardiza-
of Cloud computing is that |1 services are vendor to another The iong terrmn vision
Rnd legal barriers. In this
Cloud marketplace, traded as utilitiesin an open market without
services as utilities, play a central role Cloud service providers and technologcal
Many of the technological elements consumers, trading Cloud
leverage Clouds for avanety of services. Contributing to this vision already exist Different
mand is the most common reason to The need for ubiquitous storage and
compute
stakeholders
consider Cloud power on de
an attractive option for computing Ascalable runtime for appications is
ford any further expansion application and system developers that do not have
of existing one. The capability of infrastructure cannot af
of
processingusing Web-basedacCess to documents and their
sophisticated applications is one the appealing factors for end-users
I needto grow my i have a lot of
intrastructure, but infrastructure that
Ido not know for want to rent...
how long... Ihave a surpius of
infrastructurs that
Vant to make use of
Icannot invest in
infrastructure, I
just started my
business... | nave intrastructure
and middleware, and
can host applications
I want to focus on
application logic, and Global Cloud Marketplace
not maintenance and
scalability issues
|have infrastructure
to provide
application services
No capital
Cloudbursting
investments
SaaS
Quality of Service
PaaS
Pay as you go
Internet Green computing
laaS Billing Utilitycomputing
ServiceLevel
IToutsourcing
Elasticity Agreement
Virtual
Datacenters
Scalability IT outsourcing
Provisioning
o ndemand
Privacy and Trust
Security
Virtualization Cloud
Computing?
P for platform,
where the X letter can be replaced by everything: S for software,
XaaS is an acronvm standing for X-as-a-Service on.
for database, and so
Ifor
insfrastructure, Hfor hardware, D
Mastering Cloud Computing
1.1.3 ACloser Look
Cloud computing is helping enterprises,
search organizations shape mnore governments, public and private institutions, as well
effective
well as integration of, Cloud computing and demand-driven computing systems.
Access te
credit card transaction over the Internet. resources and systems are now as
easy as
segments:
Practical examples of such systems exist acrossperforming
all rmad
t has been reported that Animoto, in one single week, scaled from 70 to 8500 servers because of the user demand
and application services. In this Introduction 17
centers onthe vendor's premises.environment, users' data and applications are
deployed on Cloud Data
Public Clouds
Applications
Development and
Runtime Platform
Compute
Cloud
Manager
Private
Hybrid Cloud Storage
Clients
Cloud
Other Govt.
Cloud Services Cloud Services
Private/Enterprise Hybridnter
Public/lnternet Clouds
Clouds
Clouds
Mixed usage of
model private and public
public Cloud
A Clouds:Leasing public
*3rd party, within a company's
multi-tenant Cloud own Data Cente/ cloud services
infrastructure infrastructurefor
when private cioud
and services: internal and/or capacity is
nsutticient
available on partners use.
subscription basis to all.
Private
Public
cloud cloud
Hybrid
cloud
lomputing.
ModelsforCloud
Deplayment
Fig.L4. Major
1.8 Mastering Cloud Computing
from Cloude
Large organizations, owning massive computing infrastructures, can stll benefit
ing by replicating the Cloud IT service delivery model in-house. This has given birth to the concept of
private Cloud, as opposed to the term public Cloud. In 2010, the U.S. federal government, one of the
world's largest consumers of IT spending around $76 billion on more than 10000 systems, has started
agencies with a more efficient e
a Cloud computing initiative aimed at providing the government also driven by the need t f
their computing facilities. The use of Cloud-based in-house solutions is
Institutions such as governmort
ing confidential information within the organization's premises.
banks with high security, privacy, and regulatory concerns prefer to buld and use their own private
enterprise Clouds.
Whenever private Cloud resources are unable to meet users quality-of-service requirements t
the deadline, hybrid computing systems, partially composed by public Cloud resources and privately
owned infrastructures, are created to serve the organization's need. These are often referred as hub
Clouds,which are becoming acommon way to start exploring the possibilities offered by Cloud comput.
ing by many stakeholders.
Platform as a Service
Runtime Environment for Applications
Development and Data Processing Platforms
Examples: Windows Azure, Hadoop, Google AppEngine, and Aneka
Infrastructure as a Service
Virtualized Servers
Storage and Networking
Examples: Amazon EC2, S3, Rightscale, and VCloud
The problem is not as evident as it seems: even though cryptography can help in securing information
the transit
ofdata from the private premises to the Cloud infrastructure,in order to be processed the
aoeds to be decrypted in memory for processing. This is the weak point of the chain: since virtualiza
alows capturing almost transparently the memory pages of an instance, these data could be easily
obtained by a malicious provider.
legal issues may also arise. These are specifically tied to the ubiguitous nature of Cloud comput
ing which spreads computing infrastructure across diverse geographical locations. Different legislation
that third
about the privacy in different countries may potentially create disputes on what are the rightsto give ex
narties (including government agencies) have on your data. American legislation is known
suspect of opera
treme powers to government agencies to aquire confidential data, when there is the
and protect the
tions leading to a threat to national security. European countries are more restrictive
uses Cloud services,
organization
riaht of privacy. Aninteresting scenario comes up when an American
by the government,
which store their data in Europe. In this case, should this organization be suspected
to take control of the data
government
it wouldbecome difficult or even impossible for the American
stored in aCloud Data Center located in Europe.
idea of renting computing services by leveraging large distributed computing facilities has been
The in the early fifties. From there on,
around for a long time. It dates back to the days of the mainframes for the
has created a series of favourable conditions
technology has evolved and refined. This process
realization of Cloud computing. that
of the technologies for distributed computing
Figure 1.6 provides an overview of the evolution
historical evolution, we briefly review five core tech
have influenced Cloud computing. n tracking therealization of Cloud computing. These are:
distributed
nologies that played an important role in the computing computing and utility computing.
systems, virtualization, Web 2.0, service-oriented
2010: Microsoft
|1970: DARPA's TCPAP 1999: Grid Computing Azure
Clusters
..
Mainframes
2000 2010
1980 1990
1960 1970
1950
Technologies.
Fig. L.6. Evolution of Distributed Computing
Mastering Cloud Computing
Distributed Systems
Clouds are essentially large distributed computing facilities that make available their services to thirg
1.2.1
characterization of a
reference, we consider the distributed
system
parties on demand. As a
by Tanenbaum et al. [1):
"Adistributed system is a collection of indeperndent computers that appears to its users as a single
proposed
coherent system. "
This is a general definition, which includes a variety of computer systems but it evidences two veny
fact it is composed of multiple
a distributed system: the
important
true in case
elements
of Cloud
characterizing
components and that these
components are perceived as a sirngle entity by users. This is
computing, where Clouds hide the complex architecture
they relv on larlyindependent
particularly
a single interface to the users. The primary purpose of distributed systems is to share resources and
computing, where this concept is take nd
to utilize them better. This is true in the case of Cloud services) are rented to users
extreme and resources (infrastructure, runtime environments, and
one of the driving factors for Cloud computing has been the availability of large computing facility of IT
service to he
giants (Amazon, Google, etc.), who found that offering their computing capabilities as a
opportunity for better utilization of their infrastructure. Distributed systems often exhibit other propertiex
such as heterogeneity, openness, scalability, transparency, concurrency, continuous availability, and
independent failures. To some extent, these also characterize Clouds, especially in the context of seaL
ability, concurrency, and continuous availability.
Three major milestones have led to Cloud computing: mainframe computing, cluster computing, and
Grid computing.
(a) Mainframes. These were the first examples of large computational facilities leverag
ing multiple processing units. Mainframes were powerful, highly reliable computers specialized for
large data movement and massive lO operations. They were mostly used by large organizations for
bulk data processing such as online transactions, enterprise resource planning, and other operations
involving the processing of significant amount of data. Even though mainframes cannot be consid
ered distributed systems, they were offering large computational power by using multiple processors,
which were presented as a single entity to users. One of the most attractive features of mainframes
was the ability to be highly reliable computers that were "always on" and capable of tolerating failures
transparently. No system shut down was required to replace failed components, and the system
could work without interruptions. Batch processing was the main application of mainframes. Now
their popularity and deployments have reduced, but evolved versions of such systems are stillin use
for transaction processing (.e., online banking, airline ticket booking, supermarket and telcos, and
government services).
(b) ClUsters. Cluster computing [3][4] started as a low-cost alternative to the use of mainframes
and supercomputers. The technology advancement that created faster and more powerful mainframes
and supercomputers has eventually generated an increased availability of cheap commoditymachines
as a side effect. These machines could then be connected by a high-bandwidth network and controled
by specific software tools that manage them as a single system. By starting from the 1980s, clusters be
came the standard technology for parallel and high-performance computing. Being built by commodity
machines, they were cheaper than mainframes, and made available high-performance computing to a
large number of groups, including universities and small research labs. Cluster technology
contributed to the evolution of tools and framework for distributed computing, some of themconsiderably
Condor [5], Parallel Virtual Machine (PVM) [6], and Message Passing Interface (MP) include:
[71. One of the
4 MPlis aspecification for an API that allows
many
protocol that supports point-t0-point and collective computers to communicate with one another. It defines a language
independe
communication. MPI
portability. At present, it is one of the dominant paradigms for developing has been designed for high-performance, scalability. a
parallel applications.
Introduction 113
attractive features of clusters was that the
computational power of commodity machines could belever-
aged to solve problems previously manageable only on
expensive
could be easily extended if more
computational power was required.supercomputers. Moreover, clusters
ol Grids. Grid computing (8]
appeared in the early 90 as an evolution of cluster computing. In
nalogy with the power gria, Grid computing prop0sed a new approach to access large computational
wer huge storage tacilities, and avariety of services.
Users can "consume" resources in the same
OV as they use other utilities such as power, gas, and water. Grids
of geographically dispersed clusters by means of Internet initially developed as aggregation
connection, These
farent organizations and arrangements were made among them to share the clusters belonged to dif
forent from a"large cluster", a computinggrid was a dynamic aggregation of computational power. Dif
nodes. and its scale was nationwide or even worldwide. Several reasons made heterogeneous computing
possible the diffusion
of computing grids: 1) clusters were now resources quite common; ii) they were often under-utilized; ii)
new problems were requiring computational power going beyond the capabilityof single clusters; iv) the
improvements in networking and the diffusion of Internet made possible long distance high bandwidth
connectivity. Allthese elements led to the development of grids, which now serve a multude of users
across the world.
Cloud computing is often considered as the successor of Grid computing. In reality, it embodies
aspects of all of these three major technologies. Computing Clouds are deployed on large datacenters
hosted by a single organization that provides services to others. Clouds are characterized by the fact of
having virtually infinite capacity, being tolerant to failures, and always on as in the case of mainframes.
In many cases,the computing nodes that form the infrastructure of computing Clouds are commodity
machines as in the case of clusters. The services made available by a Cloud vendor are consumed on
apay-per-use basis and Clouds implement fully the utility vision introduced by Grid computing.
1.2.2 Virtualization
soluticns
Virtualization is another core technology for Cloud computing. It encompasses a collection of
runtime
allowing the abstraction of some of the fundamental elements for computing such as: hardware,
years, but its
around for more than 40
environments, storage, and networking. Virtualization has been
application has always been limited by technologies that did not allowand an efficient use of virtualization
virtualization has become a
solutions. Today these limitations have been substantially overcome
fundamental element of Cloud computing. This is particularly true for solutions that provide IT infra
customization and control that makes Cloud
structure on demand. Virtualization confers that degree of
sustainable for Cloud services providers.
computing appealing for users and, at the same time, creation of different computing environments.
Virtualization is essentially a technology that allows by a
environments are named as virtual, because they simulate the interface that is expected
These allows
virtualization is hardware virtualization. This technology
guest. The most common example of operating system. Hardware virtualization allows the
Simulating the hardware interface expected by an stacks are contained
top of the same hardware. These
Co-existence of different software stacks on other. High-performance
virtual machine instances, which operate completely isolated from each of having customized
Inside instances, thus creating the opportunity
Server can host several virtual machine technology that enables Cloud computing solutions deliver
This is the base
Software stack on demand. Amazon EC2, RightScale, VMware vCloud, and others. Togeth
as
Ing virtual server on demands, such network virtualization complete the range
of technologies
storage and
er with hardware virtualization,
for the emulation of IT infrastructure. programs. In the case
technologies are also used to replicate runtime environments for Java or .NET, where
Virtualization such as
virtual machines. which include the foundation of technologies specific program called vir
Or process by a
by the operating system are run and providing a finer control
applications instead of being executed the execution of applications
allows isolating respect to
tual machine. This technigque Process virtual machines offer a higher level of abstraction with complete
On the resource they access. application rather than a
virtualization since the guest is only constituted by an
tne hardware
Mastering Cloud Computing
software stack. This approach is used in Cloud computing in order to provide a platform for scaling ap-
AzZure.
Google AppEngine and Windows
Havingonisolated
demand, such as
and customizable environments with minor impact on performance is what makes
plications
realized through platforms that
technology. Cloud computing isvirtualization serrvices to a
virtualization an attractive
basic concepts described
above and provides
on-demand multitude leveraofgeusersthe. to
as
techthnoltoegeolmansrez
hjeiers iNh
The development of computing. Web services
Cloud
SOC to the realization ofstraightforward
major contribution given bymake such composition
and integrated with
provided the right tools to
environment easier.
World Wide Web (WWW)
im
1.2.5 Utility-Oriented Computing ful
defining a service provisioning model for
Utility computing is a vision of computing, power, applications, and infrastructure
are compute seerite 1
which resources such as storage, compute computing as a utility like natural packaged ant
on apay-per-use basis. The idea of providing gas,
fered
and telephone connection has along history but has become areality today with the advent
computing. Among the earliest forerunners of this vision, we can include the American Scientist. water,oOE
observed:
McCarthy, who in aspeech for the MIT centennial in 1961
then
"If computers of the kind l have advocated become the computers of the future,
someday be organized as apublic utility just as the telephorne system is a public utility. The ra
puter utility could become the basis of a new and important industry."
computing
The first traces of this service provisioning model can be found in the mainframes era. IBMand ote
mainframe providers offered mainframe power to organizations such as banks and government age:
cies throughout their datacenters. The business model introduced with utility computing brought ne
requirements and led to an improvement of mainframe technology: additional features such as ober.
ing systems, process control and user metering facilities. The idea of computing as utility remained ant
extended from the business domain to the academia with the advent of cluster computing. Not ont
businesses but also research institutes became acquainted with the idea of leveraging an external i
infrastructure on demand. Computational science, which was one of the major driving factors for buit
ing computing clusters, still required huge compute power for addressing Grand Challenge problems
and not all the institutions were able to satisfy their computing needs internally. Access to external clus
ters still remained a common practice. The capillary diffusion of the Internet and the Web provided the
technological means to realize utility computing at aworld-wide scale and through simple interfaces. As
already discussed before, computing grids-provided a planet-scale distributed computing infrastructure
that was accessible on demand. Computing grids brought the concept of utility computing to a new levei
market orientation [15]. Being accessible on a wider scale, it is easier to provide a trading infrastructure
where Gridproducts--storage, computation, and services -are bid for or sold. Moreover, e-Commerce
technologies (25]provided the infrastructure support for utilitiy computing. In the late multimedia
nineties, a significant
products.
interest in buying online any kind of good spread in the wide public: food, clothes,
and alsO online services such as storage space and Web hosting. After the dot-com bubble, this interest
result.
reduced in size but the phenomenon made the wide public keener to buy online services. As a
infrastructures for on-line payment through credit card become easily accessitble and well proven.
From an application and system development perspective, service-oriented computing and Service
Oriented Architectures (SOAs) introduced the idea of leveraging external services for performing a
specific task within asoftware system. Applications were not only distributed, but started to be com
posed as a mesh of services provided by different entities. These services, accessible through the
internet, were made available by charging according on usage. Service-oriented computing broadene
the concept of what could have been accessed as autility in a computer system. Not only compuie
power and storage but alsoservices and application components could be utilized and integrated ol
demand. Together with this trend, Quality of Service became an important topic to investigate on.
6 The dot-com bubble is a phenomenon that started in the second half of the nineties and reached its acumen in the yeal
During such period, a large number of companies basing their business on online services and e-Commerce started and qu
expanded without later being able to sustain their growth. As aresult, they suddenly went bankrupt partly because the reve
not enough to cover the expenses made and partly because they did never reach the required number of customers to Ss
Introductign L7
uhese factors contributed to the
development of the concept of utility cormputing and offered
important steps in the realization of Cloud Computing, in which "conputing utilities" vision comes to its
full expression.
Development of a Cloud computing application happens by leveraging platform and frameworks that 1
provide different types of services, from the bare metal infrastructure to customizable applications serv
ing specific purposes.
1.4,4 Hadoop
suited for processing large data sets on commodity
Apache Hadoop is an open source framework that is
MapReduce, an application programming model developed
hardware. Hadoop is an implementation of
Google, which provides two fundamental operations for data processing: map and reduce. The former
by output
by the user, while the latter aggregates the
transforms and synthesizes the input data providedthe runtime environment, and developers need only
provides
obtained by the map operations. Hadoop to be executed. Yahoo! is
provide the input data, and specify the map and reduce functions that needtransforming the project to
to project, and has put consideratble effort in
the sponsor of the Apache Hadoop for data processing. Hadoop is an integral part of the Ya
Cloud computing platform Currently, Yahoo!
an enterprise-ready the company.
supports several business processes of to academic institutions.
hoo! Cloud infrastructure, and world, which is also available
in the
manages the largest Hadoop cluster
se r
chitecture of the runtime has a great degree of flexibility, and simplifies the integration
such as abstraction of a new programming model and associated execution
Services manage most of the activities happening at runtime: scheduling,
storage, and quality of service.
These platforms are key examples of technologies available for
management
execution, vice-orinee wMeniea
of
Review Questions
1What is the innovative characteristic of Cloud computing?
2. Which are the technologies that Cloud computing reles on?
3. Provide a brief characterization of a distributed system.
4, Define Cloud computing and identify its core features.
s. What are the major distributed computing technologies that led to Cloud computing?
6. What is virtualization?
7. What is the major revolution introduced by Web 2.0?
8. Give some examples of Web 2.0 applications.
9. Describe the main characteristics of service orientation.
10. What is utility computing?
11. Describe the vision introduced by Cloud computing.
model.
12. Briefly summarize the Cloud computing reference
13. What is the major advantage of Cloud computing?
computing.
14. Briefly summarize the challenges still open in Cloud
differentiate from traditional software development?
15. How does Cloud development