Unit 1 CC (R20)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

CLOUD COMPUTING LECTURE NOTES [B20CS4101]

CLOUD COMPUTING [B20CS4101]

UNIT 1
Introduction to Cloud Computing, Meaning of Cloud and History,
Evolution of Cloud Computing, Cloud essential Characteristics, Cloud
Computing Architecture: Cloud Service Models/Types (i.e., Public, Private,
Hybrid, and Community), Cloud deployment models (i.e., IaaS, PaaS,
SaaS, and PaaS), System models for Distributed and Cloud Computing,
Service Oriented Architecture, Performance, Security and Energy
Efficiency

⮚ Cloud Computing Meaning


Cloud computing is a technology that puts your entire computing
infrastructure in both hardware and software applications online. It
uses the internet, remote central servers to maintain data &
applications. Gmail, Yahoo mail, Facebook, Hotmail, Orkut, etc are all
the most basic and widely used examples of cloud computing.

The term “cloud” was actually derived from telephony. The


telecommunication companies offered Virtual Private Network
with good quality at affordable prices. The symbol of the cloud
represented the demarcation point which was the sole
responsibility of the provider. Cloud computing manages servers
and network infrastructure management.

Definition of Cloud Computing:

▪ IBM Defined as: Cloud computing is on-demand access, via the

internet, to computing resources—applications, servers (physical


servers and virtual servers), data storage, development tools,
networking capabilities, and more—hosted at a remote data
center managed by a cloud services provider (or CSP). The CSP
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

makes these resources available for a monthly subscription fee or


bills them according to usage.

▪ Amazon defined as: Cloud computing is the on-demand delivery


of IT resources over the Internet with pay-as-you-go pricing.
Instead of buying, owning, and maintaining physical data centers
and servers, you can access technology services, such as computing
power, storage, and databases, on an as-needed basis from a cloud
provider like Amazon Web Services (AWS).
▪ Definition from Wikipedia: Cloud computing is the on-demand
availability of computer system resources, especially data storage
(cloud storage) and computing power, without direct active
management by the user. Large clouds often have functions
distributed over multiple locations, each of which is a data center.
Cloud computing relies on sharing of resources to achieve
coherence and typically uses a pay-as-you-go model, which can
help in reducing capital expenses but may also lead to unexpected
operating expenses for users.

⮚ History of Cloud Computing

Let’s have a quick walkthrough of cloud computing history and evolution


all these years-

1960’s
One of the renowned names in Computer Science, John McCarthy,
enabled enterprises to use expensive mainframe and introduced the
whole concept of time-sharing. This turned out to be a huge contribution
to the pioneering of Cloud computing concept and establishment of
Internet.

1969
With the vision to interconnect the global
space, J.C.R. Licklider introduced the concepts of “Galactic
Network” and “Intergalactic Computer Network” and
also developed Advanced Research Projects Agency Network- ARPANET.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

1970
By this era, it was possible to run multiple Operating Systems in isolated
environment.

1997
Prof. Ramnath Chellappa introduced the concept of “Cloud Computing” in
Dallas.

1999
Salesforce.com started the whole concept of enterprise
applications through the medium of simple websites. Along with that, the
services firm also covered the way to help experts deliver
applications via the Internet.

2003
The Virtual Machine Monitor (VMM), that allows running of multiple virtual
guest operating systems on single device, paved way ahead for other
huge inventions.

2006
Amazon also started expanding in cloud services. From EC2 to
Simple Storage Service S3, they introduced pay-as-you-go model, which
has become a standard practice even today.

2013
With IaaS, (Infrastructure-as-a-Service), the Worldwide Public Cloud
Services Market was totalled at £78bn, which turned out to be the fastest
growing market services of that year.

⮚ The History / Evolution of Cloud Computing

In making cloud computing what it is today, five technologies played a


vital role. These are distributed systems and its peripherals, virtualization,
web 2.0, service orientation, and utility computing.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

● Distributed Systems: It is a composition of multiple independent


systems but all of them are depicted as a single entity to the users. The
purpose of distributed systems is to share resources and also use them
effectively and efficiently. Distributed systems possess characteristics
such as scalability, concurrency, continuous availability, heterogeneity,
and independence in failures. But the main problem with this system
was that all the systems were required to be present at the same
geographical location. Thus to solve this problem, distributed
computing led to three more types of computing and they
were-Mainframe computing, cluster computing, and grid computing.

● Mainframe computing: Mainframes which first came into existence in


1951 are highly powerful and reliable computing machines. These are
responsible for handling large data such as massive input-output
operations. Even today these are used for bulk processing tasks such as
online transactions etc. These systems have almost no downtime with
high fault tolerance. After distributed computing, these increased the
processing capabilities of the system. But these were very expensive.
To reduce this cost, cluster computing came as an alternative to
mainframe technology.

