Unit-I
Unit-I
1.1 Introduction
Cloud computing is a transformative computing paradigm that involves delivering appli-
cations and services over the internet. Many of the underlying technologies that are the
foundation of cloud computing have existed for quite some time. Cloud computing involves
provisioning of computing, networking and storage resources on demand and providing these
resources as metered services to the users, in a "pay as you go" model. In this chapter you
will learn about the various deployment models, service models, characteristics, driving
factors and challenges of cloud computing.
Resource pooling
The computing and storage resources provided by cloud service providers are pooled to serve
multiple users using multi-tenancy. Multi-tenant aspects of thecloud allow multiple users
to be served by the same physical hardware. Users are assigned virtual resources that run
on top of the physical resources. Various forms of virtualizatioo approaches such as full
virtualization, para-virtualization and hardware virtualization are described in Chapter 2.
Rapid elasticity
Cloud computing resources can be provisioned rapidly and elastically. Cloud resources can
be rapidly scaled up or down based on demand. Two types of scaling options exist:
• Horizontal Scaling (scaling out): Horizontal scaling or scaling-out involves launch-
ing and provisioning additional server resources.
• Vertical Scaling (scaling up): Vertical scaling or scaling-up involves changing the
computing capacity assigned to the server resources while keeping the number of
server resources constant.
Measured service
Cloud computing resources are provided to users on a pay-per-use model. The usage of the
cloud resources is measured and the user is charged based on some specific metric. Metrics
such as amount of CPU cycles used, amount of storage space used, number of network VO
requests, etc. are used to calculate the usage charges for the cloud resources.
In addition to these five essential characteristics of cloud computing, other characteristics
that again highlight savings in cost include:
Performance
Cloud computing provides improved performance for applications since the resources avail-
able to the applications can be scaled up or down based on the dynamic application workloads.
Reduced costs
Cloud computing provides cost benefits for applications as only as much computing and
storage resources as required can be provisioned dynamically, and upfront investment in
purchase of computing assets to cover worst case requirements is avoid. This saves significant
cost for organizations and individuals. Applications can experience large variations in the
workloads which can be due to seasonal or other factors. For example, e-Cornmerce applica-
tions typically experience higher workloads in holiday seasons. To ensure market readiness
of such applications, adequate resources need to be provisioned so that the applications can
meet the demands of specified workload levels and at the same time ensure that service level
agreements are met.
Outsourced Management
Cloud computing allows the users (individuaLs, large organizations, small and medium
enterprises and governments) to outsource the IT infrastructure requirements to external
cloud providers. Thus, the consumers can save large upfront capital expenditures in setting
up the IT infrastructure and pay only for the operational expenses for the cloud resources
used. The outsourced nature of the cloud services provides a reduction in the IT infrastructure
management costs.
Reliability
Applications deployed in cloud computing environments generally have a higher reliability
since the underlying IT infrastructure is professionally managed by the cloud service. Cloud
service providers specify and guarantee the reliability and availability levels for their cloud
resources in the form of service level agreements (SLAs). Most cloud providers promise
99.99% uptime guarantee for the cloud resources, which may often be expensive to achieve
with in-house IT infrastructure.
Multi-tenancy
The multi-tenanted approach of the cloud allows multiple users to make use of the same shared
resources. Modern applications such as e-Commerce, Business-to-Business, Banking and
Financial, Retail and Social Networking applications that are deployed in cloud computing
environments are multi-tenanted applications. Multi-tenancy can be of different forms:
• Virtual multi-tenancy: In virtual multi-tenancy, computing and storage resources are
shared among multiple users. Multiple tenants are served from virtual machines (VMs)
that execute concurrently on top of the same computing and storage resources .
• Organic multi-tenancy: In organic multi-tenancy every component in the system
architecture is shared among multiple tenants, including hardware, OS, database
servers, application servers, load balancers, etc. Organic multi-tenancy exists when
explicit multi-tenant design patterns are coded into the application.
Infrastructure-as-a-Service (laoS)
IaaS provides (he users the capability to provision computing and storage resources. These
resources are provided to the users as virtual machine instances and virtual storage. Users can
start, stop, configure and manage the virtual machine instances and virtual storage. Users can
deploy operating systems and applications of their choice on the virtual resources provisioned
in the cloud. The cloud service provider manages the underlying infrastructure. Virtual
resources provisioned by the users are billed based on a pay-per-use paradigm. Cornmon
metering metrics used are the number of virtual machine hours used and/or the amount of
storage space provisioned.
Platform-as-a-Service (Poas)
PaaS provides the users the capability to develop and deploy application in the cloud using
the development tools, application programming interfaces (APls), software libraries and
services provided by the cloud service provider. The cloud service provider manages the
underlying cloud infrastructure including servers, network, operating systems and storage.
The users, themselves, are responsible for developing, deploying, configuring and managing
applications on the cloud infrastructure.
Sottware-as-a-Service (Soas)
SaaS provides the users a complete software application or the user interface to the the
application itself. The cloud service provider manages the underlying cloud infrastructure
including servers, network, operating systems, storage and application software, and the user
is unaware of the underlying architecture of the cloud. Applications are provided to the user
through a thin client interface (e.g., a browser). SaaS applications are platform independent
and can be accessed from various client devices such as workstations, laptop, tablets and
smartphones, running different operating systems. Since the cloud service provider manages
both the application and data, the users are able to access the applications from anywhere.
Figure 1.1 shows the cloud computing service models and Figure 1.2 lists the benefits,
characteristics and adoption of IaaS, PaaS and SaaS.
Public cloud
In the public cloud deployment model, cloud services are available to the general public or a
large group of companies. The cloud resources are shared among different users (individuals,
large organizations, small and medium enterprises and governments). The cloud services are
provided by a third-party cloud provider. Public clouds are best suited for users who want to
use cloud infrastructure for development and testing of applications and host applications in
the cloud to serve large workloads, without upfront investments in IT infrastructure.
Private cloud
In the private cloud deployment model, cloud infrastructure is operated for exclusive use of a
single organization. Private cloud services are dedicated for a single organization. Cloud
infrastructure can be setup on premise or off-premise and may be managed internally or by a
third-party. Private clouds are best suited for applications where security is very important
and organizations that want to have very tight control over their data.
Hybrid cloud
The hybrid cloud deployment model combines the services of multiple clouds (private or
public). The individual clouds retain their unique identities but are bound by standardized
or proprietary technology that enables data and application portability. Hybrid clouds are
best suited for organizations that want to take advantage of secured application and data
hosting on a private cloud, and at the same time benefit from cost savings by hosting shared
applications and data in public clouds.
Community cloud
In the community cloud deployment model, the cloud services are shared by several orga-
nizations that have the same policy and compliance considerations. Community clouds are
~enefi~ ,
o No infrastructure required
~c Seaml~'ssupgrades .,
- Guaranteed performance
-.Automated backups
- Easydata recovery
,- Secure ::!.hdlvidual users; High " . ','
--High adoption - Small & medium en.terprises: High'·'
- large organizations: High:
- On-the move access
- Government: M~dium
Figure 1.2: Benefits, characteristics and adoption of IaaS, PaaS and SaaS
Private Cloud
Public Cloud
features for building scalable and reliable applications such as auto scaling-and elastic
'load balancing. Figure 1.5 shows a screenshot of Amazon EC2 dashboard. ~,
.Google Compute Engine (GCE) [4] is an laaS offering from Google. GCE provides
virtual machines of various computing' capacities ranging from small instances (e.g., 1
virtual core with 1.38 GCE unit and 1.7GB memory) to high memory machine types (e.g.,
8 virtual cores with 22 GeE units and 52GB memory). Figure 1.6 shows a screenshot of
Google Compute Engine dashboard.
Windows Azure Virtual Machines [83] is an IaaS offering from Microsoft. Azure VMs
provides virtual machines of various computing capacities ranging from small instances
(1 virtual core with 1.75GB memory) to memory intensive machine types (8 virtual cores
with 56GB memory). Figure 1.7 shows a screenshot of Windows Azure Virtual Machines
dashboard.
iiflQ~~"
My R.esourccs
!o""""" ....
til Olassnapshow
a.1.~U"
.t.. 0 l.ood
._
) ""port on (ulle
Google App Engine (GAB) [105] is a Platform-as-a-Service (PaaS) offering from Coogle.
GAB(TM) is a cloud-based web service for hosting web applications and storing data.
GAB allows users to build scalable and reliable applications that run on the same systems
that power Google's own applications. GAE provides a software development kit (SDK)
for developing web applications software that can be deployed on GAB. Developers can
develop and test their applications with GAB SDK on a local machine and then upload it
to GAB with a simple click of a button. Applications hosted in GAB are easy to build,
maintain and scale. Users don't need to worry about launching additional computing
instances when the application load increases. GAB provides seamless scalability by
launching additional instances when application load increases. GAB provides dynamic
web serving based en-common web technologies. Applications hosted-in GAE can use
dynamic technologies.· GAB provides automatic scaling and load balancing capability.
GAB supports applications written in several programming' languages. With GAB's
!!Isla""os
Disks
;,,'iiil&'
Create a new Instance
Images Summary
J
Networks
Name
DeKriplion
~
€i
~~~~~~==~==~
1_ my~~nco
! My Instance
_.._. .•
mylnolBnc:o
My"" .....
Me:t3data
Optona!
doblan-7 _ozy-oa0130723
Zone.
Deb<oo GNUIl...,. 7.1 (WheaYl b ...
0pe ..
1ion. us-mralH,
Equivalent REST Of
command Une
Mdll''''' •• OI ....
Opdon61
CI Wo _In ZOMU ....... ltllf,b
1.4.3
, SaaS: Salesforce
I
Salesforce [7] Sales Cloud(TM) is a cloud-based c.ust"o.mer -.relati.GnShipm,
anag.ernent
(CRM) Software-as-a-Service (SaaS) offering. Users can access CRM application from
anywhere through internet-enabled devices such as workstations, laptops, tablets and
Bahga & Madisetti, © 2014
1.4 Cloud Services Examples 29
myinstance
b DASH80ARO MONITOR ENDPOINTS CONf1GURE
usage overview
HOST NAME
1HT£RNAL 1P ADDRESS
too.1O.44.18
SSHOfTAIS
disks myinstance.doudapp.net: :
- --
vMlOtr: (Mv"';;;".J
_
1'7""""-:-"-.-:,,,!,,~,,,=--;--=, - MI~t~ ...l.ff;;;r>o.;;] ,
-
- 1·
· . 1
II .. I I!')
"""j
-
-
Figure 1.8: Google App Engine dashboard
Some of the tools included in the Salesforce Sales, Service and Marketing Clouds
include:
• Accounts and contacts
• Leads
• Opportunities
• Campaigns
• Chatter
• Analytics and Forecasts
C~·Profc:tsG.,..
~c IIi .....lIl9'....."""'.."'.....,,._...J ..
"W,,1Ii
C®- €I'
Patient
Interaction
Information/Data Flow
Payers
(Governments, Private Health Insurance
Companies, Employers)
failure prediction purposes. These energy systems have a large number of critical components
that must function correctly so that the systems can perform their operations correctly. For
example, a wind turbine has a number of critical components, e.g., bearings, turning gears,
etc. that must be monitored carefully as wear and tear in such critical components or sudden
change in operating conditions of the machines can result in failures. In systems such as
power grids, real-time information is collected using specialized electrical sensors called
Phasor Measurement Units (PMU) at the substations. The information received from PMUs
must be monitored in real-time for estimating the state of the system and for predicting
failures. Maintenance and repair of such complex systems is not only expensive but also time
consuming, therefore failures can cause huge losses for the operators, and supply outage for
consumers. In [8], the Bahga & Madisetti have proposed a generic framework, Cloud View, for
storage, processing and analysis of massive machine maintenance data, collected from a large
number of sensors embedded in industrial machines, in a cloud computing environment. The
approach proposed in [8], in addition to being the first reported use of the cloud architecture
for maintenance data storage, processing and analysis, also evaluated several possible cloud-
based architectures that leverage the advantages of the parallel computing capabilities of the
cloud to make local decisions with global information efficiently, while avoiding potential
data bottlenecks that can occur in getting the maintenance data in and out of the cloud.
Figure 1.11 shows a generic use case of cloud for energy systems.
In recent work, we have proposed a cloud-based framework that can be leveraged for
real-time fresh food supply tracking and monitoring [9). Fresh food can be damaged during
transit due to unrefrigerated conditions and changes in environmental conditions such as
temperature and humidity, which can lead to microbial infections and biochemical reactions
or mechanical damage due to rough handling. Spoilage of fruits and vegetables during
transport and distribution not only results in losses to the distributors but also presents a
hazard to the food safety. Therefore tracking and monitoring of fresh food supply is an
important problem that needs to be addressed. Typically medium and large container trucks
are used for fresh food supply.
Since fresh foods have short durability, tracking the supply of fresh foods and monitoring
the transit conditions can help identification of potential food safety hazards. The analysis
and interpretation of data on the environmental conditions in the container and food truck
positioning can enable more effective routing decisions in real time. Therefore, it is possible
to take remedial measures such as, (1) the food that has a limited time budget before it
gets rotten can be re-routed to a Closer destinations, (2) alerts can be raised to the driver
and the distributor about the transit conditions, such as container temperature exceeding the
allowed limit, humidity levels going out of the allowed limit, etc., and corrective actions can
be taken before the food gets damaged. Figure 1.12 shows a generic use case of cloud for
transportation systems.
i
anywhere with cloud-
Gather data
from PlCs based_::p~_ I
PLC through OPC
Data
I. _Data Filtering
Data
J
[J Data
can provide access to high quality educational material to students. Figure 1.15 shows a
generic use case of cloud for education. Cloud-based systems can help universities, colleges
and schools in cutting down the IT infrastructure costs and yet provide access to educational
services to a large number of students.
..
---...........,
University/School .
Information Management I
Systems .
~-.---..-- ------'~
Faculty/Teachers/
Students
Researchers
Educators
Figure 1.16 shows a use case of cloud-based NFV architecture for cloud-based radio
access networks (C- RANs) with virtualized mobile base stations (baseband units). The
baseband units (BBUs), such as eNodeB in 40, in current mobile communication networks
are co-located with the cell towers on-site and run on proprietary hardware. The BBUs
are typically designed for worst-case peak loads. However, typical workload levels are
much lower than the peak loads, therefore, the excess capacity goes unused. With NFV
and cloud the BBUs can be virtualized and only as many resources as required to meet
the workload levels can be provisioned on-demand. This will result in significant power
savings. Centralized cloud-based virtual BBU clusters can replace on-site installations of
BBUs in distributed geographical locations. This will result in reduction of management and
MME HSS
5-GW P-GW
operational expenses.
Figure 1.17 shows a use case of cloud-based NFV architecture for mobile core network.
With NFV, the core network devices such as Mobility Management Entity (MME), Home
Subscriber Server (HSS), Serving Gateway (S-GW) and Packet Data Network Gateway
(p-GW) in 4G can be implemented in software and deployed on virtualized resources in
the cloud. This will reduce the total cost of ownership due to consolidation of network
component that run on industry standard networking hardware. Other benefits of using
cloud-based NFV architecture for mobile core network include improved resource utilization
efficiency, improved network resilience, improved flexibility in scaling up capacity.
Summary
In this chapter you learned the definition and characteristics of cloud computing. Cloud
computing offers Internet-based access to low cost computing and applications that are
provided using virtualized resources. On-demand service, remote accessibility through a
variety of networks, resource pooling, rapid elasticity and measured service are the key
characteristics of cloud computing. Cloud computing resources can be provisioned on-
demand by the users. Cloud computing resources can be accessed over the network with
standard access mechanisms. Cloud resources are pooled to serve multiple users using
multi-tenancy.
Cloud computing has three service models - IaaS, PaaS and SaaS. IaaS provides the
users the capability to provision computing and storage resources. PaaS provides the users
the capability to develop and deploy their own applications in the cloud. SaaS provides
applications hosted in the cloud through thin client interfaces.
Cloud computing is being increasingly adopted by individual users, small and large
enterprises, large organizations and governments. Cloud computing is being applied in
various fields such as heal thcare , education, governance, energy systems, manufacturing
industry, transportation systems, etc.
Review Questions
I. Define cloud computing
2. List the pros and cons of cloud computing.
3. Distinguish between IaaS, PaaS and SaaS.
4. Define multi-tenancy. What is the difference between virtual and organic multi-
tenancy?
5. What is the difference between horizontal scaling and vertical scaling? Describe
scenarios in which you will use each type of scaling.
6. Define virtualization. What is the difference between full, para- and hardware-assisted
virtualization?
7. Assume your company wants to launch an e-commerce website. Which cloud services
and deployment models will you consider for the website?
In this chapter you will learn the key concepts and enabling technologies of cloud
computing. We will introduce and build upon technologies such as virtualization, load
balancing,and on-demand provisioning. A popular programming model, called MapReduce,
will also be covered.
2.1 Virtualization
Virtualization refers to the partitioning the resources of a physical system (such as computing,
storage, network and memory) into multiple virtual resources. Virtualization is the Key
enabling technology of cloud computing and allows pooling of resources. In cloud computing,
resources are pooled to serve multiple users using multi-tenancy. Multi-tenant aspects of the
cloud allow multiple users to be served by the same physical hardware. Users are assigned
virtual resources that run on top of the physical resources. Figure 2.1 shows the architecture
of a virtualization technology in cloud computing. The physical resources such as computing,
storage memory and network resources are virtualized. The virtualization layer partitions the
physical resources into multiple virtual machines. The virtualization layer allows multiple
operating system instances to run currently as virtual machines on the same underlying
physical resources.
Hypervisor
The virtualization layer consists of a hypervisor or a virtual machine monitor (VMM). The
hypervisor presents a virtual operating platform to a guest operating system (OS). There are
two types of hypervisors as shown in Figures 2.2 and 2.3 . Type-I hypervisors or the native
hypervisors run directly on the host hardware and control the hardware and monitor the guest
operating systems. Type 2 hypervisors or hosted hypervisors run on top of a conventional
(main/host) operating system and monitor the guest operating systems.
Guest OS
A guest OS is an operating system that is installed in a virtual machine in addition to the host
or main OS. In virtualization, the guest OS can be different from the host OS.
Various forms of virtualization approaches exist:
Full Virtualization
In full virtualization, the vittualization layer completely decouples the guest OS from the
underlying hardware. The guest OS requires no modification and is not aware that it is being
virtualized. Full virtualization is enabled by direct execution of user requests and binary
translation of OS requests. Figure 2.4 shows the full virtualization approach.
Para- Virtualization
In para-virtualization, the guest OS is modified to enable communication with the hypervisor
to improve performance and efficiency. The guest OS kernel is modified to replace non-
virtualizable instructions with hypercalls that communicate directly with the virtualization
layer hypervisor. Figure 2.5 shows the para-virtualization approach.
Hardware Virtualization
Hardware assisted virtualization is enabled by hardware features such as Intel's Virtualization
Technology (VT-x) and AMD's AMD-V. In hardware assisted virtualization, privileged and
sensitive calls are set to automatically trap to the hypervisor. Thus, there is no need for either
binary translation or para-virtualization.
Table 2.1 lists some examples of popular hypervisors.
Hardware
~~.
~~~
IIEJii!!!
System Hardware
a.:. :~•~.-..
\WI j~
g ~ l:~r
System Hardware
~(
I":!..~
load balancer appear as a single server with high computing capacity. The routing of user
requests is determined based on a load balancing algorithm. Commonly used load baJancing
algorithms include:
Citrix XenServer
Oracle VM Server
KVM Type-l
VirrualBox Type-2
Round Robin
In round robin load balancing, the servers are selected one by one to serve the incoming
requests in a non-hierarchical circular fashion with no priority assigned to a specific server.
low Latency
In low latency load balancing the load balancer monitors the latency of each server. Each
incoming request is routed to the server which has the lowest latency.
Least Connections
In least connections load balancing, the incoming requests are routed to the server with the
least number of connections.
Priority
In priority load balancing, each server is assigned a priority. The incoming traffic is routed to
the highest priority server as long as the server is available. When the highest priority server
fails, the incoming traffic is routed to a server with a lower priority.
Overflow
Overflow load balancing is similar to priority load balancing. When the incoming requests to
highest priority server overflow, the requests are routed to a lower priority server.
Figure 2.6 depicts these various load balancing approaches. For session based appli-
cations, an important issue to handle during load balancing is the persistence of multiple
requests from a particular user session. Since load balancing can route successive requests
from a user session to different servers, maintaining the state or the information of the session
is important. Three commonly used persistence approaches are described below:
a -I
Internet Internet
load Batance(
(a) (b)
Intetnet
Internet
latency: low
latency: Medium Latency: High Least Connections
(e) (d)
Internet Internet
I
I
I Loa ... lencer
y
Priority: High Priority: Medium Priority: low Priority: High Priority: Medium Priority: low
(e) (f)
Figure 2.6: (a) Round robin load balancing, (b) Weighted round robin load balancing, (c)
Low latency load balancing, (d) Least connections load balancing, (e) Priority load balancing,
(t) Overload load balancing
Bahga & MadisettL © 20)4
2.3 Scalability & Elasticity 45
Sticky sessions
In this approach all the requests belonging to a user session are routed to the same server.
These sessions are called sticky sessions. The benefit of this approach is that it makes session
management simple. However, a drawback of this approach is that if a server fails all the
sessions belonging to that server are lost, since there is no automatic failover possible.
Session Database
In this approach, all the session information is stored externally in a separate session database,
which is often replicated to avoid a single point of failure. Though, this approach involves
additional overhead of storing the session information, however, unlike the sticky session
approach, this approach allows automatic failover.
Browser cookies
Tn this approach, the session information is stored on the client side in the form of browser
cookies. The benefit of this approach is that it makes the session management easy and has
the least amount of overhead for the load balancer.
URL re-
writing
In this approach, a URL re-write engine stores the session information by modifying the
URLs on the client side. Though this approach avoids overhead on the load balancer, a draw-
back is that the amount of session information that can be stored is limited. For applications
that require larger amounts of session information, this approach does not work.
Nginx
HAProxy Software
Pound Software
Varish Software
out. Scaling up involves upgrading the hardware resources (adding additional computing,
memory, storage or network resources). Scaling out involves addition of more resources
of the same type. Traditional scaling up and scaling out approaches are based on demand
forecasts at regular intervals of time. When variations in workloads are rapid, traditional
approaches are unable to keep track with the demand and lead to either over-provisioning
or under-provisioning of resources. Over-provisioning of resources leads to higher capital
expenditures than required. On the other band, under-provisioning of resources leads to
traffic overloads, slow response times, low throughputs and hence loss of opportunity to
serve the customers. Analyzing the real traffic history plots for top websites shown in Fig-
ure 2.7 we observe that the off peak workloads are significantly lower than peak workloads.
Traditional capacity planning approaches which are designed to meet the peak loads result in
excess capacity and under utilization of resources. Moreover, the infrastructure resources for
traditional applications are fixed, rigid and provisioned in advance. This involves up-front
capital expenditures for setting up the infrastructure.
2.4 Deployment
Figure 2.8 shows the cloud application deployment lifecycle. Deployment prototyping can
help in making deployment architecture design choices. By comparing performance of
alternative deployment architectures, deployment prototyping can help in choosing the best
and most cost effective deployment architecture that can meet the application performance
requirements. Table 2.3 lists some popular cloud deployment management tools. Deployment
design is an iterative process that involves the following steps:
Deployment Deslqn
In this step the application deployment is created with various tiers as specified in the
deployment configuration. The variables in this step include the number of servers in
each tier, computing, memory and storage capacities of severs, server interconnection,
load balancing and replication strategies. Deployment is created by provisioning the cloud
I ,1
J
J IIilII
I
r-- -
/~
...
V
F
1- -
Predicted Demand
Actual demand
--l
I
-
- - Traditional scale out approach
J
l
Traditional scale up approach
- - - On-demand
-- ----
Time
Performance Evaluation
Once the application is deployed in the cloud, the next step in the deployment lifecyc1e is to
verify whether the application meets the performance requirements with the deployment. This
step involves monitoring the workload on the application and measuring various workload
parameters such as response time and throughput. In addition to this, the utilization of servers
(CPU, memory, disk, I/O, etc.) in each tier is also monitored.
Deployment Refinement
After evaluating the performance of the application, deployments are refined so that the
application can meet the performance requirements. Various alternatives can exist in this step
such as vertical scaling (or scaling up), horizontal scaling (or scaling out), alternative server
interconnections, alternative load balancing and replication strategies, for instance.
2.5 Replication
Replication is used to create and maintain multiple copies of the data in the cloud. Replication
of data is important for practical reasons such as business continuity and disaster recovery.
(
Server interconnections
lr.lij~~~r~~i:!:·:~Yt{1f;~:I~~i~;Kd~~~:~~;JIP'
Horizontal scaling
i~.,:.~ perlQimance MeiiSiJ~mei\t'/. i~
Vertical scaling Application workload
In the event of data loss at the primary location, organizations can continue to operate their
applications from secondary data sources. With real-time replication of data, organizations
can achieve faster recovery from failures. Traditional business continuity and disaster
recovery approaches don't provide efficient, cost effective and automated recovery of data.
Cloud based data replication approaches provide replication of data in multiple locations,
automated recovery, low recovery point objective (RPO) and low recovery time objective
(RTO). Cloud enables rapid implementation of replication solutions for disaster recovery for
small and medium enterprises and large organizations. With cloud-based data replication
organizations can plan for disaster recovery without making any capital expenditures on
purchasing, configuring and managing secondary site locations. Cloud provides affordable
replication solutions with pay-per-use/pay-as-you-go pricing models. There are three types
of replication approaches as shown in Figure 2.9 and described as follows:
Array-based Replication
Array-based replication uses compatible storage arrays to automatically copy data from a
local storage array to a remote storage array. Arrays replicate data at the disk sub-system
level, therefore the type of hosts accessing the data and the type of data is not important. Thus
array-based replication can work in heterogeneous environments with different operating
systems. Array-based replication uses Network Attached Storage (NAS) or Storage Area
Network (SAN), to replicate. A drawback of this array-based replication is that it requires
similar arrays at local and remote locations. Thus the costs for setting up array-based
replication are higher than the other approaches.
Host-based Replication
Host -based replication runs on standard servers and uses software to transfer data from a local
1O remote location. The host acts the replication control mechanism. An agent is installed
on the hosts that communicates with the agents on the.other hosts. Host-based replication
can either be block-based or file-based. Block-based replication typically require dedicated
volumes of the same size on both the local and remote servers. File-based replication
requires less storage as compared to block-based storage. File-based replication gives
additional allows the administrators to choose the files or folders to be replicated. Host-
based replication with cloud-infrastructure provides affordable replication solutions. With
host-based replication, entire virtual machines can be replicated in real-time.
2.6 Monitoring
Cloud resources can be monitored by monitoring services provided by the cloud service
providers. Monitoring services allow cloud users to collect and analyze the data on various
monitoring metrics. Figure 2.10 shows a generic architecture for a cloud monitoring service.
A monitoring service collects data on various system and application metrics from the cloud
computing instances. Monitoring services provide various pre-defined metrics. Users can
also define their custom metrics for monitoring the cloud resources. Users can define various
actions based on the monitoring data, for example, auto-scaling a cloud deployment when
the CPU usage of monitored resources becomes high. Monitoring services also provide
various statistics based on the monitoring data collected. Table 2.4 lists the commonly
Storage Storage
Array
Array
(a)
Primary Site Secondary Site
tel
Figure 2.9: Replication approaches: (a) Array-based replication, (b) Network-based replica-
tion. (c) Host-based replication
used monitoring metrics for cloud computing resources. Monitoring of cloud resources is
important because it allows the users lO keep track of the health of applications and services
deployed in the cloud. For example, an organization which has its website hosted in the cloud
can monitor the performance of tbe websit and also the website traffic. With the monitoring
data available at run-time users can make operational decisions such as scaling up or scaling
down cloud resources.
.'
Applications Layer - - --
I
I
L _1 .1 _ J ~
I
J J J J
I J I J Northbound Open API
------------r----- ----'--1- Control Layer --(-----'-'-" --- J ----- --,-,,-------,- .. "j
:1'--'-- ----,_---:-------:-
J
---:""-=---...11:
- ------------r----- -----
J Southbound Open API (OpenFlow)
- -------------~----- Infrastructure La~r --- --------t-------- ..
J I
J J
J I
J J
,
I
--~-------------------~--j
Figure 2.12: SDN architecture
SON Architecture
protocols. Network devices receive instructions from the SDN controller on how to forward
the packets. These devices can be simpler and cost less as they can be built from standard
hardware and software components.
Key elements of SDN are as follows:
• Centralized Network Controller: With decoupled the control and data planes and
centralized network controller, the network administrators can rapidly configure the
network. SDN applications can be deployed through programmable open APls. This
speeds up innovation as the network administrators no longer need to wait for the
device vendors to embed new features in their proprietary hardware.
• Programmable Open APIs: SDN architecture supports programmable open APls
for interface between the SDN application and control layers (Northbound interface).
These open APls that allow implementing various network services such as routing,
quality of service (QoS), access control, etc.
• Standard Communication Interface (Open Flow): SON architecture uses a standard
communication interface between the control and infrastructure layers (Southbound
interface). OpenFlow, which is defined by the Open Networking Foundation (ONF)
is the broadly accepted SON protocol for the Southbound interface. With OpenFlow,
the forwarding plane of the network devices can be directly accessed and manipulated.
OpenFlow uses the concept of flows to identify network traffic based on pre-defined
match rules. Flows can be programmed stalically or dynamically by the SON control
software. Figure 2.14 shows the components of an Open Flow switch comprising of one
or more flow tables and a group table, which perform packet lookups and forwarding,
and OpenFlow channel to an external controller. OpenFlow protocol is implemented
on both sides of the interface between the controller and the network devices. The
controller manages the switch via the OpenFlow switch protocol. The controller can
add, update, and delete flow entries in flow tables. Figure 2.15 shows an example of
an OpenFlow flow table. Each flow table contains a set of flow entries. Each flow
entry consists of match fields, counters, and a set of instructions to apply to matching
packets. Matching starts at the first flow table and may continue to additional flow
tables of the pipeline [12].
SDNlCantrolier
l, '
, Open Flow
Protocol
..,
Open Flow
Channel
ll
i
Group Table
,
1
,
1
1
~--
Pipeline
~etwork functions can be virtualized without SDN, similarly, SDN can run without NFV.
NFV Infrastructure
Figure 2.16 shows the NFV architecture, as being standardized by the European Telecom-
munications Standards Institute (ETSI) [11]. Key elements of the NFV architecture are as
follows:
• Virtualized Network Function (VNF): VNF is a software implementation of a net-
work function which is capable of running over the NFV Infrastructure (NFVI).
• NFV Infrastructure (NFVI): NFVI includes compute, network and storage resources
that are virtualized.
• NFV Management and Orchestration: NFV Management and Orchestration focuses
on all virtualization-specific management tasks and covers the orchestration and lifecy-
cle management of physical and/or software resources that support the infrastructure
virtualization, and the lifecycle management of VNFs.
NFV comprises of network functions implemented in software that run on virtualized re-
sources in the cloud. NFV enables a separation the network functions which are implemented
Virtualizat;on of
Security Functions
Virtu.1intlon of Virtuallzation of
Mobile Base Stations Mobile Core Network
in software from the underlying hardware. Thus network functions can be easily tested and
upgraded by installing new software while the hardware remains the same. Virtualizing
network functions reduces the equipment costs and also reduces power consumption. The
multi-tenanted nature of the cloud allows virtualized network functions to be shared for
multiple network services. NFV is applicable only to data plane and control plane functions
in fixed and mobile networks. Figure 2.17 shows use cases of NFV for home and enterprise
networks, content delivery networks, mobile base stations, mobile core network and security
functions.
2.9 MapReduce
MapReduce is a parallel data processing model for processing and analysis of massive scale
data [14]. MapReduce model has two phases: Map and Reduce. MapReduce programs
are written in a functional programming style to create Map and Reduce functions. The
input data to the map and reduce phases is in the form of key-value pairs. Run-time
systems for MapReduce are typically large clusters built of commodity hardware. The
MapReduce run-time systems take care of tasks such partitioning the data, scheduling of
jobs and communication between nodes in the cluster. This makes it easier for programmers
\0 analY2e massive scale data without worrying about tasks such as data partitioning and
scheduling. Figure 2.18 shows the workflow of MapReduce. In the Map phase, data is
read from a distributed file system, partitioned among a set of computing nodes in the
duster, and sent to the nodes as a set of key-value pairs. The Map tasks process the input
records independently of each other and produce intermediate results as key-value pairs. The
imermediate results are stored on the local disk of the node running the Map task. When all
;he Map tasks are completed, the Reduce phase begins in which the intermediate data with the
same key is aggregated. An optional Combine task can be used to perform data aggregation
00 the intermediate data of the same key for the output of the mapper before transferring
lite output to the Reduce task. Figure 2.19 shows the flow of data for a MapReduce job.
~{apReduce programs take a set of input key-value pairs and produce a set of output key-value
pairs. MapReduce programs take advantage of locality of data and the data processing takes
place on the nodes where the data resides. In traditional approaches for data analysis, data is
moved to the compute nodes which results in significant of data transmission between the
aodes in a cluster. MapReduce programming model moves the computation to where the
data resides thus decreasing the transmission of data and improving efficiency. MapReduce
programming model is well suited for parallel processing of massive scale data in which the
data analysis tasks can be accomplished by independent map and reduce operations.
Map Tasks
Input Output
, Reduce!~
,
A Service Level Agreement (SLA) for cloud specifies the level of service that is formally
defined as a part of the service contract with the cloud service provider. SLAs provide a
level of service for each service which is specified in the form of minimum level of service
guaranteed and a target level. SLAs contain a number of performance metrics and the
corresponding service level objectives. Table 2.5 lists the common criteria cloud SLAs.
User
(Resource Owner)
Cloud Identity
Provider
Third-party
2. 12 Billing
Good service providers offer a number of billing models described as follows:
Bostic Pricing
b elastic pricing or pay-as-you-use pricing model, the customers are charged based on the
-sa~e of cloud resources. Cloud computing provides the benefit of provision resources
co-demand. On-demand provisioning and elastic pricing models bring cost savings for
znstorners. Elastic pricing model is suited for customers who consume cloud resources for
saort durations and who cannot predict the usage beforehand.
Rxed Pricing
l.LI fixed pricing models, customers are charged a fixed amount per month for the cloud
resources. For example, fixed amount can be charged per month for running a virtual machine
iastance, irrespective of the actual usage. Fixed pricing model is suited for customers who
want to use cloud resources for longer durations and want more control over the cloud
expenses.
Spot Pricing
Spot pricing models offer variable pricing for cloud resources which is driven by market
demand. When the demand for cloud resources is high, the prices increase and when the
Administrator
Database
'--_-+-_~lcred;ntiaIS ~J User
.Y_erl!Lcation ~ Management
User Roles
Database
Summary
In this chapter you learned cloud computing concepts and enabling technologies such as
virtualization, load balancing, scalability & elasticity, deployment, replication, MapReduce,
identity & access management, service level agreements and billing. Virtualization partitions
the resources of a physical system (such as computing, storage, network and memory) into
multiple virtual resources and enables resource pooling and multi-tenancy.
Review Questions
1. What are the various layers in a virtualization architecture?
2. What is the difference between full and para-virtualization?
3. What are the benefits of load balancing?
4. What are sticky sessions?
5. What are the differences between traditional and on-demand scaling approaches?
6. What are the various stages in the deployment lifecycle?
7. What is the difference between array-based and host-based replication?
8. In MapReduce, what are the functions of map, reduce and combine tasks?
9. Describe three applications that can benefit from the MapReduce programming model?
10. What are the various criteria for service level agreements?