You are on page 1of 11

1.

7
Introduction

provisioned andpresented as one or more unified computing resources based


onservice-level agreements established through negotiation between the
service provider and consumers.

1.2 THE EVOLUTION OF CLOUD COMPUTING


It is important to understand the evolution of computing in order to get an
appreciation of how we got into the cloud environment.

Looking at the evolution of the computing hardware itself, from the first

generation to the current (fourth) generation of computers, shows how we got from
there to here. The hardware, however, was only part of the evolutionary process.
As hardware evolved, so did software. As networking evolved, so did the rules
for how computers communicate. The development of such rules, or protocols, also
helped drive the evolution of Internet software.
Establishing a common protocol for the Internet led directly to rapid growth in
the number of users online.
Today, we talk about the use of IPv6 (Internet Protocol version 6) to mitigate
addressing concerns and for improving the methods we use to communicate over the
Internet.

Using technologies such as server virtualization, parallel processing, vector


processing, symmetric multiprocessing, and massively parallel processing has fueled
radical change.
The challenges that had to be overcome to develop the Internet and the World
Wide Web (Www)today. These challenges fell into two primary areas, hardware and
software.
1.2.1 Hardware Evolution

The first step along the evolutionary path of computers occurred in 1930,
when binary arithmetic was developed and became the feundation of
computer processing technology, terminology, and programming languages.
Calculating devices date back to at least as early as 1642, when a device
that could mechanically add numbers was invented. Adding devices evolved
from the abacus. It was a significant milestone in the history of computers.
In 1939, the Berry brothers invented an electronic computer capable of
operating digitally. Computations were performed using vacuum-tube
technology.
Cloud Comp
23 at theOerman
Zue'y 23 German Ia
Lahoratory 19
Kofn l ue
Konnd
I n t r o d u c t i o n

in the
iflcant events
evolution of
nredoction

9 1 ,e most signil
war one ofthe foating-point and
supported both
oth
Aviai in Berlin
h e e this
machine
"Turing-complete"
device,
binary
mpus
Berause it was a
hc that was fully operati.
ational
finst computer
eidered to he the very
Ra nplete if it falls into
langunge is
considered
1luring-compl

that it can s
the
Apro
programming

class as a
Turing
machine, meaning

perform.
form
ae
computational machine can
universal Turing
caleulation a
any
years,
computer rototypes
pro were builtto
next two
of the U.S. Army,
Over the course

German messages
by the
decode secret
1.8.1.1 P i r s t - G e n e r a t i o n C o m p u t e r s

can be traced to 1943, whentthe


