0% found this document useful (0 votes)
3 views

CC module 1

cc module 1 notes

Uploaded by

peloric692
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

CC module 1

cc module 1 notes

Uploaded by

peloric692
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

1 Introduction

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.

1.1 CLOUD COMPUTING AT A GLANCE


In 1969, Leonard Kleinrock, one of the chief scientists of the original Advanced Research Projects
Agency Network (ARPANET) which seeded the Internet, said:
"As of now, computer networks are still in their infancy, but as they grow up and become sophisticat
ed, we will probably see the spread of 'computer utilities' which, like present electric and telephone
utilities, will service individual homes and offices across the country."
Thisvision of computing utilities based on a service provisioning model anticipated the massive trans
1ormation of the entire computing industry in the 21s century whereby computing services will be
readily available on demand, like other utility services such as water, electricity, telephone, and gas
avalable in today's society. Similarly, users (consumers) need to pay providers only when they access
Masterng loud Computing
the computingservices In addition, consumers no longer need to invest heavily, or encounter ae
ties in building and maintaining complex |T infrastructure
In such a model, users access services based on their requirements without regard to whe
services are hosted. This model has been referred to as utility computing, or recently (since
Cloud computing. The latter term often denotes the infrastructure as a"Cloud" from which 2007) as
and users can acess applications as services from anywhere in the world on businesses
demand. Hence,
computing can be classified as a new paradigm for the dynamic provisioning of computing Cloud
supported by state-of- the-art data centers employing virtualization technologies for
effective utilization of resources. consolidationservicandes
Cloud oomputing allows renting infrastructure, runtime environments, and services on pay e
basis This principle finds several practical applications, and then gives different images of CIoud
puting to different people. Chief information and technology officers of large enterprises see
ties for scaling on demand their infrastructure and size it according to their business needs. opportun:-
End users
leveraging Cloud computing services can access their documents and data at anytime, anywhero
from any device connected to the internet. Many other points of view exist!. One of the most diiO
Views of Cloud computing can be summarized as follows:

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

want to access and


edit my documents
and photos from
everywhere.

Fig. 1.. Cloud Computing Vision


intervention. a person (or a
of such services is mostly done by human
all these cases. the discovery needs. In a near future.,
identify offerings that meet his or her
Internet to simply entering our
eam of people) looks over the find the solution that matches our needs by
possible to market
We imagine that it will be
market that trades Cloud-computing services. The existence of suchsystems,
Tequest in a global digital integration into eXisting software
automation of the discovery process and its systems. The
WIlenable the
leverage Cloud resources in their applications and
transparently
i s allowing users to
Mastening Doud Computing
existence of a global platform for trading Cloud services will also help service providers to become more
visible, and therefore to potentially increase their revenue. Aglobal Cloud market also reduces the bar-
riers between service consumers and prOviders: it is no longer necessary to belong to only one of these
two categories. For example, a Cloud provider might become a Consumer of a Competitor service in
customers.
order to fulfill its promises to introduced with the establishment of a global Cloud
These are all possibilities that are
market place and by defining an effective standard for the unified representation of Cloud services as
well as the interaction among different Cloud technologies. A considerable shift towards Cloud Com- computing
puting has already been registered, and its rapid adoption facilitates its consolidation. Moreover, by
to reduey
concentrating the core capabilities of Cloud computing into large datacenters, it is possible
remove the need for any technical infrastructure on the service consumer side. This approach provid
mutinle i
oDDortunities for optimizingdatacenter facilities and fully utilizing their capabilities to servecontritbitin
emission, thus
ers. This consolidation model will reduce the waste of energy and carbon
a greener IT on one end, and increase the
revenue on the other end.

1.1.2 Defining aCloud differert


Cloud computing has become a popular buzzword and it has been widely used to refer to
technologies, services, and concepts. It is often associated with virtualized infrastructure or hardware
on demand, utility computing, IT outsourcing, platform and software as aservice, and many other things
that noware the focus of the IT industry. Figure 1.2 depicts the plethora of different notions one portrays
when defining Cloud computing.

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?

Fig. 1.2. Cloud Computing


