Cloud Computing Notes
Cloud Computing Notes
Cloud Computing provides us means of accessing the applications as utilities over the
Internet. It allows us to create, configure, and customize the applications online.
What is Cloud?
The term Cloud refers to a Network or Internet. In other words, we can say that Cloud
is something, which is present at remote location. Cloud can provide services over
public and private networks, i.e., WAN, LAN or VPN.
Applications such as e-mail, web conferencing, customer relationship management
(CRM) execute on cloud.
Deployment Models
Service Models
Deployment Models
Deployment models define the type of access to the cloud, i.e., how the cloud is
located? Cloud can have any of the four types of access: Public, Private, Hybrid, and
Community.
Public Cloud
The public cloud allows systems and services to be easily accessible to the general
public. Public cloud may be less secure because of its openness.
Private Cloud
The private cloud allows systems and services to be accessible within an
organization. It is more secured because of its private nature.
Community Cloud
The community cloud allows systems and services to be accessible by a group of
organizations.
Hybrid Cloud
The hybrid cloud is a mixture of public and private cloud, in which the critical activities
are performed using private cloud while the non-critical activities are performed using
public cloud.
Service Models
Cloud computing is based on service models. These are categorized into three basic
service models which are -
Infrastructure-as–a-Service (IaaS)
Platform-as-a-Service (PaaS)
Software-as-a-Service (SaaS)
Anything-as-a-Service (XaaS) is yet another service model, which includes Network-
as-a-Service, Business-as-a-Service, Identity-as-a-Service, Database-as-a-
Service or Strategy-as-a-Service.
The Infrastructure-as-a-Service (IaaS) is the most basic level of service. Each of the
service models inherit the security and management mechanism from the underlying
model, as shown in the following diagram:
Infrastructure-as-a-Service (IaaS)
IaaS provides access to fundamental resources such as physical machines, virtual
machines, virtual storage, etc.
Platform-as-a-Service (PaaS)
PaaS provides the runtime environment for applications, development and deployment
tools, etc.
Software-as-a-Service (SaaS)
SaaS model allows to use software applications as a service to end-users.
History of Cloud Computing
The concept of Cloud Computing came into existence in the year 1950 with
implementation of mainframe computers, accessible via thin/static clients. Since
then, cloud computing has been evolved from static clients to dynamic ones and from
software to services. The following diagram explains the evolution of cloud computing:
Benefits
Cloud Computing has numerous advantages. Some of them are listed below -
One can access applications as utilities, over the Internet.
One can manipulate and configure the applications online at any time.
It does not require to install a software to access or manipulate cloud application.
Cloud Computing offers online development and deployment tools, programming
runtime environment through PaaS model.
Cloud resources are available over the network in a manner that provide
platform independent access to any type of clients.
Cloud Computing offers on-demand self-service. The resources can be used
without interaction with cloud service provider.
Cloud Computing is highly cost effective because it operates at high efficiency
with optimum utilization. It just requires an Internet connection
Cloud Computing offers load balancing that makes it more reliable.
Risks related to Cloud Computing
Although cloud Computing is a promising innovation with various benefits in the world
of computing, it comes with risks. Some of them are discussed below:
Lock In
It is very difficult for the customers to switch from one Cloud Service Provider
(CSP) to another. It results in dependency on a particular CSP for service.
Isolation Failure
This risk involves the failure of isolation mechanism that separates storage, memory,
and routing between the different tenants.
Management Interface Compromise
In case of public cloud provider, the customer management interfaces are accessible
through the Internet.
Resource Pooling
Cloud computing allows multiple tenants to share a pool of resources. One can share
single physical instance of hardware, database and basic infrastructure.
Rapid Elasticity
It is very easy to scale the resources vertically or horizontally at any time. Scaling of
resources means the ability of resources to deal with increasing or decreasing
demand.
The resources being used by customers at any given point of time are automatically
monitored.
Measured Service
In this service cloud provider controls and monitors all the aspects of cloud service.
Resource optimization, billing, and capacity planning etc. depend on it.
Cloud Computing Planning
Before deploying applications to cloud, it is necessary to consider your business
requirements. Following are the issues one must consider:
IT management simplification
operation and maintenance cost reduction
business mode innovation
low cost outsourcing hosting
high service quality outsourcing hosting.
All of the above analysis helps in decision making for future development.
Planning Phase
This step performs analysis of problems and risks in the cloud application to ensure the
customers that the cloud computing is successfully meeting their business goals. This
phase involves the following planning steps:
IT Architecture Development
In this step, we identify the applications that support the business processes and the
technologies required to support enterprise applications and data systems.
Requirements on Quality of Service Development
Quality of service refers to the non-functional requirements such as reliability, security,
disaster recovery, etc. The success of applying cloud computing mode depends on
these non-functional factors.
Deployment Phase
This phase focuses on both of the above two phases. It involves the following two
steps:
Virtualization
Service-Oriented Architecture (SOA)
Grid Computing
Utility Computing
Virtualization
Virtualization is a technique, which allows to share single physical instance of an
application or resource among multiple organizations or tenants (customers). It does
this by assigning a logical name to a physical resource and providing a pointer to that
physical resource when demanded.
The Multitenant architecture offers virtual isolation among the multiple tenants.
Hence, the organizations can use and customize their application as though they each
have their instances running.
Service-Oriented Architecture (SOA)
Service-Oriented Architecture helps to use applications as a service for other
applications regardless the type of vendor, product or technology. Therefore, it is
possible to exchange the data between applications of different vendors without
additional programming or making changes to services.
The cloud computing service oriented architecture is shown in the diagram below.
Grid Computing
Grid Computing refers to distributed computing, in which a group of computers from
multiple locations are connected with each other to achieve a common objective.
These computer resources are heterogeneous and geographically dispersed.
Grid Computing breaks complex task into smaller pieces, which are distributed to
CPUs that reside within the grid.
Utility Computing
Utility computing is based on Pay-per-Use model. It offers computational resources on
demand as a metered service. Cloud computing, grid computing, and managed IT
services are based on the concept of utility computing.
Cloud Computing Architecture
Cloud Computing architecture comprises of many cloud components, which are loosely
coupled. We can broadly divide the cloud architecture into two parts:
Front End
Back End
Each of the ends is connected through a network, usually Internet. The following
diagram shows the graphical view of cloud computing architecture:
Front End
The front end refers to the client part of cloud computing system. It consists of
interfaces and applications that are required to access the cloud computing platforms,
Example - Web Browser.
Back End
The back End refers to the cloud itself. It consists of all the resources required to
provide cloud computing services. It comprises of huge data storage, virtual machines,
security mechanism, services, deployment models, servers, etc.
Note
It is the responsibility of the back end to provide built-in security mechanism,
traffic control and protocols.
The server employs certain protocols known as middleware, which help the
connected devices to communicate with each other.
Cloud Computing Infrastructure
Cloud infrastructure consists of servers, storage devices, network, cloud
management software, deployment software, and platform virtualization.
Hypervisor
Hypervisor is a firmware or low-level program that acts as a Virtual Machine
Manager. It allows to share the single physical instance of cloud resources between
several tenants.
Management Software
It helps to maintain and configure the infrastructure.
Deployment Software
It helps to deploy and integrate the application on the cloud.
Network
It is the key component of cloud infrastructure. It allows to connect cloud services over
the Internet. It is also possible to deliver network as a utility over the Internet, which
means, the customer can customize the network route and protocol.
Server
The server helps to compute the resource sharing and offers other services such as
resource allocation and de-allocation, monitoring the resources, providing security etc.
Storage
Cloud keeps multiple replicas of storage. If one of the storage resources fails, then it
can be extracted from another one, which makes cloud computing more reliable.
Infrastructural Constraints
Fundamental constraints that cloud infrastructure should implement are shown in the
following diagram:
Transparency
Virtualization is the key to share resources in cloud environment. But it is not possible
to satisfy the demand with single resource or server. Therefore, there must be
transparency in resources, load balancing and application, so that we can scale them
on demand.
Scalability
Scaling up an application delivery solution is not that easy as scaling up an application
because it involves configuration overhead or even re-architecting the network. So,
application delivery solution is need to be scalable which will require the virtual
infrastructure such that resource can be provisioned and de-provisioned easily.
Intelligent Monitoring
To achieve transparency and scalability, application solution delivery will need to be
capable of intelligent monitoring.
Security
The mega data center in the cloud should be securely architected. Also the control
node, an entry point in mega data center, also needs to be secure.
CLOUD DEPLOYMENT MODELS
Benefits
There are many benefits of deploying cloud as public cloud model. The following
diagram shows some of those benefits:
Cost Effective
Since public cloud shares same resources with large number of customers it turns out
inexpensive.
Reliability
The public cloud employs large number of resources from different locations. If any of
the resources fails, public cloud can employ another one.
Flexibility
The public cloud can smoothly integrate with private cloud, which gives customers a
flexible approach.
Location Independence
Public cloud services are delivered through Internet, ensuring location independence.
High Scalability
Cloud resources are made available on demand from a pool of resources, i.e., they can
be scaled up or down according the requirement.
Disadvantages
Here are some disadvantages of public cloud model:
Low Security
In public cloud model, data is hosted off-site and resources are shared publicly,
therefore does not ensure higher level of security.
Less Customizable
It is comparatively less customizable than private cloud.
Benefits
There are many benefits of deploying cloud as private cloud model. The following
diagram shows some of those benefits:
High Security and Privacy
Private cloud operations are not available to general public and resources are shared
from distinct pool of resources. Therefore, it ensures high security and privacy.
More Control
The private cloud has more control on its resources and hardware than public cloud
because it is accessed only within an organization.
Disadvantages
Here are the disadvantages of using private cloud model:
High Priced
Purchasing new hardware in order to fulfill the demand is a costly transaction.
Limited Scalability
The private cloud can be scaled only within capacity of internal hosted resources.
Additional Skills
In order to maintain cloud deployment, organization requires skilled expertise.
Benefits
There are many benefits of deploying cloud as hybrid cloud model. The following
diagram shows some of those benefits:
Scalability
It offers features of both, the public cloud scalability and the private cloud scalability.
Flexibility
It offers secure resources and scalable public resources.
Cost Efficiency
Public clouds are more cost effective than private ones. Therefore, hybrid clouds can
be cost saving.
Security
The private cloud in hybrid cloud ensures higher degree of security.
Disadvantages
Networking Issues
Networking becomes complex due to presence of private and public cloud.
Security Compliance
It is necessary to ensure that cloud services are compliant with security policies of the
organization.
Infrastructure Dependency
The hybrid cloud model is dependent on internal IT infrastructure, therefore it is
necessary to ensure redundancy across data centers.
Community Cloud Model
Community Cloud allows system and services to be accessible by group of
organizations. It shares the infrastructure between several organizations from a
specific community. It may be managed internally by organizations or by the third-
party. The Community Cloud Model is shown in the diagram below.
Benefits
There are many benefits of deploying cloud as community cloud model.
Cost Effective
Community cloud offers same advantages as that of private cloud at low cost.
Security
The community cloud is comparatively more secure than the public cloud but less
secured than the private cloud.
Issues
Since all data is located at one place, one must be careful in storing data in
community cloud because it might be accessible to others.
It is also challenging to allocate responsibilities of governance, security and cost
among organizations.
CLOUD SERVICE MODELS
Benefits
IaaS allows the cloud provider to freely locate the infrastructure over the Internet in a
cost-effective manner. Some of the key benefits of IaaS are listed below:
Full control of the computing resources through administrative access to VMs.
Flexible and efficient renting of computer hardware.
Portability, interoperability with legacy applications.
Issues
IaaS shares issues with PaaS and SaaS, such as Network dependence and browser
based risks. It also has some specific issues, which are mentioned in the following
diagram:
Compatibility with legacy security vulnerabilities
Because IaaS offers the customer to run legacy software in provider's infrastructure, it
exposes customers to all of the security vulnerabilities of such legacy software.
Scalable solutions
It is very easy to scale the resources up or down automatically, based on their demand.
Issues
Like SaaS, PaaS also places significant burdens on customer's browsers to maintain
reliable and secure connections to the provider’s systems. Therefore, PaaS shares
many of the issues of SaaS. However, there are some specific issues associated with
PaaS as shown in the following diagram:
Lack of portability between PaaS clouds
Although standard languages are used, yet the implementations of platform services
may vary. For example, file, queue, or hash table interfaces of one platform may differ
from another, making it difficult to transfer the workloads from one platform to another.
Characteristics
Here are the characteristics of PaaS service model:
PaaS offers browser based development environment. It allows the developer
to create database and edit the application code either via Application
Programming Interface or point-and-click tools.
PaaS provides built-in security, scalability, and web service interfaces.
PaaS provides built-in tools for defining workflow, approval processes, and
business rules.
It is easy to integrate PaaS with other applications on the same platform.
PaaS also provides web services interfaces that allow us to connect the
applications outside the platform.
PaaS Types
Based on the functions, PaaS can be classified into four types as shown in the
following diagram:
Characteristics
Here are the characteristics of SaaS service model:
SaaS makes the software available over the Internet.
The software applications are maintained by the vendor.
The license to the software may be subscription based or usage based. And it is
billed on recurring basis.
SaaS applications are cost-effective since they do not require any maintenance
at end user side.
They are available on demand.
They can be scaled up or down on demand.
They are automatically upgraded and updated.
SaaS offers shared data model. Therefore, multiple users can share single
instance of infrastructure. It is not required to hard code the functionality for
individual users.
All users run the same version of the software.
Benefits
Using SaaS has proved to be beneficial in terms of scalability, efficiency and
performance. Some of the benefits are listed below:
Multitenant solutions
Multitenant solutions allow multiple users to share single instance of different resources
in virtual isolation. Customers can customize their application without affecting the core
functionality.
Issues
There are several issues associated with SaaS, some of them are listed below:
No License Required
Low Deployment Cost
Less Vendor Lock-in
More portable applications
More Robust Solution
The following diagram shows the SaaS implementation based on SOA:
Cloud Computing Identity as a Service (IDaaS)
Employees in a company require to login to system to perform various tasks. These
systems may be based on local server or cloud based. Following are the problems that
an employee might face:
Remembering different username and password combinations for accessing
multiple servers.
If an employee leaves the company, it is required to ensure that each account of
that user is disabled. This increases workload on IT staff.
To solve above problems, a new technique emerged which is known as Identity-as–a-
Service (IDaaS).
IDaaS offers management of identity information as a digital entity. This identity can be
used during electronic transactions.
Identity
Identity refers to set of attributes associated with something to make it recognizable.
All objects may have same attributes, but their identities cannot be the same. A unique
identity is assigned through unique identification attribute.
There are several identity services that are deployed to validate services such as
validating web sites, transactions, transaction participants, client, etc. Identity-as-a-
Service may include the following:
Directory services
Federated services
Registration
Authentication services
Risk and event monitoring
Single sign-on services
Identity and profile management
SSO Working
There are several implementations of SSO. Here, we discuss the common ones:
Following steps explain the working of Single Sign-On software:
User logs into the authentication server using a username and password.
The authentication server returns the user's ticket.
User sends the ticket to intranet server.
Intranet server sends the ticket to the authentication server.
Authentication server sends the user's security credentials for that server back to
the intranet server.
If an employee leaves the company, then disabling the user account at the
authentication server prohibits the user's access to all the systems.
Benefits
Increased site conversation rates
Access to greater user profile content
Fewer problems with lost passwords
Ease of content integration into social networking sites
Cloud Computing Network as a Service (NaaS)
Network-as-a-Service allows us to access to network infrastructure directly and
securely. NaaS makes it possible to deploy custom routing protocols.
NaaS uses virtualized network infrastructure to provide network services to the
customer. It is the responsibility of NaaS provider to maintain and manage the network
resources. Having a provider working for a customer decreases the workload of the
customer. Moreover, NaaS offers network as a utility. NaaS is also based on pay-
per-use model.
Mobile NaaS
Mobile NaaS offers more efficient and flexible control over mobile devices. It uses
virtualization to simplify the architecture thereby creating more efficient processes.
Following diagram shows the Mobile NaaS service elements:
NaaS Benefits
NaaS offers a number of benefits as discussed below:
Independence
Each customer is independent and can segregate the network.
Bursting
The customer pays for high-capacity network only on requirement.
Resilience
The reliability treatments are available, which can be applied for critical applications.
Analytics
The data protection solutions are available, which can be applied for highly sensitive
applications.
Multitenant use
E-commerce processing
Employee screening
Encryption policy
Storage Devices
Storage devices can be broadly classified into two categories:
Virtualization Concept
Creating a virtual machine over existing operating system and hardware is referred as
Hardware Virtualization. Virtual Machines provide an environment that is logically
separated from the underlying hardware.
The machine on which the virtual machine is created is known as host
machine and virtual machine is referred as a guest machine. This virtual machine is
managed by a software or firmware, which is known as hypervisor.
Hypervisor
The hypervisor is a firmware or low-level program that acts as a Virtual Machine
Manager. There are two types of hypervisor:
Type 1 hypervisor executes on bare system. LynxSecure, RTS Hypervisor, Oracle
VM, Sun xVM Server, VirtualLogic VLX are examples of Type 1 hypervisor. The
following diagram shows the Type 1 hypervisor.
The type1 hypervisor does not have any host operating system because they are
installed on a bare system.
Type 2 hypervisor is a software interface that emulates the devices with which a
system normally interacts. Containers, KVM, Microsoft Hyper V, VMWare Fusion,
Virtual Server 2005 R2, Windows Virtual PC and VMWare workstation 6.0 are
examples of Type 2 hypervisor. The following diagram shows the Type 2 hypervisor.
Types of Hardware Virtualization
Here are the three types of hardware virtualization:
Full Virtualization
Emulation Virtualization
Paravirtualization
Full Virtualization
In full virtualization, the underlying hardware is completely simulated. Guest software
does not require any modification to run.
Emulation Virtualization
In Emulation, the virtual machine simulates the hardware and hence becomes
independent of it. In this, the guest operating system does not require modification.
Paravirtualization
In Paravirtualization, the hardware is not simulated. The guest software run their own
isolated domains.
VMware vSphere is highly developed infrastructure that offers a management
infrastructure framework for virtualization. It virtualizes the system, storage and
networking hardware.
Cloud Computing Security
Security in cloud computing is a major concern. Data in cloud should be stored in
encrypted form. To restrict client from accessing the shared data directly, proxy and
brokerage services should be employed.
Security Planning
Before deploying a particular resource to cloud, one should need to analyze several
aspects of the resource such as:
Select resource that needs to move to the cloud and analyze its sensitivity to
risk.
Consider cloud service models such as IaaS, PaaS, and SaaS. These models
require customer to be responsible for security at different levels of service.
Consider the cloud type to be used such as public, private,
community or hybrid.
Understand the cloud service provider's system about data storage and its
transfer into and out of the cloud.
The risk in cloud deployment mainly depends upon the service models and cloud
types.
Access Control
Auditing
Authentication
Authorization
All of the service models should incorporate security mechanism operating in all above-
mentioned areas.
Business Applications
Cloud computing has made businesses more collaborative and easy by incorporating
various apps such as MailChimp, Chatter, Google Apps for
business, and Quickbooks.
SN Application Description
1
MailChimp
It offers an e-mail publishing platform. It is widely employed by the businesses to
design and send their e-mail campaigns.
2
Chatter
Chatter app helps the employee to share important information about organization in
real time. One can get the instant feed regarding any issue.
3
Google Apps for Business
Google offers creating text documents, spreadsheets, presentations, etc.,
on Google Docs which allows the business users to share them in collaborating
manner.
4
Quickbooks
It offers online accounting solutions for a business. It helps in monitoring cash
flow, creating VAT returns and creating business reports.
SN Application Description
1
Box.com
Box.com offers drag and drop service for files. The users need to drop the files into
Box and access from anywhere.
2
Mozy
Mozy offers online backup service for files to prevent data loss.
3
Joukuu
Joukuu is a web-based interface. It allows to display a single list of contents for files
stored in Google Docs, Box.net and Dropbox.
Management Applications
There are apps available for management task such as time tracking, organizing
notes. Applications performing such tasks are discussed below:
SN Application Description
1
Toggl
It helps in tracking time period assigned to a particular project.
2
Evernote
It organizes the sticky notes and even can read the text from images which helps the
user to locate the notes easily.
3
Outright
It is an accounting app. It helps to track income, expenses, profits and losses in real
time.
Social Applications
There are several social networking services providing websites such as Facebook,
Twitter, etc.
SN Application Description
1
Facebook
It offers social networking service. One can share photos, videos, files, status and
much more.
2
Twitter
It helps to interact with the public directly. One can follow any celebrity, organization
and any person, who is on twitter and can have latest updates regarding the same.
Entertainment Applications
SN Application Description
1
Audio box.fm
It offers streaming service. The music files are stored online and can be played from
cloud using the own media player of the service.
Art Applications
SN Application Description
1
Moo
It offers art services such as designing and printing business cards,
postcards and mini cards.
Cloud Computing Providers
Various Cloud Computing platforms are available today. The following table contains
the popular Cloud Computing platforms:
SN Platform Description
1 Salesforce.com
This is a Force.com development platform. This provides a simple user interface and
lets users log in, build an app, and push it in the cloud.
2 Appistry
The Appistry's CloudIQ platform is efficient in delivering a runtime application. This
platform is very useful to create scalable and service oriented applications.
3 AppScale
The AppScale is an open source platform for App Engine of Google applications.
4 AT&T
The AT&T allows access to virtual servers and manages the virtualization
infrastructure. This virtualization infrastructure includes network, server and storage.
5 Engine Yard
The Engine Yard is a rails application on cloud computing platform.
6 Enomaly
Enomaly provides the Infrastructure-as-a-Service platform.
7
FlexiScale
The FlexiScale offers a cloud computing platform that allows flexible, scalable and
automated cloud infrastructure.
8 GCloud3
The GCloud3 offers private cloud solution in its platform.
9 Gizmox
The Gizmox Visual WebGUI platform is best suited for developing new web apps
and modernize the legacy apps based on ASP.net, DHTML, etc.
10 GoGrid
The GoGrid platform allows the users to deploy web and database cloud services.
11
Google
The Google's App Engine lets the users build, run and maintain their applications on
Google infrastructure.
12 LongJump
The LongJump offers a business application platform, a Platform-as-a-Service
(PaaS).
13 Microsoft
The Microsoft Windows Azure is a cloud computing platform offering an environment
to create cloud apps and services.
14 OrangeScape
OrangeScape offers a Platform-as-a-Service (Paas) for non-programmers. Building
an app is as easy as spreadsheet.
15 RackSpace
The RackSpace provides servers-on-demand via a cloud-driven platform of
virtualized servers.
16 Amazon EC2
The Amazon EC2 (Elastic Compute Cloud) lets the users configure and control
computing resources while running them on Amazon environment.
Cloud Computing Challenges
Cloud computing, an emergent technology, has placed many challenges in different
aspects of data and information handling. Some of these are shown in the following
diagram:
Portability
This is another challenge to cloud computing that applications should easily be
migrated from one cloud provider to another. There must not be vendor lock-in.
However, it is not yet made possible because each of the cloud provider uses different
standard languages for their platforms.
Interoperability
It means the application on one platform should be able to incorporate services from
the other platforms. It is made possible via web services, but developing such web
services is very complex.
Computing Performance
Data intensive applications on cloud requires high network bandwidth, which results in
high cost. Low bandwidth does not meet the desired computing performance of cloud
application.
Architecture
MCC includes four types of cloud resources:
Architectural Issues
Mobile cloud computing is required to make architectural neutral because of
heterogeneous environment.
Live VM Migration
It is challenging to migrate an application, which is resource-intensive to cloud and to
execute it via Virtual Machine.