computers The Harvard Mark
modern
The finst generation of 1.3 and 1.4) were develone
(see Figures d
Colessus computers Figure 1.3 The Harvard Mark I computer
Mark I and
diflerent purposes.
albeit for quite circuits and vac
built using
hard-wired m
were
First-generation computers
Data was stored using paper punch cards
tubes (thermionic
valves).
War II to help decipher
teleprinte,
Colossus was used in
secret during World
the Lorenz
SZ40/42 machine
German forces using
messages encrypted by German teleprinter traffic as
breakers referred to encrypted
British code
machine and its traffic "Tunny."
Fish" and called the SZ40/42
Colossus compared two data streams
To accomplish its deciphering task,
Colossus evaluated one data stream
read at high speed froma paper tape. aw
each match that was discovered
representing the encrypted "Tunny," counting
function. A comparison with the other
based on a programmable Boolean
data stream was then made.

The second data stream was generated internally and designed to be an


Figure 1.4 The British-developed Colossus computer
clectronic simulation of the Lorenz SZ40/42 as it ranged through various
trial settings. 1.2.1.2 Second-Generation Computers

if the match count for a setting was above a predetermined threshold, that Another general-purpose computer of this era was ENIAC (Electronic
data match would be sent as character output to an electric Numerical Integrator and Computer, shown in Figure 1.5), which was built
typewriter.
in 1946. This was the first Turing-complete, digital computer capable of
being reprogrammed to solve a full range of computing problems, although
earlier machines had been built with some of these properties.
Coud Com
inereaned stoage and
like the IBM 360
t r o e t

WhHle mainframe enmputers allowed the


eapabilities even fartier, theintegrated cireait
my
bring compting itio
processing
fthat began te
development of minieomputers
smaller businesses

cirenits led to dhe development of very


mmal
Large-scale integration of computing
next step along the evolutionary trail of
processing units, the CPU on one dhip md
was the finst complete
The Intel 4004 (Figure 1.6)
available microprocesseo
became the first commercially

1.2.1.4 Fourth-Generation Computers


that were being developed st his fime
The fourth-generation computers
utilized a microprocessor that put the computer's processing capabilities o
circuit chip. By combining random access memory
a single integrated than
computers were faster
(RAM), developed by Intel, fourth-generation
before and had much smaller footprints.
ever

Figune 1.5 The ENAC computer capable of "only" 60,000instructions per


was
second.
The 4004 processor
As technology progressed,
however, new processors brought even more speed
istorized computers marked the advent of second-generation computer to users. The microprocessors that evolved
from
which dominated in the late 1950s and early 1960s. Despite using transisto and computing capability
to begin developing personal computers
nd primted circuits, these computers were still bulky and expensive. They the 4004 allowed manufacturers
small enough and cheap enough to
be purchased by the general public.
wee therelore used mainly by universities and government agencies.
The integrated circuit or microchip was developed
by Jack St. Claire Kilby Even though microprocessing power, memory and data storage capacities

an achievement for which he received the Nobel Prize in Physics in 2000, have increased by many orders of magnitude since the invention ofthe 4004
processor, the technology large-scale
for integration (LSI) or very-large-
L2.1.3 Third-Generation Computers
scale integration (VLS) microchips has not changed
all that much. For this
Kilby's invention started an explosion in third-generation computers. Even of today's computers still fall into the category
of fourth-
reason, most
though the finst integrated circuit was produced in September generation computers.
micochips were not used in computers until 1963. 1958,
1.2.2 Internet Software Evolution

The Internet is named after the Internet Protocol, the standard


communications protocol used by every computer on the Internet. The

conceptual foundation for creation of the Internet was significantly developed


by three individuals.

The first, Vannevar Bush, wrote a visionary description of the potential uses
for information technology with his description of an automated library
Figurs 1.6 The intel 404
processor system named MEMEX (see Figure 1.7).
ofmany possible alternatives and formulate the best courcor action Jutcomes
to take.
Aaadher example can be 1ound in scientific
environments, where certain
simulations (such as molccular modeling) and complex mathematical
problems can be split apart and each part processed simultaneously,

Parallel data query (PDQ) 1s a technique used in business. This technique


divides very large data stores into pieces based on various algorithms. Rather
than searching sequentially through an entire database to resolve a query,
CPUs might be used simultaneously to perform a sequential search, each
CPU individually evaluating a letter of the alphabet. MPP machines are not
easy to program, but for certain applications, such as data mining, they are
the best solution.
1.3 PRINCIPLES OF PARALLEL AND DISTRIBUTED
COMPUTING

Cloud computing is a new technological trend that supports better utilization


of IT infrastructures, services, and applications. It adopts a service delivery
model based on a pay-per-use approach, in which users do not
own
infrastructure, platform, or applications but use them for the time they need
them.
1.30 Cloud Computing
These IT assets are owned and maintained by service providers who make
them accessible through the Internet. This chapter presents the fundamenta
prineiples of par o l and listributed computing and discusses models and
conceptual framework hat serve as foundations for building clou
computing sy stems and applications.

1.3.1 Eras of con1puting


The two fundamental and dominant models of computing are sequential
and parallel. The sequential computing era began in the 1940s; the parallel
it within a decade (see Figure 1.17
(and distributed) computing era followed
The four key elements of computing developed during these eras are
architectures, compilers, applications, and problem-solving environments
The computing era started with a development in hardware architectures
which actually enabled the creation of system software-particularly in the-
area of compilers and operating systems-which support the managemen
of such systems and the development of applications. The development af

applications and ystems major element of interest to us, and it come


are the
to consolidation when problem-solving environments were designed and
introduced to facilitate and empower engineers. This is when the paradign
characterizing the computing achieved maturity and became mainstrean
Moreover, every aspect of this era underwent a three-phase process: researd
and development (R&D), commercialization, and commoditization.

1.3.2 Parallel vs. distributed computing


The terms parallel computing and distributed computing are often us
interchangeably, even though they mean slightly different things. The tem
parallel implies a tightly coupled system, whereas distributed refers t
wider class of system, including those that are tightly coupled.
**me*-==maumm=m

Arehtectures

Sequentinl Era Cemplers


Applicatiens
Problem Solving Emvirenments

Architectures
Compilers
Parallel Era Applications

Problem-Solving Environments

- -. .--- - -- -- -

1940 1950 1960 1970 1980 1990 2000 2010 2020 2030

FIGURE 1.17 Eras ofcomputing,1940s_2030s.


More precisely, the term parallel computing refers to a model in which the
computation is divided among several processors sharing the same memory.
The architecture of a parallel computing system is often characterized by
the homogeneity of components: each processor is of the same type and it
has the same capability as the others. The shared memory has a single address
space, which is accessible to all the processors.

Parallel programs are then broken down into several units


of execution that
can be allocated to different
processors and can communicate with each
other by means of the shared memory. Originally we considered
parallel
systems only those architectures that featured multiple processors sharing
the same physical memory and that were considered a
single computer.
Overtime, these restrictions have been relaxed, and parallel systems now
include all architectures that are based on the of shared
concept memory,
whether this is
physically present created with the support of libraries,
or
specific hardware, and a highly efticient networking infrastructure.
For example, a cluster of which the nodes are connected
through an InfiniB
and network and configured with a distributed shared
memory system can
be considered a parallel
system.
1.32
The term distributed computing encompasses any
any hitecture Cloud Co
that allows the computation to be broken down'Chitec
concurrently on different computing elements, whethes. units and

computer, these aare pre


on different nodes, processors on the same ese
or
same processor.
cores wit
Therefore, distributed computing includes a wider a
applications than parallel computing and is often considerge ofof sysysten
term. Even though it is not a rule, the term distributed often impliest
mo
locations of the computing elements are not the
more
might be hcterogeneous in terms of hardware and softu and such el
Classic examples of distributed computing systems are c.
re computing g
atures
Internet computing systems, which combine together the k n g
the biggest varm
architectures, systems, and applications in the world.

1.3.3 Elements of parallel computing


It is now clear that silicon-based processor chips are reachino
limits. Processing speed is constrained by the speed of light, their
andthe d
of transistors packaged in a processor is constrained by therm.
limitations. A viable solution to over come this rmody
limitation is to ca
multiple processors working in coordination with each other to soad
Challenge" problems.
The first steps in this direction led to the development of paralelcom
which encompasses techniques, architectures, and systems for peri
multiple activities in parallel.

The term parallel computing has blurred its edges with the term disth
computing and is often used in place of the latter term. In thissecti
refer to its proper characterization, which involves the introduat
parallelism within a single computer by coordinating theactivilyol
processors together.
1.3.3.1 What is parallel processing?
Processing of multiple tasks simultaneously on multiple proces
iple&
parallel processing. The parallel program consists O1
processes (tasks) simultaneously solving a given problenm chniqu
divided into multiple subtasks using a divide-and-conguc
Security of data on the cloud can be questionable.
1.7 ELASTICITY IN CLOUD
In cloud computing, Elasticity is defined as "the degree to which a system is
able to adapt to workload changes by
provisioning and de-provisioning resources
in an autonomic manner, such that at each point in time the available resources
match the current demand as closely as possible"
Example :

Let us illustrate elasticity through a simple example of a


service provider who
wants to run a website on an laaS cloud. At moment t0, the website is unpopule
and a single machine (most commonly a virtual machine) is sufficient to serv
all web users. At moment t1, the website suddenly becomes popular, for example
as a result of a flash crowd, and a single machine is no longer sufficient to sent
all users. Based on the number of web users simultaneously accessing the websi
and the resource requirements of the web server, it might be that ten machine
are needed. An elastic system should immediately detect thiscondition an
nine additional machines from the cloud, so as to serve all web use
provision
responsively.
m a c h

m a c h i n e s
i n e s
tha
ten w
woou
ulld
d
be
bDe
The
machine
again.
again. m a c h i n e

Introduction becomes
unnp
poop
puul
laar
r

a n d aa
single system

idle and
elastic

the
website
An a
annd
aremostly
d
At time
ime
2,
t12, website
the
website.
machines
m a c h i n e s

allocated
to the accessing nine
n ine
c u r r e n t l ya l l o are
who deprovision
ovision

currently the few


users
and
serve
condition
to
detect this
suflicient
sufficient
i m m e d i a t e l y
should immed

should to the
cloud
them with
release
service
allocated
to a
r e s o u r c e
under-provisioning.

amount
of
the or
Purpose at matching
avoiding
over-
should
aims
Elasticity requires, required,
it actually than
the
amount of resource allocating
more
r e s o u r c e s

r e s o u r c e s
that are

i.e., for the


often has to pay
O v e r - p r o v i s i o n i n g , extra-large

service provider EC2 M4


the Amazon machines
avoided as an virtual
be service. For example, allocated
two
the has
allocated to Ifa service
year.
U S $ 0 . 2 3 9 / h o u r .

wastes
$2,095 e v e r y
costs and
service provider
than o p t i m a l
instance
the
one is required, are higher
when only expenses
service
provider's
the
Hence,
must
reduced.
their profit is resources
than required,
fewer service.
U n d e r - p r o v i s i o n i n g ,
i.e., allocating its users
with a good
serve
seemn
the service cannot
make it
otherwise
the website may
be avoided, the
above example,
under-provisioning

on accessing it, thus,


In the eventually give up income
Web users
provider's
slow o r unre achable. term, the
customers. On the long
service provider loses their profit.
also reduces
will decrease, which

Evaluation checked earlier:


need to be
the following points
When evaluating elasticity, autonomic scaling?
is used for
What adaptation process
Autonomic Scaling:
r e s o u r c e types
scaled as part of
What is the set of
Dimensions:
Elasticity
the adaptation process?
amount
Units: For each
resource type, in what unit is the
Resource Scaling
varied?
of allocated resources

type, what is the upper bound on


the
Bounds: For each resource
Scalability
that can be allocated1?
amount of resources

Amazon Elastic cloud compute (EC2)


I t is a heart of the Amazon cloud. It provides a web services APIfor provisioning,
servers inside the Amazon cloud. In other
managing, and deprovisioning virtual
1.88 CloudComput
word, any application anywhere on the Internet can launch a virtual server
virtual server in Introc

Amazon cloud with a single web services call.

When you want t start up a virtual server in the Amazon environm..


launch a new node based on a predefined Amazon machine
environment, yo
inage (AMI).
AMI includes your OS and any other prebuilt software. Th
EC2 has two kinds of storage

11. Ephemeral storage tied to the node that expires with the node

2 Block storage that acts like a SAN and persists across time

Servers in EC2 cañ access Amazon S3 for cloud-based persistent stora


EC2 servers in particular see both cost savings and greater efficiencies
storage
accessing S3.

To secure your network within the cloud, you can control virtual firewat
rules that define how traffic can be filtered to your virtual nodes. ewal
You define routing rules by creating security groups and associating the
rules with those groups.

For example, you might create a DMZ group that allows port 80 and pon
443 traffic from the public Internet into its servers, but allows no other
incoming traffic.
4
Problems

1. Resources provisioning time

One potential problem is that elasticity takes time. A cloud virtual machine (VM)
can be acquired at any time by the user, however, it may take up to several minutes
for the acquired VM to be ready to use. The VM startup time is dependent on
1actors, such as image size, VM type, data center location, number of VMs,|
etc. Cloud providers have different
VM startup performance. This implies any
control mechanism designed for elastic applications must consider
inits decisiou
process the time needed for the elasticity actions to take effect,ol suchas
provisioning another VM for a specific application component.
2. Monitoring elastie applieations 1.8

Elastic applications can allocate and deallocate resources (such as M on


demand for specific application components. This makes cloud resourees volatile Clouc
1.89

troduction

data with particular


a
traditional monitoring tools which associate monitoring
and
and
are no longer
suitable for
resource (i.e. VM), such as Ganglia or Nagios,
its lifetime,
monitoring the behavior of elasticapplications. For example, duringdata storage
data storage
application might add and remove
tier of an elastic
a
and performance requirements, varying the
number of used
cost
VMs due to
additional information is needed in monitoring elastic applications,
VMs. Thus, virtual
structure over the underlying
such as associating the logical application
to aggregate
This in turn generates other problems, such as how
infrastructure.
VMs towards extracting the behavior of the application
data from multiple
metrics might need to be
component top of those VMs, as different
running on
be network transfer might
aggregated diferently (e.g., CPU usage could averaged,
be summed up).

Elasticity requirements

When deploying applications in cloud infrastructures (laaS/PaaS), requirements


order to ensure proper elasticity
of the stakeholder need to be considered in
behavior. Even though traditionally one would try to
find the optimal trade-off

between cost and quality or performance, for real world cloud users requirements
of
regarding the behavior are more complex and target multiple dimensions
elasticity (e.g., SYBL).

Multiple levels of control


levels
Cloud applications can be of varying types and complexities, with multiple
of artifacts deployed in layers. Controlling such structures must take into
consideration a variety of issues, an approach in this sense being rSYBL. For
multi-level control, control systems need to consider the impact lower level
control has upon higher level ones and vice versa (e.g., controlling virtual
machines, web containers, or web services in the same time), as well as contlicts
which may appear between various control strategies from various levels. Elastic
strategies on Clouds can take advantage of control-theoretie methods (e.g..
predictive control has been experimented in Cloud scenarios by showing
considerable advantages with respect to reactive methods).

.8 CLOUD PROVISIONING

Cloud provisioning refers to the processes for the deploymentand integration of


oud
computing services within an enterprise IT infrastructure. This is a broad term

You might also like