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)
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.
“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
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 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.
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).
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
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
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:
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
Hybrid ClouThe 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
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.
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.
Common characteristics of Cloud Computing
Massive scale
Homogeneity
Geographic Distribution
Service oriented (Pay as you go)
Advanced Security
Availability
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
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 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.
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.
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
Pay-as-you-use model
Reduced TCO
Elastic resources
Better resource utilization
Supports Green IT
Cons
Security issues
Interoperability issues
Performance issues
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.
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
Quick development and deployment
Reduces TCO
Supports agile software development
Different teams can work together
Ease of use
Less maintenance overhead
Produces scalable applications
cons
Vendor lock-in
Security issues
Less flexibility
Depends on Internet connection:
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.
• Characteristics of SaaS
One to many
Web access
Centralized management
Multidevice support
Better scalability
High availability
API
SaaS Pros and cons
Pros
No client-side installation
Cost savings
Less maintenance
Ease of access
Dynamic scaling
Disaster recovery
Multitenancy
Cons
Security
Connectivity requirements
Loss of control
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.
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