● Cluster computing: In 1980s, cluster computing came as an


alternative to mainframe computing. Each machine in the cluster was
connected to each other by a network with high bandwidth. These were
way cheaper than those mainframe systems. These were equally
capable of high computations. Also, new nodes could easily be added to
the cluster if it was required. Thus, the problem of the cost was solved
to some extent but the problem related to geographical restrictions still
pertained. To solve this, the concept of grid computing was introduced.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

● Grid computing: In 1990s, the concept of grid computing was


introduced. It means that different systems were placed at entirely
different geographical locations and these all were connected via the
internet. These systems belonged to different organizations and thus
the grid consisted of heterogeneous nodes. Although it solved some
problems but new problems emerged as the distance between the
nodes increased. The main problem which was encountered was the low
availability of high bandwidth connectivity and with it other network
associated issues. Thus. cloud computing is often referred to as
“Successor of grid computing”.

● Virtualization: It was introduced nearly 40 years back. It refers to the


process of creating a virtual layer over the hardware which allows the
user to run multiple instances simultaneously on the hardware. It is a
key technology used in cloud computing. It is the base on which major
cloud computing services such as Amazon EC2, VMware vCloud, etc
work on. Hardware virtualization is still one of the most common types
of virtualization.

● Web 2.0: It is the interface through which the cloud computing


services interact with the clients. It is because of Web 2.0 that we have
interactive and dynamic web pages. It also increases flexibility among
web pages. Popular examples of web 2.0 include Google Maps,
Facebook, Twitter, etc. Needless to say, social media is possible because
of this technology only. It gained major popularity in 2004.

● Service orientation: It acts as a reference model for cloud computing.


It supports low-cost, flexible, and evolvable applications. Two important
concepts were introduced in this computing model. These were Quality
of Service (QoS) which also includes the SLA (Service Level Agreement)
and Software as a Service (SaaS).

● Utility computing: It is a computing model that defines service


provisioning techniques for services such as compute services along
with other major services such as storage, infrastructure, etc which are
provisioned on a pay-per-use basis.

Thus, the above technologies contributed to the making of cloud


computing.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

⮚ Cloud Essential Characteristics


The National Institute of Standards and Technology's definition of cloud
computing identifies "five essential characteristics":

● On-demand self-service. A consumer can unilaterally provision


computing capabilities, such as server time and network storage, as
needed automatically without requiring human interaction with each
service provider.

● Broad network access. Capabilities are available over the network


and accessed through standard mechanisms that promote use by
heterogeneous thin or thick client platforms (e.g., mobile phones,
tablets, laptops, and workstations).

● Resource pooling. The provider's computing resources are pooled


to serve multiple consumers using a multi-tenant model, with
different physical and virtual resources dynamically assigned and
reassigned according to consumer demand.

● Rapid elasticity. Capabilities can be elastically provisioned and


released, in some cases automatically, to scale rapidly outward and
inward commensurate with demand. To the consumer, the capabilities
available for provisioning often appear unlimited and can be
appropriated in any quantity at any time.

● Measured service. Cloud systems automatically control and


optimize resource use by leveraging a metering capability at some
level of abstraction appropriate to the type of service (e.g., storage,
processing, bandwidth, and active user accounts). Resource usage
can be monitored, controlled, and reported, providing transparency
for both the provider and consumer of the utilized service.

⮚ Cloud Computing Architecture


CLOUD COMPUTING LECTURE NOTES [B20CS4101]

The cloud architecture is divided into 2 parts i.e.


1 Frontend
2 Backend

The below figure represents an internal architectural view of cloud


computing.

Figure: Cloud Computing Internal View of Architecture

Architecture of cloud computing is the combination of both SOA (Service


Oriented Architecture) and EDA (Event Driven Architecture). Client
infrastructure, application, service, runtime cloud, storage, infrastructure,
management and security all these are the components of cloud
computing architecture.
1. Frontend :
Frontend of the cloud architecture refers to the client side of cloud
computing system. Means it contains all the user interfaces and
applications which are used by the client to access the cloud computing
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

services/resources. For example, use of a web browser to access the


cloud platform.
● Client Infrastructure – Client Infrastructure is a part of the frontend
component. It contains the applications and user interfaces which are
required to access the cloud platform.
● In other words, it provides a GUI( Graphical User Interface ) to
interact with the cloud.
2. Backend :
Backend refers to the cloud itself which is used by the service provider. It
contains the resources as well as manages the resources and provides
security mechanisms. Along with this, it includes huge storage, virtual
applications, virtual machines, traffic control mechanisms, deployment
models, etc.
❖ Application – Application in backend refers to a software or platform
to which client accesses. Means it provides the service in backend as
per the client requirement.
❖ Service – Service in backend refers to the major three types of cloud
based services like SaaS, PaaS and IaaS. Also manages which type of
service the user accesses.
❖ Runtime Cloud- Runtime cloud in backend provides the execution
and Runtime platform/environment to the Virtual machine.
❖ Storage – Storage in backend provides flexible and scalable storage
service and management of stored data.
❖ Infrastructure – Cloud Infrastructure in backend refers to the
hardware and software components of cloud like it includes servers,
storage, network devices, virtualization software etc.
❖ Management – Management in backend refers to management of
backend components like application, service, runtime cloud, storage,
infrastructure, and other security mechanisms etc.
❖ Security – Security in backend refers to implementation of different
security mechanisms in the backend for secure cloud resources,
systems, files, and infrastructure to end-users.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