Technolagies. Concepts. and ldeas.
Thoterm "Cloud has Introduction L.5
historically
network in system diagrams. been
It then used in the telecommunication industry as an
This meaning also applies to Cloud became the symbol of the most popular Computerabstraction network:
of the
Internet.
Internet plays a fundamental rolecomputing, which refers to an
latform through whichmany Cloud
in Cloud computing since itInternet-centric
represents
way of doing comput-
either
ie also reflected into the computing services are delivered and made the medium or the
definition given by Armbrust et al. [281: accessible. This aspect
"Cloud computing refers to both the
bordware and system software in the applications that
delivered as services over the Internet, and the
datacenters provide those services."
This definition describes Cloud
computing as a phenomenon touching on the entire stack: from
underlving hardware to the high level software services the
èverything as aservice, mostly reterred as XaaS,whereand applications. It introduces the concept of
the different components of a system can be
delivered, measured and consequently priced, as a service: IT infrastructure, development platforms,
databases, and so on. This new approach significantly influences not only the way in which we build
software, but also the way in which we deploy it, make it accessible, design our IT infrastructure, and
even the way in which companies allocate the costs for IT needs. The approach fostered by Cloud com
puting is global: it covers both the needs of a single user hosting documents in the Cloud and the ones
of a CIO deciding to deploy part of or the entire IT infrastructure in public Cloud. This notion of multiple
parties using shared Cloud computing environment is highlighted in a definition proposed by American
National Institute of Standards and Technology (NIST):
"Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a
shared pool of configurable computing resources (e.g. networks, servers, storage, applications, and
services) that can be rapidly provisioned and released with minimal management effort or sevice
provider interaction."
Another important aspectof Cloud computing is its utility-oriented approach. More than any other trend
indistributed computing, Cloud computing focuses on delivering services with a given pricing model; in
most of the cases a"pay-per-use" strategy. It makes possible to access online storage, to rent virtual
hardware, or to use development platforms and pay only for their effective usage, with no or minimal
upfront costs. All these operations can be performed and billed simply by entering the credita card de
to provide different
tails, and accessing the exposed services through a Web browser. This helps us we can define three
and more practical characterization of Cloud computing. Accordingcomputingto Reese (29],
Cloud style:
criteria to discriminate whether a service is delivered in the
(non-proprietary) or Web services API.
The service is accessible via a Web browser
Zero capitalexpenditure isnecessary to get started.
You pay only for what you use as you use it.
class
many Cloud computing services are freely available for single users, enterprise
EVen though scheme. In this case, users subscribe to the service
Services are delivered according a specific pricingLevel Agreement (SLA) defining quality of service pa
and establish with the service provider a Service
service is delivered. The utility-oriented nature of Cloud computing is clearly
rameters under which the
expressed by Buyya et al. (30] :
distributed system consisting of a collection of interconnected and
A Cloud is a type of paralel anddynamically provisioned and presented as one or more unified com
Virualized computers that are agreements established through negotiation between the
service-level
puung resources based on
service provider and consumers.

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

(a) Large enterprises can offload some of


based systems. Recently, the New York Times has their activities to Cloud.
converted its digital
considerable amount of computinglibrary
editions into aWeb friendly format. This required a about past
period of time. By renting Amazon EC2 and S3 power for a shot
Cloud resources, it performed this task in 36 hours. and
relinguished these resources without any additional costs.
(b) Small enterprises and start-ups can afford to
results their ideas more quickly without translate into businesS
is acompany that creates videos out of
images, music, and video
excessive
upfront costs. Aimoto
process involves aconsiderable amount of storage and fragments submitted by users. The
backend processing required for
Animoto does not own a single server producing
video, which is finally made available to the user. the
computing infrastructure entirely on Amazon Web Services, which is sized on and bases its
overallworkload to be processed. Such Workload can vary a lot and demand according to the
investment is clearly not an effective solution and Cloud requires instant scalability'. Upfront
alternative. computing systems become an appropriate

(c) System developers can concentrate on the business logic rather


than dealing with the complexity of infrastructure
scalability. Little Fluffy Toys is a management and
company in London that
users with information about nearby rental bicycle services. The has developed a widget providing
company has managed to back the
widget's computing needs on Google AppEngine and be on market in only one week.
(d) End users can have their documents accessible from everywhere
and any device. Appie iCloud is a service that allows users to have their documents stored in
the Cloud and access them from any device they connect to it. This makes it possible taking a picture
with a smart phone, going back home and editing the same picture on your laptop, and having it shown
updated on their tablet. This process is completely transparent to the users who do not have to set up
cables and connect these devices with each other.
How allof this is made possible? The same concept of IT services on demand whether they are
computing power, storage,or runtime environments for applicationson a pay-as-you-go basis accom
modates these four different scenarios. Cloud computingdoes notonly contribute with the opportunity of
easily accessing IT services on demand, but also introduces a new thinking about how IT services and
resources should be perceived: as utilities. A bird eye view of Cloud computing environment is shown
in Fig. 1.3.
The three major models for deployment and accessibility of Cloud computing environments are:
public Clouds, private/enterprise Cloud, and hybrid Clouds (see Fig. 1.4). Public Clouds are the most
Gommon deployment models in which necessary IT infrastructure (e.g., virtualized Data Center) is
established by a 3rd party service provider who makes it available to any consumer on subscription
basis. Such Clouds are appealing to users as they allow them to quickly leverage compute, storage

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

Fig. 1.3. ABird's Eye View of Cloud Computing.

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.

1.1.4 Cloud-Computing Reference Model


Afundamental characteristic of Cloud computing is the capability of delivering on demand a variety
of IT services, which are quite diverse from each other. This variety creates a different perception of
what Cloud computing is among users. Despite this, it is possible to classify Cloud computing services
offerings into three major categories: Infrastructure-as-a-Service (laaS), Platform-as-a-Service (PaaS).
and Software-as-a-Service (SaaS). These categories are related to each other as described in Fig.
1.5, which provides an organic view of Cloud computing. We refer to this diagram as "Cloud Comput
ing Reference Model" and we will use it throughout the book to explain the technologies and introduce
the relevant research on this phenomenon. The model organizes the wide range of Cloud computing
services into a layered view that walks the computing stack from bottom to top.
Web 2.0 Software as a Service
Interfaces
End-user applications
Scientific applications
Office automation, Photo editing,
Googledocs CRM, and Social Networking
Examples: Google Documents, Facebook, Flickr, and Salesforce

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

Fig. 1.5. Cloud-Computing Reference Model.


At the base of the stack,
Infrastructure-as-a-Service
form of virtual hardware, storage,
solutions deliver infrastructure on demand in the
and networking. Virtual hardware is utilized to provide
demand in the form of virtual machines instances. These are compute on
created on users' request on the provider s
infrastructure, and users are given tools and interfaces to configure the software stack
virtual machine. The pricing model is usually defined in terms of installed in the
dollars per hours, where the hourly cost
.infuenced
enace or
by the
characteristiCs of the virtual Introduction 19
object hardware. Virtual storage is delivered in the form of
ene The latter is store.
a more
The former
complements a virtual raw
hardware offering that requires persistent
tifes the collection of high-level abstraction for storing entities
services that manage the networking rather than files. Virtual networking
nectivity towards the Internet or private networks. among virtual instances and their con
Dlatform-as-a-Service
kone environments on demand solutions are the next step in the stack. They
deliver scalable and
re middleware platform that isthat host the execution of applications, These services are elastic run
are deployed and executed. It is responsible for creating the abstract backed by a
the responsibility of the service environment where applications
manage fault-tolerance, while users are provider to
to focus on the logic of the provide scalability and to
requested
leveraging the provider's APls and libraries. This approach application developed by
Cloud computing is leveraged but also increases the level of abstraction
At the top of the stack, constrains the user in a more controlled environment. at which
Software-as-a-Service
Most of the common functionalities of desktop
solutions provide applications and services on demand.
agement, photo editing, and customer relationship applications--such as office automation, document man
provider's infrastructure, made more scalable, andmanagement
accessible
(CRM) software-are replicated on the
through a browser on demand. These
applications are shared across multiple users, whose interaction is isolated from the other users. The
SaaS layer is also the area of soCial networking Websites, which
to sustain the load generated by their popularity. leverage Cloud-based infrastructures
Each layer provides a different service to users. laaS solutions are
sought by users that want to
leverage Cloud computing from building dynamically scalable computingsystems requiring a specific
software stack. laaS services are therefore used to develop scalable Web sites or for background pro
cessing. PaaS solutions provide scalable programming platforms for developing applications, and are
more appropriate when new systems have to be developed. laaS solutions target mostly end users.
who want to benefit from the elastic scalability of the Cloud without doing any software development,
installation,configuration, and maintenance. This solution is appropriate when there are existing Saas
services that fit user's needs (i.e., email, document management, CRM, etc.) and a minimum level of
customization is needed.

1.1.5 Characteristics and Benefits


Cloud computing has some interestingcharacteristics that bring benefits to both Cloud Service Consumers
(CSCs) and Cloud service providers (CSPs). They are
no upfront commitments;
on demand access;
nice pricing:
simplified application acceleration and scalability;
efficient resource allocation;
energy efficiency; and
seamless creation and the use of third-party services.
systems and technologies is the increased
The most evident benefit from the use of Cloud computingand operational costs related to |T software
costs
economical return due to the reduced maintenance software and infrastructure, are turned into
assets, namely
and infrastructure. This is mainly because IT used and not upfront. Capital costs are costs associ
are paid for as long as they are
Utlity costs, which Cloud computing, IT
that need to be paid in advance to start a business activity. Before
ated to assets
software generated capital costs, since they were paid upfront to afford acomputing
intrastructure and business is then
Intrastructure enabling the business activitiescosts. of an organization. The revenue of the capital costs, since
over time for these Organizations always minimize
compensate
Utlized to
depreciable values. This is the case of hardware: a server bought today
hey are often associated to than its original price when it will be replaced by a new
have amarket value less created by
for 1000 dollars will organizations have also to compensate this depreciation
hardware. In order to make profit,
Mastering Cloud Computing capital Costs is then
L0

time, thus reducing transforms IT


obtained from revenue. Minimizing
the net gaininfrastructure and software into
utilities. thus significantly
an opportunity for
fcontundament
small organizations and ributinagl.
in
Cloud computing Moreover,it also provides can comfortably grow with
increasing the net gain. investmentsto start their business infrastructure and the application it.
but they starFit-nualps:y,.
responsibilityservices,
large the
these do not need significantly reduced: by renting maintenance. This task is the
maintenance costs are
anymore for their maintenanCe coct of the
responsible scale, can bear
organizations are not economies of
provider, who, thanks to the software systems is another significant benefit. Since
systems,orga-
Cloud service
and structuring their software
Increased agility in defining can more dynamically andflexibly compose with-
nizations rent IT services,
they
assets. There is a reduced need for capacity planning, since
by capital costs for IT demand quite rapidly. For example,
out being constrained unplanned surges in when there is no organiza-
react to
Cloud computing allows to to process workload spikes, and dismiss them longer need
tions can add more servers the potentially huge capacity of Cloud corm
advantage. Byleveraging the 9
Ease of scalability is another capability more easily. Scalability can be leveraged across e
organizations can extend their IT methods to provision customized hardware
providers offer simple proe
computing stack. Infrastructure Platform-as-a-Service providersoffer run-timeenvironment and els
tegrate it into existing systems. scale applications. Software-as-a-Service offerings can be
ming models that are designed to to provision hardware, or to program application for
scalabilih,
sized on demand without requiring users operatinn
users can benefit from Cloud computing by having their dataand the capability of and senices
End Information
it always available, from anywhere, atusers any time, and through multiple devices. them accessible fro
by Web-based interfaces that make
stored in the Cloud are exposed to processing capabilities (i.e., office automation
portable devices as wellas desktops at home. Since the
on) also reside in the Cloud, end users can
features, photo editing, information management, and so considerable software investments. The
perform the same tasks that previously were carried out with
service provider shares its costs
cost for such opportunities is generally very limited, since the Cloudbetter utilization of the shared infra
across al the tenants that he is servicing. Multi-tenancy allows for a and services into
structure that is kept operational and fullyactive. The concentrationof IT infrastructureresource allocation
large datacenters also provides opportunity for considerable optimization in terms of
and energy efficiency, which eventually can lead to a less impacting approach on the environment.
Finally, service orientation and on demand access create newopportunities for composing systems
and applications with a flexibility not possible before Cloud computing. New service offerings can be
Created by aggregating together existing services and concentrating on added value. Since it is possible
to provision on demand any component of the computing stack, it is easier to turn ideas into products,
with limited costs and by concentrating the technical efforts on what matters: the added value.

1.1.6 Challenges Ahead


As any new technology develops and becomes popular, new issues have to be faced. Cloud computing
is not an exception and new interesting problems and challenges are posed to the Cloud community.
including IT practitioners, managers, governments, and regulators.
Besides the practical aspects, which are related to configuration, networking, and
Computing systems, anew set of challenges concerning the dynamic provisioning of Cloud sizing of Clouu
services and resources arises. For example, in the computng
Infrastructure-as-a-Service
Sources need to be provisioned and for how long they should be used, in order to domain, how many
Technical challenges also arise for Cloud service providers for the maximize the benelk
infrastructures, and the use of virtualization technologies on top of them. management of large coip
concerning the integration of real and virtual Also, issues and challo
perspectives, such as security and legislation. infrastructure need to be taken into account Trom an
Security in terms of confidentiality, secrecy, and
er important
challenge. Organizations do not own the protection of data in a Cloud environment, S a
store
information. This condition poses challenges for infrastructure they use to process data and
reveal. Therefore, assurance on the confidential data, which organizations cannot affordto
give a minimum guarantee on the confidentiality data and compliance to
of standards, which
treatment of information on secutity
Intraduction

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.

1:2 HISTORICAL DEVELOPMENTS

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

1984: IEEE 802.3 1997: IEEE 2008: Google


Ethernet & LAN 802.11 (Wi-Fi) AppEngine
1966: Flynn's Taxonomy 1989:TCPAP I 2007: Manjrasoft Aneka
SISD, SIMD, MISD, MIMD IETF RFC 1122

1969: ARPANET 2005: Amazon


1984: DEC's
T

VMScluster AWS (EC2, S3)


1951: UNIVACI,
First Mainframe 1975: Xerox PARC 2004: Web 2.0
Invented Ethernet
1990: Lee-Calliau
Clouds www, HTTP, HTML
1960: Cray's First
Grids Supercomputer

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

across the globe.


1
1.2.3 Web 2.0
The Web is the primary interface through which Cloud computing deliver its services. At present fime
it encompasses a set of technologies and services that facilitate interactive information sharing, col-
laboration, user-centered design, and application composition. This has transformed the Web intto arich
platform for application development. Such evolution is known as "Web 2.0". This term captures a new
through the Internet, and provide
way in which developers architect applications, deliver services
user experience for their users.
Web 2.0 brings interactivity and flexibility into Web pages, which provide enhanced user eves
ence by gaining Web-based access to all the functions that are normally found in desktop applications
These capabilities are obtained by integratinga collection of standards and technologies such as XM
Asynchronous Javascript and XML (AJAX),Web Services, and others. These technologies allow builg.
ing applications leveraging the contribution of users, who now become providers of content. Also, the
capillary diffusion of the Internet opens new opportunities and markets for the Web, whose services can
now be accessed from a variety of devices: mobile phones, car dashboards, TV sets, and others. This
new scenarios require an increased dynamism for applications, which is another key element of this
technology. Web 2.0 applications are extremely dynamic: they improve continuously and new updates
and features are integrated at a constant rate, by following the usage trend of the community. There is
no need to deploy newsoftware releases on the installed base at the client side. Users can take advan
tage of the new software features simply by interacting with Cloud applications. Lightweight deployment
and programming models are very important for efective support of such dynamism. Loose coupling
is another fundamental property. New applications can be "synthesized" simply by composing existing
services and integrating them together, thus providing added value. By doing this, it becomes easier to
follow the interests of users. Finally, Web 2.0 applications aim to leverage the long tail of Internet users
by making themselves available to everyone either in terms of media accessibility or cost.
Examples of Web 2.0 applications are Google Documents, Google Maps, Flickr, Facebook, Twitter,
YouTube, de..cious, Blogger, and Wikipedia. In particular,social networking Websites take the biggest
advantage from Web 2.0. The level of interaction in Web sites like Facebook or Flickr would not have
been possible without the support of AJAX, RSS, and other tools that make the user experience incred
ibly interactive. Moreover, community Websites harness the collective
intelligence of the community
which provides content to the applications themselves: Flickr provides advanced
digital pictures and videos, Facebook is a social networking Website leveraging the services for storing
providing.content, and Blogger as any other blogging Website provides an online diaryuser activity for
that is fed by
the users.
This ida of the Web as a transport that enables and
Darcy DiNuccif and started to fully realize in 2004. enhances interaction was introduced in 1999 by
of Cloud computing,which strongly leverages Web 2.0. Today, it is a mature platform for supporting the need
Internet Applications (RIAs) are fundamental for
Applications and frameworks for delivering Rich
From asocial perspective, Web 2.0 making Cloud services accessible to the wider public.
applications definitely contributed to make people more accustomed
Darci DiNucci in a
into a browser windowcolumn for Design &New Media
in essentially static magazine describes the Web as follows: "The Web we
beginning screenfulls,
toappear, and we are just starting to is only an embryo of the
Web to come. The first
know now, which loa0s
of text and graphics but as a see how that embryo might develop., The glimmerings of Web 2.0 d
transport mechanism, the ether Web will be understood not as
screen, [.] onyour TV set [..] your car through It will [...]appear on yourscreeniu
OVen "
dashboard [..] your cell phone which interactivity
[...] hand-held happens.
game machines [..j maybe even your Compu
Miero
tothe use Internet intheir everyday
of
paradigm lives, and opened the path Introduchon
as a where even the IT
infrastructure is offered through a Webacceptance
to the
interface
of Cloud
computing
1.2.4 Service-Oriented Computing
Service orientation is the core
reference
concept of services as main building model for Cloud
CUuting (SOC) supports the blocks of
application computing systems This approach adopts the
and system
applications and systems 19). development of rapid, low-cost, lexible,development Service Oriented
Sevice is an abstraction interoperable, and evolvable
representing
perform anyfunction: this can be anything from
a
self-describing and platform agnOsic
lk anv piece of code that a simple component that can
function to a complex business
h anetwork pertorms atask can be turned into a service and exp0se its process Virtu
accessible
ming language independent, andprotocol. Aservice is supposed to be loosely functionalities
location coupled, reusable,
transparent. Loose coupling allows services to serveproqram
eenarios more easily and makes them reusable. different
nices accessibility. Thus, awider range of
clients,
Independence from a specific platform increases
consume them in location transparent manner, can bewhich can look up services in global registries and
served. Services are composed and aggregated
into aSenvice-Oriented Architecture (SOA) [27],
to provide end users or other entities which is a logical way of organizing software
systems
discoverable interfaces.
distributed over the network with services through published and
Service-Oriented Computing introduces and diffuses two important
mental for Cloud computing: Quality of Service (QoS) and Software as concepts, which are also funda
a Service (SaaS).
Quality of Service identifies a set of functional and non-functional attributes that can be used
to evaluate the behavior of a service from different perspectives. These could be performance
metrics such as response time, or security attributes, transactional integrity, reliability, scalability.
and availability. QoS requirements are established between the client and the provider between
a Service Level Agreement (SLA)that identifies the minimum values (or an acceptable range) for
the QoS attributes that need to be satisfied upon service call.
The concept of Software as a Service introduces a new delivery model for applications. It has
been inherited from the world of Application Service Providers (ASPs). These deliver software
services-based solutions across the wide area network from a central data center and make them
available on subscriptionor rental basis. The ASP is responsible for maintaining the infrastructure
and making available the application, and the client is freed from maintenance cost and difficult
upgrades. This software delivery model is possible because economies of scale are reached by
with Service Oriented
means of multi-tenancy. The SaaSapproach reaches its full development priced singularly.
Computing, where loosely coupled software component can be exposed and
complex business processes and trans
rather than entire applications. This allows the delivery ofcomposed
be on the fly and services to be
actions as aservice, while allowing applications to
reused from everywhere by anybody.
orientation is represented by Web Services (wS) [211.
One of the most popular expressions of serviceWorld Wide VWeb, by making it consumable by appiica
These introduce the concepts of SOC into the components exposing functionalities accessible
humans. Web services are software
ions and not only
pattern that goes over the HTTP protocol. The interface of aWeb service
Dy using a method invocation
inferred by metadata expressed through the Web Service Description Lan
vdn be programmatically language that defines the characteristics of the service and all the
guage (WSDL) [221: this is an XMLdescriptions and return type, exposed by the service. The interaction
gloas, together with parameters XML lan
Protocol(SOAP) [231. This is anand
throuah Simple Object Access WSDL
WIth Web services happens service method and collect the result. By using SOAP Web. The
guage defining how to invoke a Web accessible as the World Wide
platform independent and
Over HTTP, Web services
become
services are controlled by the W3C, while among the
concerning Web (25).
Slandards and specifications developing Web services, we can note ASP.NET (24] and Axis
most popular architectures for
1.16 Mastering Claud Computing
in terms of distributed services that can be composed
systems

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.

13 BUILDING CLOUD-COMPUTING ENVIRONMENTS


The creation of Cloud-computing environments encompasses both the developrnent of applications
and systems that leverage Cloud-computing solutions and the creation of frameworks, platforms. and
infrastructures delivering Cloud-computing services.

1.3.1 Application Development


Applications that leverage Cloud-computing benefit from its capability of dynamically scaling on demand.
One class of applications that take the biggest advantage from this feature is Web applications. Their
nerformance is mostly influenced by the workload generated by varying user demands. With the diffusion
f Web 2.0 technologies, the Web has become a platforn for develcping rich and complex applications
including enterprise applications that now leverage the Internet as the preferred channel for service de
Rvery and user interaction. These applications are characterized by complex processes that are triggered
behind the Web
by the interaction with users and develop through the interaction between several tiers
infrastructure and
front-end. These are the applications that are mostly sensible to inappropriate sizing of
service deployment or variability in workload. advantage by leveraging Cloud
Another class of applications that can potentially gain considerable
These can be either data-intensive or
computing is represented by resource-intensive applications. of resources is required to com
compute-intensive applications. In both cases, a considerable amount large amount of resources is
noticing that the
plete execution in areasonable time frame. It is worth scientific applications can require huge
example,
not needed constantly or for along duration. For once in a whilr, so it is not feasible to buy the
computingcapacity to perform large scale experiments
computing can be the solution. Resource intensive
infrastructure supporting them. In this case, Cloud characterized by batch processing.
applications are not interactive and they are mostly dynamic scaling across the entire stack of
provides solution for on demand and
Cloud computing compute power, storage. and net
methods for renting
computing. This is achieved by (a) providingdesigned for
provid
scalability and dynamic sizing; and (c) hosted
working; (b) offering runtime environments are completely
services that mimics the behavior of desktop applications but that
orientation, which allow a
ing application All these capabilities leverage service
provider side. via simple
and managed on the
into existing systems. Developers access such serviceswell-known
simple and seamless integration through REST Web services. These have become
implemented systems practi
Web interfaces, often
development and the management of Cloud applications and
abstractions,making the
cal and straightforward.
Infrastructure and System Development
1.3.2 virtualization, service orientation, and
technologies en
Web 2.0 form the core applications and
Distributed computing,
Cloud services from anywhere in the globe. Developing Moreover, new
abling the provisioning of Cloud requires knowledge across all these technologies.
Systems that leverage the and development standpoints.
challenges need to be addressed from design
Cloud computing, because Cloud systems are
foundational model for accessibility of resources ir
Distributed computing is aadministrative tasks mostly connected to the provisioned
distributed systems. Besides systems-where new nodes and services are
Cloud, the extreme dynamism of Cloud
engineers and developers. This characteristic is pretty
the the major challenge for middleware layer of computing sysis
on demand-constitutes solutions and mostly addressed at the remove resources, but it
peculiar toCloud computing capabilities to add and
Infrastructure-as-a-Service solutions provide the
ten.
Mastering Cloud Computing
1.18 make use of such opportunity
on this scalable infrastructure to core
who deploy Platform-as-a-Service solutions embed into their
system
up tothose
dom and effectiveness. resources. These offering algorithmswith wis.
can be
rules that control the provisioning process and the lease of
subject to fine control.
Integration between Cloud either complete
resources
and
dem
transparent to developers or element of concern. of s
Webdeployment
system is another
2.0 technologies constitute the interface through which Cloud computing services are deliy,
interfaces through the Web
exsing serv
velo
provisioned. Beside theinteraction with rich repl
ered,
Web
managed, and
have become
servicesTherefore,
standpoint. primary access
the orientation
service
point toCloud computing systems from aprogrammati
is the underlying paradigm that defines the architecture browser mer
the
Cloud computing system. Cloud computing is often summarized with the acronym XaaS- -everything a, Jav
aservice that clearly underlines the central of service orientation. Despite the absence of a unique stan.
dard for accessing the resources serviced by different
Cloud providers, the commonality of 1.
smoothens the learning curve and simplifies the integration of Cloud computing into
Cloud
existing syster
computing. This
technolog Mic
Virtualization is another element that plays afundamental role in
is a core feature of the infrastructure used by Cloud providers. As discussed before,te chnology
a concept more than 40 years old, but Cloud computing introduces new challenges, especially in te
virtualizatio
prc
Ap
plie
management of virtual environments whether they are abstraction of virtual hardware or of a runti ro
a
environment. Developers of Cloud applications need to be aware of the limitations of the selected viny VI
alization technology and the implications on the volatility of some components of their systems.
These are allconsiderations that influence the way in which we program applications and systems
based on Cloud computing technologies. Cloud computing essentially provides mechanisms to address C
surges in demand by replicating the required components of computing systems under stress (i.e. hea.
ily loaded). Dynamism,scale, and volatility of such components are the main elements that should quide 1
the design of such systems.

1.4 COMPUTING PLATFORMS AND TECHNOLOGIES t

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.1 Amazon Web Services (AWS)


AWS offers comprehensive Cloud laaS services, ranging from virtual
to complete computing stacks. AWS is mostly known for its compute compute, storage, and networking
and storage on demand services,
namely Elastic Compute Cloud (EC2) and Simple Storage Service (S3). EC2 provides users with cus
tomizable virtual hardware that can be used as the base infrastructure for deploying
on the Cloud. It is possible to choose from a large variety of virtual computing systems
hardware
GPU and cluster instances. EC2 instances are deployed either by using the AWS configurations including
console, which is a
comprehensive Web portal for accessing AWS services, or by using the Web services
several programming languages. EC2 also provides the capability of saving a specific APl available for
as image, thus allowing users to create their own running instance
templates for deploying systems. These templates
are stored into S3 that delivers persistent storage on demand. S3 is
container of objects that are stored in binary form and can be enriched organized into buckets; these are
with attributes, Users can store
objects of any size, from simple files to entire disk images and have them
Besides EC2 and S3, a wide range of services can be leveraged to build accessible from everywhere.
cluding: networking support, virtual computing systems r
caching systems, DNS, database (relational and not) support, and others.
1.4.2 Google AppEngine
Google AppEngine is ascalable runtime environment mostly devoted to
These take advantage of the large computing executing Web applicaa
infrastructure of Google to dynamically scale a
Introduction 1.19
demand varies over time. AppEngine provides both a secure execution environment and a collection
of services that simplify the development of scalable and high-performance Web applications. These
services include: in-memory caching, Scalable data store, job queues, messaging, and cron tasks. De-
velopers can build and test applications on their own machine by using the AppEngine SDK, which
replicates the production runtime environment, and helps test and profile applications. Once develop-
ment is complete developers can easily migrate their application to AppEngine, set quotas to containing
the cost generated. and make it available to the world. The languages currently supported are Python,
Java, and Go.

1.4.3 Microsoft Azure


Microsoft Azure is a Cloud operating system and a platforn for developing applications in the Cloud. It
rovides a scalable runtime environment for Web applications and distributed applications in general.
Anolications in Azure are organized around the concept of roles, which identify a distribution unit for ap
nlications andembody the application's logic. Currently, there are three types of role: Web role, worker
aa and virtual machine role. The Web role is designed to host a Web application,processing,
the workerandroletheis
amore generic container of applications and can be used to perform workload
customized
virtual machine role provides a virtual environment where the computing stack can be fullythat comple
additional services
including the operating systems. Besides roles, Azure provides a set of
(relational data and blobs), networking, caching.
mentapplication execution such as support for storage
content delivery, and others.

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

1.4.5 Force.com and Salesforce.com applications. The platform is


enterprise
platform for developing social management.
Force.com is a Cloud computingSoftware-as-a-Service solution for customer relationship
SalesForce.com-a complete set of compo
the basis of applications by composing ready-to-use blocks: a to develop your own
Force.com allows creating is alsO possible
available. It
activities of an enterprise are your applications. The platform
provides
nents supporting all the available in AppExchange into definition of busi
Components or integrate those applications: from the design of the data layout, to the completely
platform is
complete support for developingthe definition of the user interface. The Force.com implemented in the
and those
ness rules and workflows, provides complete access to its functionalities, and
hosted on the Cloud, and
Web services technologies.
hosted applications through
1.4.6 Manjrasoft Anekaplatform for rapid creation of scalable applications, and
collection of
Cloud application It supports a
Manjrasoft Aneka[165]is a types of Clouds ina seamless and elastic manner. environment that can be
various runtime
neir deployment on developing applications anda distributed
computers, and Cloud resources).
abstractions for desktop threads.
programming
heterogeneous hardware (clusters, networkedtheir application: tasks, distributed
deployed on different abstractions to design
Developers can choose
1.20 Mastering Cloud Computing
se
and map-reduce. These applications are then executed on the distributed
service-oriented
vironment, which can dynamically integrate additional resource on demand. The

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

Cloud computing.ac ountennvgronrtkeyt ir:


into the three major market segments indentified in the reference model: These ns
Innfras
Platform-as-a-Service, and Software-as-a-Service. lIn this book, we use Aneka as a
for discussing practical implementations of distributed applications. We present
Clouds leveraged applications
can be by using various programming
built the
tru c tu r e-
reference
different a s
models
-
ways
a- Seri s
in
and
provided by Aneka.
abstrair
Summary
In this chapter, we discussed the vision and
opportunities of Cloud computing along with its charact.
istics and challenges. The Cloud-computing paradigm emerged as result of the maturity and conver.
gence of several of its supporting models and technologies,
Web 2.0, service orientation, and utility computing. namely distributed computing, virtualizaies
There is no single view on this phenomenon. Throughout the book,
interpretations, and implementations of this idea. The only element that isweshared
explore different definitions
among allthe diferem
views of Cloud computing is that Cloud systems support
they are virtual infrastructure, runtime environments, or dynamic provisioning of IT services (whether
cost model to price these services. This concept is appliedapplication services) and adopts a utility-based
ables the dynamic provisioning of IT infrastructure and runtime across the entire computing stack and en
ed platforms for the development of scalable environments in the form of Cloud-host
applications
the Cloud Computing Reference Model. This model identifies
and their services. This vision is what inspires
three major market segments (and service
offerings) for Cloud computing: Infrastructure-as-a-Service (laaS),
Software-as-a-Service (Saa S). These directly map the broad classificationPlatform-as-a-Service (PaaS),
about the different typeandof
services offered by Cloud computing.
The long term vision of Cloud computing is to fully realize the utility model that drives its service of
fering. It is envisioned that new technological developments and the increased familiarity with Cloud
Computingdelivery models, will lead to the establishment of a global market for trading computing utili
ties. This area of study is called Market-Oriented Cloud Computing, where the term "market-oriented"
further stresses the fact that Cloud computing services are traded as utilities. The realization of this
vision is stillfar from reality, but Cloud computing has already brought economic, environmental, and
technological benefits. By turning IT assets into utilities, it alows organizations to reduce operational
costs and increase their revenue. This and other advantages, have also downsides that are of diverse
nature. Security and legislation are two of the challenging aspects of Cloud computing that are beyond
the technical sphere.
From the perspective of the software design and development, newchallenges arise in engineering
computing systems. Cloud computing offers a rich mixture of different technologies, and harnessing
them is a challenging engineering task. It introduces both new opportunities, and new techniques a/nd
strategies for architecting software applications and systems. Some of the key elements that have to Be
taken into account are: virtualization, scalability, dynamic provisioning. big datasets, and cost mooe
In order to provide apractical grasp on such concepts, we will use Aneka as a reference platform 10
illustrating Cloud systems and application programming environments.
Introduction 121

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

You might also like