Cloud
Computing
LECTURE 3
Contents
Introduction
What is Cloud Computing?
Characteristics of cloud computing
Advantages and risks of Cloud Computing
Cloud Architectures and Functionality
Cloud deployment models
Cloud Service models
Learning Objectives
The objectives of this chapter are to
• Understand the basic ideas and motivation for cloud computing
• To define cloud computing
• Understand the 5-4-3 principles of cloud computing and cloud
ecosystem
• Understand the working of a cloud application
• Have a brief understanding on the benefits and drawbacks in
cloud
computing
What is cloud
computing?
“a style of computing in which massively scalable IT-related capabilities
are provided “as a service” using Internet technologies to multiple
external customers”
(Gartner 2008b)
“ Large-scale distributed computing paradigm that is driven by
economies of scale, in which a pool of abstracted, virtualized,
dynamically-scalable, managed computing power, storage, platforms,
and services are delivered on demand to external customers over the
Internet.”
Foster et al. (2008)
What is cloud
computing?
Cloud computing is Internet-based computing, whereby
shared resources, software, and information are provided to
computers and other devices on demand, like the electricity
grid.
Wikipedia
A Cloud is a type of parallel and distributed system consisting of
a collection of interconnected and virtualized computers that are
dynamically provisioned and presented as one or more unified
computing resources based on service-level agreements
established through negotiation between the service provider and
consumers.
Buyya
NIST Definition of Cloud
Computing
The formal definition of cloud computing comes from the
National Institute of Standards and Technology (NIST):
“Cloud computing is a model for enabling convenient, on-
demand network access to a shared pool of configurable
computing resources (e.g., networks, servers, storage,
applications, and services) that can be rapidly provisioned
and released with minimal management
effort or service provider interaction.
What is cloud
computing?
“Clouds are a large pool of easily usable and
accessible virtualized resources (such as hardware,
development platforms and/or services). These
resources can be dynamically reconfigured to adjust
to a variable load (scale), allowing also for an
optimum resource utilization. This pool of resources
is typically exploited by a pay-per-use model in
which guarantees are offered by the Infrastructure
Provider by means of customized SLAs.”
Vaquero et al. (2008)
Motivation for cloud
computing
Cost
Availability
Reliability
Essential Characteristics
of Cloud Computing
Essential
Characteristics of
Cloud Computing
On-demand self-services:
The Cloud computing services does not require any human administrators, user themselves are able to
provision, monitor and manage computing resources as needed.
Broad network access:
The Computing services are generally provided over standard networks and heterogeneous devices.
Rapid elasticity:
The Computing services should have IT resources that are able to scale out and in quickly and on as
needed basis. Whenever the user require services it is provided to him and it is scale out as soon as its
requirement gets over.
Resource pooling:
The IT resource (e.g., networks, servers, storage, applications, and services) present are shared across
multiple applications and occupant in an uncommitted manner. Multiple clients are provided service
from a same physical resource.
Measured service:
The resource utilization is tracked for each application and occupant, it will provide both the user and
the resource provider with an account of what has been used. This is done for various reasons like
monitoring billing and effective use of resource
Cloud Deployment
Models
Cloud 4 Models
1. Private cloud: The cloud infrastructure is provisioned for exclusive
use by a single organization comprising multiple consumers (e.g.,
business units). It may be owned, managed, and operated by the
organization, a third party, or some combination of them, and it may
exist on or off premises.
2. Public cloud: The cloud infrastructure is provisioned for open use by
the general public. It may be owned, managed, and operated by a
business, academic, or government organization, or some combination
of them. It exists on the premises of the cloud provider.
Public Cloud
Provisioned for open use by the
general public.
It may be owned, managed, and
operated by a business, academic, or
government organization, or some
combination of them.
Characteristics
Highly scalable
Affordable
Less secure
Highly available
Strict SLAs
Public Cloud
Advantages
◦ There is no need of establishing infrastructure for setting up a cloud.
◦ There is no need for maintaining the cloud.
◦ They are comparatively less costly than other cloud models.
◦ Strict SLAs are followed.
◦ There is no limit for the number of users.
◦ The public cloud is highly scalable.
Disadvantages
◦ Security is an issue.
◦ Privacy and organizational autonomy are not possible.
Private Cloud
Cloud infrastructure that is
provisioned for exclusive use by a
single organization comprising
multiple consumers (e.g., business
units).
It may be owned, managed, and
operated by the organization, a third
party, or some combination of them.
Private cloud can be deployed using
Opensource tools such as Openstack ,
Eucalyptus.
Characteristics
Secure
Central control
Weak SLAs
Private Cloud
Advantages
◦ The cloud is small in size and is easy to maintain.
◦ It provides a high level of security and privacy to the user.
◦ It is controlled by the organization.
Disadvantages
◦ For the private cloud, budget is a constraint.
◦ The private clouds have loose SLAs.
Community Cloud
Cloud infrastructure that is provisioned
for exclusive use by a specific community
of consumers from organizations that have
shared concerns (e.g., mission, security
requirements policy, and compliance
considerations).
It may be owned, managed, and operated
by one or more of the organizations in the
community, a third party, or some
combination of them
Characteristics
Collaborative and distributive maintenance:
Partially secure:
Cost effective:
Community Cloud
Advantages
It allows establishing a low-cost private cloud.
It allows collaborative work on the cloud.
It allows sharing of responsibilities among the organization.
It has better security than the public cloud.
Disadvantages
Autonomy of an organization is lost.
Security features are not as good as the private cloud.
It is not suitable if there is no collaboration.
Hybrid Cloud
The hybrid cloud usually is a
combination of both public and private
clouds.
Have a private cloud initially, and then
for additional resources, the public
cloud is used
Characteristics
Scalable
Partially secure
Moderate SLAs
Complex cloud management
Hybrid Cloud
Advantages
It gives the power of both the private and public clouds.
It is highly scalable.
It provides better security than the public cloud.
Disadvantages
The security features are not as good as the private cloud.
Managing a hybrid cloud is complex.
It has moderate SLAs.
3-Community cloud:
The cloud infrastructure is shared by several organizations
and supports a specific community that has shared concerns
(e.g., mission, security requirements, policy, and compliance
considerations). It may be managed by the organizations or a third
Party and may exist on premise or off premise.
4-Hybrid cloud: The cloud infrastructure is a composition of two or
more distinct cloud infrastructures (private, community, or public)
that remain unique entities but are bound together by standardized
or proprietary technology that enables data and application
portability
(e.g., cloud bursting for load balancing between clouds).
Cloud SaaS: The capability provided to the consumer is to use the
provider’s applications running on a cloud infrastructure, including
network, servers, operating systems, storage, and even individual
application capabilities, with the possible exception of limited
user-specific application configuration settings. The applications are
accessible from various client devices through either a thin client
Cloud PaaS: The capability provided to the consumer is to
deploy
onto the cloud infrastructure consumer-created or acquired
applications
created using programming languages, libraries, services,
and
tools supported by the provider
Cloud IaaS:
The capability provided to the consumer is to provision
processing, storage, networks, and other fundamental
computing resources on a pay-per-use basis where he or
she is able to deploy and run arbitrary software, which can
include operating systems and applications.
Massive
scale
Availability Homogenei
ty
Common
characteristi
cs
Geograph
Advanced
ic
Security Distribution
Service
oriented
Common
characteristics of
Cloud Computing
Massive scale
Homogeneity
Geographic Distribution
Service oriented (Pay as you go)
Advanced Security
Availability
Economical
Proper
Security Reliability
Cloud
Advantages
Data Manageability
Centralization
Cloud Advantages
Economical
Save the cost of the infrastructure
Remove the administrative and operational costs.
Minimize maintenance and licensing software
Reliability
Secure data storage
Several copies of the data are made.
Redundant IT resources.
Manageability
The only thing, which the user has to manage is a device and an internet connection
Data Centralization
The data stored in one location so that it can be accessed from different remote places
Proper Security
The service vendors select the highest level of security of the data. For which a user can
set a proper audition, passwords, and encryption
Security &
privacy
incomplete
Lock-in
data deletion
Risks
Internet Isolation
access Failure
Risks
Security & privacy :
◦ Data management and infrastructure management in cloud is provided by third-party
Lock-in
◦ It is very difficult for the customers to switch from one Cloud Service Provider (CSP) to
another.
Isolation Failure
◦ This risk involves the failure of isolation mechanism that separates storage, memory,
routing between the different Tenants
. Internet access:
◦ no Internet access means no Cloud access
Insecure or incomplete data deletion
◦ It is possible that the data requested for deletion may not get deleted. It happens either
because extra copies of data are stored but are not available or disk destroyed also stores
data from other tenants.
Architecture
Front End
The client interfaces which help to
access the cloud computing
Example- Browser or an app
created by the company itself.
Back End
Services
Management
Infrastructure
Cloud Architecture
Layer 1 (User/Client Layer)
. All the users or client belong to this layer.
This is the place where the client/user initiates
the connection.
Layer 2 (Network Layer)
Allows the users to connect to the cloud
This is primarily the Internet in the case of a
public cloud/LAN in case of private cloud.
Layer 3 (Cloud Management Layer)
A software that acts as an interface between
the resources and the user ( cloud OS)
Software that allows resource management
(scheduling, provisioning, etc.), optimization
(server consolidation, storage workload
consolidation), and internal cloud governance.
Layer 4 (Hardware Resource Layer)
The actual hardware resources ( servers,
storage , network components,…)
Components of Cloud
Computing Architecture
1. Application:
◦ The upper layer is the application layer. In this layer,
any applications are executed.
2. Platform:
◦ This component consists of platforms that are
responsible for the execution of the application. This
platform is between the infrastructure and the
application.
3. Virtualized Infrastructure:
◦ The infrastructure consists of resources over which the
other components work. This provides computational
capability to the user.
4. Virtualization:
◦ Virtualization is the process of making logical
components of resources over the existing physical
resources. The logical components are isolated and
independent, which form the infrastructure.
5. Physical hardware:
◦ The physical hardware is provided by server and
storage units.
Cloud Service Model
Cloud Service Models
Infrastructure as a Service – IaaS
Computing resources provided by the service
provider
provision processing, storage, networks, and
other fundamental computing resources
Platform as a Service – PaaS
The ability given to developers to develop and
deploy an application on the development
platform provided by the service provider
Operating system, database, middleware, and
many other services.
Software as a Service – SaaS
The ability given to the end users to access an
application over the Internet that is hosted
and managed by the service provider.
User and service provider responsibilities of cloud
service models:
Infrastructure as a
Service – IaaS
IaaS changes the computing from a
physical infrastructure to a virtual
infrastructure
IaaS provides virtual computing,
storage, and network resources by
abstracting the physical resources
IaaS Services
Compute:
Computing as a Service (CaaS) includes virtual
central processing units (CPUs) and virtual main
memory for the VMs that are provisioned to the
end users.
Storage:
STaaS ( Storage as a Service) provides back-end
storage for the VM images. Some of the IaaS
providers also provide the back end for storing
files.
Network:
Network as a Service (NaaS) provides virtual
networking components such as virtual router,
switch, and bridge for the VMs.
Load balancers:
Load Balancing as a Service may provide load
balancing capability at the infrastructure layer.
Centralized
management
Web access
Shared
to the
infrastructure
resources
Characteristics
of IaaS
Metered Preconfigur
services ed VMs
Elasticity
and dynamic
scaling
Characteristics of IaaS
Web access to the resources
Centralized management
Elasticity and dynamic scaling
Shared infrastructure
Preconfigured VMs
Metered services
IaaS Pros and cons
BENEFITS CONS
Pay-as-you-use model Security issues
Reduced TCO Interoperability issues
Elastic resources Performance issues
Better resource utilization
Supports Green IT
Platform as a Service ( PaaS)
PaaS providers may provide
programming languages,
application frameworks,
databases, and testing tools,..
PaaS changes the application
development from local machine
to online.
It allows the developers to
develop their application online
and also allows them to deploy
immediately on the same
platform.
Platform as a Service
( PaaS)
Programming languages:
Some of the popular programming languages
provided by PaaS vendors are Java, Perl, PHP, Python,
Ruby, Scala, Clojure, and Go.
Application frameworks:
Some of the popular application development
frameworks provided by a PaaS provider include
Node.js, Rails, Drupal, Joomla, WordPress,
Django,EE6, Spring, Play, Sinatra, Rack, and Zend.
Database:
The popular databases provided by the popular PaaS
vendors are ClearDB, PostgreSQL, Cloudant,
Membase, MongoDB,and Redis.
Other tools:
PaaS providers provide all the tools that are required
to develop, test, and deploy an application.
All in one
Web access
Collaborati to the
ve platform development
platform
Characteristics
of PaaS
Diverse Offline
client tools access
Built-in
scalability
Characteristics of PaaS
All in one
Most of the PaaS providers offer services to develop, test, deploy, host, and maintain applications in the same IDE
Web access to the development platform
PaaS provides web access to the development platform.
Using web UI, any developer can get access to the development platform
The web-based UI helps the developers create, modify, test, and deploy different applications on the same platform.
Offline access
PaaS providers allow the developer to synchronize their local IDE with the PaaS services.
The developers can develop an application locally and deploy it online whenever they are connected to the Internet.
Built-in scalability
PaaS services provide built-in scalability to an application that is developed using any particular PaaS
Collaborative platform
the development team consists of developers who are working from different places in the same project.
Diverse client tools
PaaS providers provide a wide variety of client tools to help the developer.
The client tools include CLI, web CLI, web UI, REST API, and IDE.
PaaS Pros and cons
PROS CONS
Quick development and deployment Vendor lock-in
Reduces TCO Security issues
Supports agile software Less flexibility
development
Depends on Internet connection:
Different teams can work together
Ease of use
Less maintenance overhead
Produces scalable applications
Software as a Service (SaaS)
SaaS changes the way the software is
delivered to the customers.
SaaS is delivered as an on-demand
service over the Internet, there is no
need to install the software to the end
user’s devices
SaaS services can be accessed or
disconnected at any time based on the
end user’s needs.
SaaS services can be accessed from
any lightweight web browsers on any
devices such as laptops, tablets, and
smartphones.
Software as a Service (SaaS)
Business services
The business SaaS services include
ERP, CRM, billing, sales, and human
resources.
Social networks
Facebook, twitter, snapchat,…
Document management
SaaS providers started providing
services that are used to create,
manage, and track electronic
documents.
Mail services
Most of the e-mail providers started
offering their services as SaaS services.
One to
many
API Web
integration access
Charact
eristics Centralized
High of SaaS manageme
availability
nt
Better Multidevic
scalability e support
SaaS Pros and cons
PROS CONS
No client-side installation Security
Cost savings Connectivity requirements
Less maintenance Loss of control
Ease of access
Dynamic scaling
Disaster recovery
Multitenancy
Other Service Models ( XaaS)
NaaS STaaS DBaaS DaaS SECaaS IDaaS DEaaS
Other Service Models ( XaaS)
Network as a Service (NaaS)
NaaS allows network architects to create virtual networks, virtual network interface cards (NICs), virtual
routers, virtual switches, and other networking components.
Desktop as a Service (DEaaS)
ability given to the end users to use desktop virtualization without buying and managing their own infrastructure.
Storage as a Service (STaaS)
Store the data on the storage services provided by the service provider.
Database as a Service (DBaaS)
End users can access the database service without the need to install and
maintain it
Data as a Service (DaaS)
to access the data that are provided by the service provider over the Internet ( text, images,
video,..)
Security as a Service (SECaaS)
user can access the security service provided by the service provider on a pay-
per-use basis.
Identity as a Service ( IDaaS)
The end users can access the authentica-tion infrastructure that is managed and provided by the
third-party service provider.
Classification of Cloud
Migrating to Cloud
Moving one or more enterprise applications and their IT environments from the traditional hosting
type to the cloud environment
Cloud migration presents an opportunity to significantly reduce costs incurred on applications
Phases of Cloud Migration
Evaluation
for all the components like current infrastructure and application architecture, environment in terms of compute, storage, monitoring,
and management, SLAs, operational processes, financial considerations, risk, security, compliance, and licensing.
Build a business case for moving to the cloud.
Migration strategy
Hot-plug strategy: Applications can be operationalized all at once.
fusion strategy: Applications can be partially migrated.
Prototyping
Validate and ensure that a small portion of the applications are tested on the cloud environment.
Provisioning
Provisioning of servers, storage, ..
Configure the services
Testing
Postmigration tests are conducted to ensure that migration has been successful
load testing, failure and recovery testing, and scale-out testing are conducted.
Approaches for Cloud Migration
Migrate existing applications:
Rearchitect some or all the applications
Start from scratch:
Huge transformation process, then start from the beginning
Separate company:
create a whole new company with separate brand
Buy an existing cloud vendor:
it removes a competitor
Speed processes