❖ Internet – Internet connection acts as the medium or a bridge


between frontend and backend and establishes the interaction and
communication between frontend and backend.
❖ Database – Database in backend refers to provide database for
storing structured data, such as SQL and NOSQL databases. Example
of Databases services include Amazon RDS, Microsoft Azure SQL
database and Google CLoud SQL.
❖ Networking – Networking in backend services that provide
networking infrastructure for application in the cloud, such as load
balancing, DNS and virtual private networks.
❖ Analytics – Analytics in backend service that provides analytics
capabillities for data in the cloud, such as warehousing, bussness
intellegence and machine learning.

Benefits of Cloud Computing Architecture:


▪ Makes overall cloud computing system simpler.
▪ Improves data processing requirements.
▪ Helps in providing high security.
▪ Makes it more modularized.
▪ Results in better disaster recovery.
▪ Gives good user accessibility.
▪ Reduces IT operating costs.
▪ Provides high level reliability.
▪ Scalability.

⮚ Cloud Service Models/Types


The offers are mainly categorized into the following service models:

✔ On-premises: On-premises describes a model in which the user


manages all resources alone.
✔ Infrastructure as a Service (IaaS): IaaS describes a model
in which the cloud provider gives the consumer the ability to create
and configure resources from the computing layer upwards. This
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

includes virtual machines, containers, networks, appliances, and


many other infrastructure-related resources.
✔ Platform as a Service (PaaS): PaaS gives the
consumer an environment from the operating system upwards. So
the consumer is not responsible for the underlying infrastructure.
✔ Software as a Service (SaaS): SaaS is the model with the lowest
levels of control and required management. A SaaS application is
reachable from multiple clients and consumers, and the owning
consumer doesn't have any control over the backend, except for
application-related management tasks.

Figure: Cloud Computing Service Models/Types

IAAS: Changing Its Hardware Infrastructure on Demand

The Infrastructure as a Service (IAAS) means the hiring & utilizing of the
Physical Infrastructure of IT (network, storage, and servers) from a
third-party provider. The IT resources are hosted on external servers, and
users can access them via an internet connection.

The Benefits
o Time and cost savings: No installation and maintenance of IT
hardware in-house,
o Better flexibility: On-demand hardware resources that can be
tailored to your needs,
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

o Remote access and resource management.

For Who?

This cloud computing service model is ideal for large accounts,


enterprises, or organizations to build and manage their own IT platforms.
However, they want the flexibility to amend their Infrastructure according
to their needs.

PAAS: Providing a Flexible Environment for Your Software


Applications

Platform as a Service (PAAS) allows outsourcing of hardware


infrastructure and software environment, including databases, integration
layers, runtimes, and more.

The Benefits
o Focus on development: Mastering the installation and development
of software applications.
o Time saving and flexibility: no need to manage the implementation
of the platform, instant production.
o Data security: You control the distribution, protection, and backup
of your business data.

For Who?

It is ideal for companies wanting to maintain control over their business


applications. However, they wish to get rid of constraints to manage the
hardware infrastructure and software environment.

SAAS: Releasing the User Experience of Management Constraints

Software as a Service (SaaS) is provided over the internet and requires


no prior installation. The services can be availed from any part of the
world at a minimal per-month fee.

The Benefits
o You are entirely free from the infrastructure management and
aligning software environment: no installation or software
maintenance.
o You benefit from automatic updates with the guarantee that all
users have the same software version.
o It enables easy and quicker testing of new software solutions.

For Who?
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

SAAS model accounts for 60% of sales of cloud solutions. Hence, it is


applicable and preferred by most companies.

The cloud service models describe to what extent your resources are
managed by yourself or by your cloud service providers.

⮚ Cloud Deployment Models

Cloud Deployment Model functions as a virtual computing environment


with a deployment architecture that varies depending on the amount of
data you want to store and who has access to the infrastructure.

Different types of cloud computing deployment models are described


below.

⮚ Public cloud
⮚ Private cloud
⮚ Hybrid cloud
⮚ Community cloud

● Public Cloud

Public clouds are managed by third parties which provide cloud services
over the internet to the public, these services are available as
pay-as-you-go billing models.

They offer solutions for minimizing IT infrastructure costs and become a


good option for handling peak loads on the local infrastructure. Public
clouds are the go-to option for small enterprises, which can start their
businesses without large upfront investments by completely relying on
public infrastructure for their IT needs.

The fundamental characteristics of public clouds are multitenancy. A


public cloud is meant to serve multiple users, not a single customer. A
user requires a virtual computing environment that is separated, and
most likely isolated, from other users.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

Figure: Public cloud

Advantages

● High Scalability
● Cost Reduction
● Reliability and flexibility
● Disaster Recovery
Disadvantages

● Loss of control over data


● Data security and privacy
● Limited Visibility
● Unpredictable cost
Examples
Amazon Aws, Microsoft Azure, Google Cloud Platform (GCP)

● Private cloud

Private clouds are distributed systems that work on private infrastructure


and provide the users with dynamic provisioning of computing resources.
Instead of a pay-as-you-go model in private clouds, there could be other
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

schemes that manage the usage of the cloud and proportionally billing of
the different departments or sections of an enterprise. Private cloud
providers are HP Data Centers, Ubuntu, Elastic-Private cloud, Microsoft,
etc.

Figure: Private Cloud

Advantages

1. Customer information protection: In the private cloud security


concerns are less since customer data and other sensitive
information do not flow out of private infrastructure.
2. Infrastructure ensuring SLAs: Private cloud provides specific
operations such as appropriate clustering, data replication, system
monitoring, and maintenance, disaster recovery, and other uptime
services.
3. Compliance with standard procedures and operations: Specific
procedures have to be put in place when deploying and executing
applications according to third-party compliance standards. This is
not possible in the case of the public cloud.
Disadvantages
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

1. The restricted area of operations: Private cloud is accessible within a


particular area. So the area of accessibility is restricted.
2. Expertise requires: In the private cloud security concerns are less
since customer data and other sensitive information do not flow out
of private infrastructure. Hence skilled people are required to manage
& operate cloud services.

Examples

Red Hat OpenStack, CISCO, DELL, Rackspace, IBM Bluemix Private Cloud,
Microsoft Azure Stack, and VMware Private Cloud

● Hybrid cloud:

A hybrid cloud is a heterogeneous distributed system formed by


combining facilities of the public cloud and private cloud. For this reason,
they are also called heterogeneous clouds.

A major drawback of private deployments is the inability to scale


on-demand and efficiently address peak loads. Here public clouds are
needed. Hence, a hybrid cloud takes advantage of both public and private
clouds.

Figure: Hybrid Cloud

Advantages
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

1 Cost: Available at a cheap cost than other clouds because it is formed


by a distributed system.
2 Speed: It is efficiently fast with lower cost, It reduces the latency of
the data transfer process.
3 Security: Most important thing is security. A hybrid cloud is totally
safe and secure because it works on the distributed system network.

Disadvantages

1. It’s possible that businesses lack the internal knowledge necessary to


create such a hybrid environment. Managing security may also be
more challenging. Different access levels and security considerations
may apply in each environment.
2. Managing a hybrid cloud may be more difficult. With all of the
alternatives and choices available today, not to mention the new
PaaS components and technologies that will be released every day
going forward, public cloud and migration to public cloud are already
complicated enough. It could just feel like a step too far to include
hybrid.

Examples

Netflix, Hulu, Uber and Airbnb using hybrid platforms like AWS Outposts,
Azure Stack, Azure Arc, Microsoft Azure VMware Solution, Google Anthos,
Nutanix Cloud Infrastructure, Nutanix Cloud Clusters, VMware Cloud
Foundation, and VMware Cloud on AWS.

● Community Cloud

Community Cloud is a cloud service model that provides a cloud


computing solution to a limited number of individuals or organizations1. It
is a multi-tenant cloud platform that companies can use for working on a
shared platform. In a community cloud, multiple organizations share
resources and services based on common operational and regulatory
requirements. The cloud infrastructure is provisioned for exclusive use by
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

a specific community of consumers from organizations that have shared


concerns.

Advantages:

● Cost
● Flexible and Scalable
● Security
● Sharing infrastructure

Disadvantages:

● Slow adoption to data


● Fixed amount of data storage and bandwidth
● Sharing responsibilities among organizations is difficult.

Example:

Our government organization within India may share computing


infrastructure in the cloud to manage data.

⮚ System Models for Distributed and Cloud Computing

Distributed and cloud computing systems are built over a large number of
autonomous computer nodes. These node machines are interconnected by
SANs, LANs, or WANs in a hierarchical manner.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

With today’s networking technology, a few LAN switches can easily


connect hundreds of machines as a working cluster. A WAN can connect
many local clusters to form a very large cluster of clusters. In this sense,
one can build a massive system with millions of computers connected to
edge networks.
Massive systems are considered highly scalable, and can reach web-scale
connectivity, either physically or logically. In Table 1.2, massive systems
are classified into four groups: clusters, P2P networks, computing grids,
and Internet clouds over huge data centers. In terms of node number,
these four system classes may involve hundreds, thousands, or even
millions of computers as participating nodes. These machines work
collectively, cooperatively, or collaboratively at various levels. The table
entries characterize these four system classes in various technical and
application aspects.

❖ Computing Clusters
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

A computing cluster consists of interconnected stand-alone computers


which work cooperatively as a single integrated computing resource. In
the past, clustered computer systems have demonstrated impressive
results in handling heavy workloads with large data sets.

❖ Peer-to-Peer Networks
o A distributed system architecture
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

o Each computer in the network can act as a client or server for other
network computers.
o No centralized control
o Typically many nodes, but unreliable and heterogeneous
o Nodes are symmetric in function
o Take advantage of distributed, shared resources (bandwidth, CPU,
storage) on peer-nodes
o Fault-tolerant, self-organizing
o Operate in dynamic environment, frequent join and leave is the norm.

Figure 1.17 shows the architecture of a P2P network at two abstraction


levels. Initially, the peers are totally unrelated. Each peer machine joins
or leaves the P2P network voluntarily. Only the participating peers form
the physical network at any time. Unlike the cluster or grid, a P2P
network does
not use a dedicated interconnection network. The physical network is
simply an ad hoc network formed at various Internet domains randomly
using the TCP/IP and NAI protocols. Thus, the physical network varies in
size and topology dynamically due to the free membership in the P2P
network.

Overlay network is a virtual network formed by mapping each physical


machine with its ID, logically, through a virtual mapping as shown in
Figure 1.17. When a new peer joins the system, its peer ID is added as a
node in the overlay network. When an existing peer leaves the system, its
peer ID is removed from the overlay network automatically. Therefore, it
is the P2P overlay network that characterizes the logical connectivity
among the peers.
There are two types of overlay networks: unstructured and structured.
▪ Unstructured overlay network is characterized by a random graph.
There is no fixed route to send messages or files among the nodes.
Often, flooding is applied to send a query to all nodes in an
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

unstructured overlay, thus resulting in heavy network traffic and


nondeterministic search results.
▪ Structured overlay networks follow certain connectivity topology and
rules for inserting and removing nodes (peer IDs) from the overlay
graph. Routing mechanisms are developed to take advantage of the
structured overlays.

❖ Computational/Data Grids
Grid technology demands new distributed computing models,
software/middleware support, network protocols, and hardware
infrastructures. National grid projects are followed by industrial grid
platform development by IBM, Microsoft, Sun, HP, Dell, Cisco, EMC,
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

Platform Computing, and others. New grid service providers (GSPs) and
new grid applications have emerged rapidly, similar to the growth of
Internet and web services in the past two decades.

In Table 1.4, grid systems are classified in essentially two categories:


computational or data grids and P2P grids. Computing or data grids are
built primarily at the national level.

❖ Cloud Platforms
Refer to introduction of cloud computing.

⮚ Service Oriented Architecture

Service-oriented architecture (SOA) has evolved over the years. SOA


applies to building grids, clouds, grids of clouds, clouds of grids, clouds of
clouds (also known as interclouds), and systems of systems in general.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

In grids/web services, Java, and CORBA, an entity is, respectively, a


service, a Java object, and a CORBA distributed object in a variety of
languages. These architectures build on the traditional seven Open
Systems Interconnection (OSI) layers that provide the base networking
abstractions. On top of this we have a base software environment, which
would be .NET or Apache Axis for web services, the Java Virtual Machine
for Java, and a broker network for CORBA. On top of this base
environment one would build a higher level environment reflecting the
special features of the distributed computing environment. This starts
with entity interfaces and inter-entity communication, which rebuild the
top four OSI layers but at the entity and not the bit level. Figure 1.20
shows the layered architecture for distributed entities used in web
services and grid systems.

Figure: Layered architecture for web services and grid systems

The entity interfaces correspond to the Web Services Description


Language (WSDL), Java method, and CORBA interface definition language
(IDL) specifications in these example distributed systems. These
interfaces are linked with customized, high-level communication systems:
SOAP, RMI, and IIOP in the three examples. These communication
systems support features including particular message patterns (such as
Remote Procedure Call or RPC), fault recovery, and specialized routing.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

Often, these communication systems are built on message-oriented


middleware (enterprise bus) infrastructure such as Web-Sphere MQ or
Java Message Service (JMS) which provide rich functionality and support
virtualization

of routing, senders, and recipients.

In the case of fault tolerance, the features in the Web Services Reliable
Messaging (WSRM) framework mimic the OSI layer capability (as in TCP
fault tolerance) modified to match the different abstractions (such as
messages versus packets, virtualized addressing) at the entity levels.
Security is a critical capability that either uses or reimplements the
capabilities seen in concepts such as Internet Protocol Security (IPsec)
and secure sockets in the OSI layers.

The CORBA Trading Service, UDDI (Universal Description, Discovery, and


Integration), LDAP (Lightweight Directory Access Protocol), and ebXML
(Electronic Business using XML) are other examples of discovery and
information services.

In the earlier years, CORBA and Java approaches were used in distributed
systems rather than today’s SOAP, XML, or REST.

▪ SOAP- Simple Object Access Protocol is a light-weight message


protocol that enables the distributed elements of an application to
communicate. SOAP can be carried over a variety of standard
protocols, including the web-related Hypertext Transfer Protocol
(HTTP)
▪ XML- eXtensible Markup Language can refer to different ways of
using XML data and formats to communicate between applications.
An XML API can receive, convert, send, query, or match XML data
depending on the purpose and design of the API. XML is a flexible
way to create information formats and share structured data online,
while API is a set of functions and procedures that allow one
application to access features of other applications. XML API
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

endpoints are the URIs that define the scope and method of the
XML API operations.
▪ REST- REpresentational State Transfer is an architectural style that
defines a set of constraints to be used for creating web services.
REST API is a way of accessing web services in a simple and flexible
way without having any processing.

⮚ Performance, Security and Energy Efficiency


❖ Performance and Scalability
o Performance metrics are needed to measure various distributed
systems.
o To estimate processor and network performance CPU speed in MIPS
and network bandwidth in Mbps are considered.
o In a distributed system, performance is attributed to a large
number of factors.
o System throughput is often measured in MIPS, Tflops (tera
floating-point operations per second), or TPS (transactions per
second). Other measures include job response time and network
latency. An interconnection network that has low latency and high
bandwidth is preferred.
o System overhead is often attributed to OS boot time, compile time,
I/O data rate, and the runtime support system used.
o Other performance-related metrics include the QoS for Internet and
web services; system availability and dependability; and security
resilience for system defense against network attacks.
Dimensions of Scalability
The following dimensions of scalability are characterized in parallel and
distributed systems:
o Size scalability This refers to achieving higher performance or more
functionality by increasing the machine size. The word “size” refers to
adding processors, cache, memory, storage, or I/O channels. The
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

most obvious way to determine size scalability is to simply count the


number of processors installed.
o Software scalability This refers to upgrades in the OS or compilers,
adding mathematical and engineering libraries, porting new application
software, and installing more user-friendly programming
environments. Some software upgrades may not work with large
system configurations. Testing and fine-tuning of new software on
larger systems is a nontrivial job.
o Application scalability This refers to matching problem size scalability
with machine size scalability. Problem size affects the size of the data
set or the workload increase. Instead of increasing machine size, users
can enlarge the problem size to enhance system efficiency or
cost-effectiveness.
o Technology scalability This refers to a system that can adapt to
changes in building technologies. When scaling a system design with
new technology one must consider three aspects: time, space, and
heterogeneity.
1 Time refers to generation scalability. When changing to
new-generation processors, one must consider the impact to the
motherboard, power supply, packaging and cooling, and so forth.
Based on past experience, most systems upgrade their commodity
processors every three to five years.
2 Space is related to packaging and energy concerns. Technology
scalability demands harmony and portability among suppliers.
3 Heterogeneity refers to the use of hardware components or
software packages from different vendors. Heterogeneity may limit
the scalability.

❖ Security

Network Threats and Data Integrity


CLOUD COMPUTING LECTURE NOTES [B20CS4101]

Clusters, grids, P2P networks, and clouds demand security and copyright
protection if they are to be accepted in today’s digital society.

Threats to Systems and Networks

Figure 1.25 summarizes various attack types and their potential damage
to users. As the figure shows, information leaks lead to a loss of
confidentiality. Loss of data integrity may be caused by user alteration,
Trojan horses, and service spoofing attacks. A denial of service (DoS)
results in a loss of system operation and Internet connections. Lack of
authentication or authorization leads to attackers’ illegitimate use of
computing resources. Open resources such as data centers, P2P
networks, and grid and cloud infrastructures could become the next
targets. Users need to protect clusters, grids, clouds, and P2P systems.
Otherwise, users should not use or trust them for outsourced work.
Malicious intrusions to these systems may destroy valuable hosts, as well
as network and storage resources. Internet anomalies found in routers,
gateways, and distributed hosts may hinder the acceptance of these
public-resource computing services.

Security Responsibilities

Three security requirements are often considered: confidentiality,


integrity, and availability for most Internet service providers and cloud
users. In the order of SaaS, PaaS, and IaaS, the providers gradually
release the responsibility of security control to the cloud users. In
summary, the SaaS model relies on the cloud provider to perform all
security functions. At the other extreme, the IaaS model wants the users
to assume almost all security functions, but to leave availability in the
hands of the providers. The PaaS model relies on the provider to maintain
data integrity and availability, but burdens the user with confidentiality
and privacy control.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

❖ Energy Efficiency in Distributed Computing

Primary performance goals in conventional parallel and distributed


computing systems are high performance and high throughput,
considering some form of performance reliability (e.g., fault tolerance and
security). However, these systems recently encountered new challenging
issues including energy efficiency, and workload and resource
outsourcing. These emerging issues are crucial not only on their own, but
also for the sustainability of large-scale computing systems in general.

Energy Consumption of Unused Servers

To run a server farm (data center) a company has to spend a huge


amount of money for hardware, software, operational support, and
energy every year. Therefore, companies should thoroughly identify
whether their installed server farm (more specifically, the volume of
provisioned resources) is at an appropriate level, particularly in terms of
utilization. It was estimated in the past that, on average, one-sixth (15
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

percent) of the full-time servers in a company are left powered on without


being actively used (i.e., they are idling) on a daily basis. This indicates
that with 44 million servers in the world, around 4.7 million servers are
not doing any useful work.

Reducing Energy in Active Servers

In addition to identifying unused/underutilized servers for energy savings,


it is also necessary to apply appropriate techniques to decrease energy
consumption in active distributed systems with negligible influence on
their performance. Power management issues in distributed computing
platforms can be categorized into four layers (see Figure 1.26): the
application layer, middleware layer, resource layer, and network layer.

Application Layer

Until now, most user applications in science, business, engineering, and


financial areas tend to increase a system’s speed or quality. By
introducing energy-aware applications, the challenge is to design
sophisticated multilevel and multi-domain energy management
applications without hurting performance. The first step toward this end is
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

to explore a relationship between performance and energy consumption.


Indeed, an application’s energy consumption depends strongly on the
number of instructions needed to execute the application and the number
of transactions with the storage unit (or memory). These two factors
(compute and storage) are correlated and they affect completion time.

Middleware Layer

The middleware layer acts as a bridge between the application layer and
the resource layer. This layer provides resource broker, communication
service, task analyzer, task scheduler, security access, reliability control,
and information service capabilities. It is also responsible for applying
energy-efficient techniques, particularly in task scheduling. Until recently,
scheduling was aimed at minimizing makespan, that is, the execution
time of a set of tasks. Distributed computing systems necessitate a new
cost function covering both makespan and energy consumption.

Resource Layer

The resource layer consists of a wide range of resources including


computing nodes and storage units. This layer generally interacts with
hardware devices and the operating system; therefore, it is responsible
for controlling all distributed resources in distributed computing systems.
In the recent past, several mechanisms have been developed for more
efficient power management of hardware and operating systems. The
majority of them are hardware approaches particularly for processors.

Dynamic power management (DPM) and dynamic voltage-frequency


scaling (DVFS) are two popular methods incorporated into recent
computer hardware systems. In DPM, hardware devices, such as the CPU,
have the capability to switch from idle mode to one or more lower- power
modes. In DVFS, energy savings are achieved based on the fact that the
power consumption in CMOS circuits has a direct relationship with
frequency and the square of the voltage supply. Execution time and power
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

consumption are controllable by switching among different frequencies


and voltages.

Network Layer

Routing and transferring packets and enabling network services to the


resource layer are the main responsibility of the network layer in
distributed computing systems. The major challenge to build
energy-efficient networks is, again, determining how to measure, predict,
and create a balance between energy consumption and performance. Two
major challenges to designing energy-efficient networks are:

•The models should represent the networks comprehensively as they


should give a full understanding of interactions among time, space, and
energy.
•New, energy-efficient routing algorithms need to be developed. New,
energy-efficient protocols should be developed against network attacks.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

Additional content on Performance and Scalability

Scalability versus OS Image Count

In Figure 1.23, scalable performance is estimated against the multiplicity of OS images in distributed
systems deployed up to 2010. Scalable performance implies that the system can achieve higher
speed by adding more processors or servers, enlarging the physical node’s memory size, extending
the disk capacity, or adding more I/O channels. The OS image is counted by the number of
independent OS images observed in a cluster, grid, P2P network, or the cloud. An SMP (symmetric
multiprocessor) server has a single system image, which could be a single node in a large cluster.

NUMA (nonuniform memory access) machines are often made out of SMP nodes with distributed,
shared memory. A NUMA machine can run with multiple operating systems, and can scale to a few
thousand processors communicating with the MPI library. For example, a NUMA machine may have
2,048 processors running 32 SMP operating systems, resulting in 32 OS images in the
2,048-processor NUMA system. The cluster nodes can be either SMP servers or high-end machines
that are loosely coupled together. The cloud could be a virtualized cluster. As of 2010, the largest
cloud was able to scale up to a few thousand VMs.

Keeping in mind that many cluster nodes are SMP or multicore servers, the total number of pro-
cessors or cores in a cluster system is one or two orders of magnitude greater than the number of
OS images running in the cluster. The grid node could be a server cluster, or a mainframe, or a
supercomputer, or an MPP. Therefore, the number of OS images in a large grid structure could be
hundreds or thousands fewer than the total number of processors in the grid. A P2P network can
easily scale to millions of independent peer nodes, essentially desktop machines.

Amdahl’s Law

Consider the execution of a given program on a uniprocessor workstation with a total execution time
of T minutes. Now, let’s say the program has been parallelized or partitioned for parallel execution on
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

a cluster of many processing nodes. Assume that a fraction α of the code must be executed
sequentially, called the sequential bottleneck. Therefore, (1 − α) of the code can be compiled for
parallel execution by n processors. The total execution time of the program is calculated by α T + (1 −
α)T/n, where the first term is the sequential execution time on a single processor and the second
term is the parallel execution time on n processing nodes.

All system or communication overhead is ignored here. The I/O time or exception handling time is
also not included in the following speedup analysis. Amdahl’s Law states that the speedup factor of
using the n-processor system over the use of a single processor is expressed by:

The maximum speedup of n is achieved only if the sequential bottleneck α is reduced to zero or the
code is fully parallelizable with α = 0.

The sequential bottleneck is the portion of the code that cannot be parallelized. For example, the
maximum speedup achieved is 4, if α = 0.25 or 1 − α = 0.75, even if one uses hundreds of processors.
Amdahl’s law teaches us that we should make the sequential bottleneck as small as possible.
Increasing the cluster size alone may not result in a good speedup in this case.

Problem with Fixed Workload

In Amdahl’s law, we have assumed the same amount of workload for both sequential and parallel
execution of the program with a fixed problem size or data set. This was called fixed-workload
speedup. To execute a fixed workload on n processors, parallel processing may lead to a system
efficiency defined as follows:

Very often the system efficiency is rather low, especially when the cluster size is very large. To
execute the aforementioned program on a cluster with n = 256 nodes, extremely low efficiency E =
1/[0.25 × 256 + 0.75] = 1.5% is observed. This is because only a few processors (say, 4) are kept busy,
while the majority of the nodes are left idling.

Gustafson’s Law

To achieve higher efficiency when using a large cluster, we must consider scaling the problem size to
match the cluster capability. This leads to the following speedup law proposed by John Gustafson
(1988), referred as scaled-workload speedup. Let W be the workload in a given program. When using
an n-processor system, the user scales the workload to W′ = αW + (1 − α)nW. Note that only the
parallelizable portion of the workload is scaled n times in the second term. This scaled workload W′ is
essentially the sequential execution time on a single processor. The parallel execution time of a
scaled workload W′ on n processors is defined by a scaled-workload speedup as follows:

This speedup is known as Gustafson’s law. By fixing the parallel execution time at level W, the
following efficiency expression is obtained:
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

For the preceding program with a scaled workload, we can improve the efficiency of using a
256-node cluster to E′ = 0.25/256 + 0.75 = 0.751. One should apply Amdahl’s law and Gustafson’s law
under different workload conditions. For a fixed workload, users should apply Amdahl’s law. To solve
scaled problems, users should apply Gustafson’s law.

Fault Tolerance and System Availability

In addition to performance, system availability and application flexibility are two other important
design goals in a distributed computing system.

System Availability

HA (high availability) is desired in all clusters, grids, P2P networks, and cloud systems. A system is
highly available if it has a long mean time to failure (MTTF) and a short mean time to repair (MTTR).
System availability is formally defined as follows:

System availability is attributed to many factors. All hardware, software, and network components
may fail. Any failure that will pull down the operation of the entire system is called a single point of
failure. The rule of thumb is to design a dependable computing system with no single point of failure.
Adding hardware redundancy, increasing component reliability, and designing for testability will help
to enhance system availability and dependability.

In Figure 1.24, the effects on system availability are estimated by scaling the system size in terms of
the number of processor cores in the system.

In general, as a distributed system increases in size, availability decreases due to a higher chance of
failure and a difficulty in isolating the failures. Both SMP and MPP are very vulnerable with
centralized resources under one OS. NUMA machines have improved in availability due to the use of
multiple OSes. Most clusters are designed to have HA with failover capability. Meanwhile, private
clouds are created out of virtualized data centers; hence, a cloud has an estimated availability similar
to that of the hosting cluster. A grid is visualized as a hierarchical cluster of clusters. Grids have higher
availability due to the isolation of faults. Therefore, clusters, clouds, and grids have decreasing
availability as the system increases in size. A P2P file-sharing network has the highest aggregation of
client machines. However, it operates independently with low availability, and even many peer nodes
depart or fail simultaneously.
CLOUD COMPUTING LECTURE NOTES [B20CS4101]

You might also like