UNIT 1-Cloud Computing
UNIT 1-Cloud Computing
UNIT 1-Cloud Computing
DEPARTMENT OF CSE
CS8791 CLOUD COMPUTING
IV YEAR – VII SEMESTER
UNIT I INTRODUCTION
Introduction to Cloud Computing – Definition of Cloud – Evolution of Cloud Computing –Underlying
Principles of Parallel and Distributed Computing – Cloud Characteristics – Elasticity in Cloud – On-
demand Provisioning.
COST MODEL:
VARIOUS ASPECTS OF CLOUD COMPUTING:
DEFINITION OF CLOUD:
Cloud:
"The cloud" refers to servers that can be accessed over the Internet, and the software and
databases that run on those servers.
Cloud servers are located in data centres all over the world. And the cloud servers that
provide cloud services are called cloud vendors.
By using cloud computing, users and companies do not have to manage physical servers
themselves or run software applications on their own machines instead the wide variety
of services provided can be rented based to the needs and the user will be charged
accordingly.
Important concepts in Cloud:
1. Abstraction:
Cloud Computing abstracts the details of the system implementation from users
and developers.
Applications run on physical systems that aren’t specified.
Data is stored in locations that are unknown.
The administration of the system is outsourced to others.
2. Virtualization:
Cloud Computing:
Definition – Cloud computing is a model for enabling ubiquitous, 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.
Cloud Computing is composed of
1) 5 essential characteristics
2) 4 deployment models
3) 4 service modes
TYPES OF CLOUD:
1) Public cloud
2) Private cloud
3) Hybrid cloud
4) 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.
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.
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 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…
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.
Community Cloud:
Community clouds are distributed systems created by integrating the services of
different clouds to address the specific needs of an industry, a community, or a business
sector. But sharing responsibilities among the organizations is difficult.
In the community cloud, the infrastructure is shared between organizations that have
shared concerns or tasks. The cloud may be managed by an organization or a third
party.
TYPES OF CLOUD SERVICES:
This model enables the user to deploy user-built applications onto a virtualized
cloud platform. PaaS includes middleware, databases, development tools, and
some runtime support such as Web 2.0 and Java.
The platform includes both hardware and software integrated with specific
programming interfaces.
The provider supplies the API and software tools (e.g., Java, Python, Web 2.0,
.NET). The user is freed from managing the cloud infrastructure.
Software as a Service (SaaS):
This refers to browser-initiated application software over thousands of paid cloud
customers. The SaaS model applies to business processes, industry applications,
consumer relationship management (CRM), enterprise resources planning (ERP),
human resources (HR), and collaborative applications.
On the customer side, there is no upfront investment in servers or software
licensing. On the provider side, costs are rather low, compared with conventional
hosting of user applications.
EXAMPLE:
OBJECTIVES OF CLOUD DESIGN :
1) Shifting computing from desktops to data centers
2) Service provisioning and cloud economics
3) Scalability in performance
4) Data privacy protection
5) High-quality cloud services
6) New standards and interfaces
ADVANTAGES OF CLOUD COMPUTING:
Once the data is stored in the cloud, it is easier to get back-up and restore that data using the
cloud.
2. Improved Collaboration:
Cloud applications improve collaboration by allowing groups of people to quickly and easily
share information in the cloud via shared storage.
3. Excellent Accessibility:
Cloud allows us to quickly and easily access store information anywhere, anytime in the
whole world, using an internet connection. An internet cloud infrastructure increases
organization productivity and efficiency by ensuring that our data is always accessible.
Cloud computing reduces both hardware and software maintenance costs for organizations.
5. Mobility:
Cloud computing allows us to easily access all cloud data via mobile.
Cloud computing offers Application Programming Interfaces (APIs) to the users for access
services on the cloud and pays the charges as per the usage of service.
Cloud offers us a huge amount of storing capacity for storing our important data such as
documents, images, audio, video, etc. in one place.
8. Data Security:
Data security is one of the biggest advantages of cloud computing. Cloud offers many
advanced features related to security and ensures that data is securely stored and handled.
As you know, in cloud computing, every data (image, audio, video, etc.) is stored on the
cloud, and we access these data through the cloud by using the internet connection. If you
do not have good internet connectivity, you cannot access these data. However, we have
no any other way to access data from the cloud.
2. Vendor Lock-In:
Vendor lock-in is the biggest disadvantage of cloud computing. Organizations may face
problems when transferring their services from one vendor to another. As different
vendors provide different platforms, that can cause difficulty moving from one cloud to
another.
3. Limited Control:
Although cloud service providers implement the best security standards to store
important information. But, before adopting cloud technology, you should be aware that
you will be sending all your organization's sensitive information to a third party, i.e., a
cloud computing service provider. While sending the data on the cloud, there may be a
chance that your organization's information is hacked by Hackers.
Thus, to solve this problem, distributed computing led to three more types of computing
and they were-Mainframe computing, cluster computing, and grid computing.
2. Mainframe Computing:
Mainframes that 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.
3. Cluster Computing:
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.
4. Grid Computing:
In 1990s, the concept of grid computing was introduced. It is the type of computing in
which 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 other network-related issues. Thus. cloud computing is often referred
to as the “Successor of grid computing”.
5. 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.
6. 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.
7. 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).
8. 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.
1950 – 1970: Mainframes like IBM 360 and CDC 6400 were used widely.
1960 – 1980: Lower-cost minicomputers such as the DEC PDP !! and VAX
series.
1970 – 1990: Widespread use of personal computers built with VLSI
microprocessor.
1980 – 2000: Massive numbers of portable computers and pervasive devices
appeared in both wired and wireless applications
Since 1990: The use of both HPC and HTC systems hidden in clusters, grids, or
Internet clouds has proliferated.
On the HPC side, supercomputers (massively parallel processors or MPPs) are
gradually replaced by clusters of cooperative computers out of a desire to share
computing resources. The cluster is often a collection of homogeneous
compute nodes that are physically connected in close range to one another.
On the HTC side, peer-to-peer (P2P) networks are formed for distributed file
sharing and content delivery applications. A P2P system is built over many
client machines (a concept we will discuss further in Chapter 5). Peer machines
are globally distributed in nature. P2P, cloud computing, and web service
platforms are more focused on HTC applications than on HPC applications.
Clustering and P2P technologies lead to the development of computational grids
or data grids.
For many years, HPC systems emphasize the raw speed performance. The speed
of HPC systems has increased from Gflops in the early 1990s to now Pflops in
2010.
The development of market-oriented high-end computing systems is undergoing
a strategic change from an HPC paradigm to an HTC paradigm. This HTC
paradigm pays more attention to high-flux computing. The main application for
high-flux computing is in Internet searches and web services by millions or more
users simultaneously. The performance goal thus shifts to measure high
throughput or the number of tasks completed per unit of time. HTC technology
needs to not only improve in terms of batch processing speed, but also address
the acute problems of cost, energy savings, security, and reliability at many data
and enterprise computing centers.
Advances in virtualization make it possible to see the growth of Internet clouds
as a new computing paradigm. The maturity of radio-frequency identification
(RFID), Global Positioning System (GPS), and sensor technologies has triggered
the development of the Internet of Things (IoT). These new paradigms are only
briefly introduced here.
The high-technology community has argued for many years about the precise
definitions of centralized computing, parallel computing, distributed computing,
and cloud computing. In general, distributed computing is the opposite of
centralized computing. The field of parallel computing overlaps with distributed
computing to a great extent, and cloud computing overlaps with distributed,
centralized, and parallel computing.
CHARACTERISTICS OF CLOUD:
1. On-demand self-service:
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).
3. 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.
There is a sense of location independence in that the customer generally has no control or
knowledge over the exact location of the provided resources but may be able to specify
location at a higher level of abstraction (e.g., country, state, or data center). Examples of
resources include storage, processing, memory, and network bandwidth.
4. Rapid Elasticity:
5. 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.
It is most commonly used in pay-per-use, public cloud services. Where IT managers are
willing to pay only for the duration for which they consumed the resources.
Elasticity is built on top of scalability. It can be considered as an automation of the
concept of scalability and aims to optimize at best and as quickly as possible the
resources at a given time.
Elasticity also introduces a new important factor, which is the speed. Rapid
provisioning and deprovisioning are key to maintaining an acceptable
performance in the context of cloud computing. Quality of service is subjected to
a service level agreement.
EXAMPLE:
Consider an online shopping site whose transaction workload increases during
the festive season. So, for this specific period of time, the resources need a
spike up. In order to handle this kind of situation, we can go for Cloud-
Elasticity service rather than Cloud Scalability. As soon as the season goes out,
the deployed resources can then be requested for withdrawal.
1. Scope
2. Policy
3. Purpose
4. Method
Scope
Elasticity can be implemented on any of the cloud layers.
On the PaaS level, elasticity consists in scaling containers or databases for instance.
Finally, both PaaS and IaaS elasticity can be used to implement
elastic applications, be it for private use or in order to be provided SaaS.
Google App Engine and Azure elastic pool are examples of elastic Platform
as a Service (PaaS).
Application Map: The elasticity controller must have a complete map of the
application components and instances.
Code embedded: The elasticity controller is embedded in the application source code.
The elasticity actions are performed by the application itself. While moving the
elasticity controller to the application source code eliminates the use of monitoring
systems. There must be a specialized controller for each application.
Policy
Elastic solutions can be either manual or automatic. A manual elastic solution would
provide their users with tools to monitor their systems and add or remove resources
but leaves the scaling decision to them.
Automatic mode: All the actions are done automatically, and this could
be classified into reactive and proactive modes. Elastic solutions can be
either reactive or predictive.
Purpose
An elastic solution can have many purposes. The first one to come to mind is
naturally performance, in which case the focus should be put on their speed.
Another purpose for elasticity can also be energy efficiency, where using
the minimum amount of resources is the dominating factor. Other
solutions intend to reduce the cost by multiplexing either resource
providers or elasticity methods.
Method
Vertical elasticity, changes the amount of resources linked to existing instances on-
the- fly. This can be done in two manners.
ON -DEMAND PROVISIONING:
Resource Provisioning means the selection, deployment, and run-time
management of software (e.g., database server management systems, load
balancers) and hardware resources (e.g., CPU, storage, and network) for
ensuring guaranteed performance for applications. It is an important and
challenging problem in the large-scale distributed systems such as Cloud
computing environments.
There are many resource provisioning techniques, both static and dynamic
each one having its own advantages and also some challenges. These
resource provisioning techniques used must meet Quality of Service (QoS)
parameters like availability, throughput, response time, security, reliability
etc., and thereby avoiding Service Level Agreement (SLA) violation.
In order to achieve the goal, the cloud user has to request cloud service
provider to make a provision for the resources either statically or
dynamically. So that the cloud service provider will know how many
instances of the resources and what resources are required for a particular
application. By provisioning the resources, the QoS parameters like
availability, throughput, security, response time, reliability, performance etc
must be achieved without violating SLA.
1. Static provisioning:
For applications that have predictable and generally unchanging
demands/workloads, it is possible to use “static provisioning"
effectively.
With advance provisioning, the customer contracts with the provider for
services. The provider prepares the appropriate resources in advance of start
of service. The customer is charged a flat fee or is billed on a monthly
basis.
2. Dynamic Provisioning:
In cases where demand by applications may change or vary,
“dynamic provisioning" techniques have been suggested whereby
VMs may be migrated on-the-fly to new compute nodes within the
cloud.
BENEFITS:
Benefits for Existing Grid Infrastructures
The virtualization of the local infrastructure supports a virtualized
alternative to contribute resources to a Grid infrastructure
• Simpler deployment and operation of new middleware distributions
• Lower operational costs
• Easy provision of resources to more than one infrastructure
• Easy support for VO-specific worker
nodes
• Performance partitioning between local
and grid clusters
Data Protection:
The data protection is the crucial element of security that warrants scrutiny. In cloud, as data is stored on
remote data center and managed by third party vendors. So, there is a fear of losing confidential data.
Therefore, various cryptographic techniques have to be implemented to protect the confidential data.
Data Recovery and Availability:
In cloud, the user’s data is scattered across the multiple datacenters therefore the recovery of such data is very
difficult as user never comes to know what is the exact location of their data and don’t know how to recover
that data. The availability of the cloud services are highly associated with downtime of the services which is
mentioned in the agreement called Service Level Agreement (SLA). Therefore, any compromise in SLA may leads
increase in downtime with less availability and may harm your business productivity.
Regulatory and Compliance Restrictions:
Many of the countries have Compliance Restrictions and regulation on usage of Cloud services. Therefore, the
Government regulations in such countries do not allow providers to share customer's personal information and
other sensitive information to outside states or country. In order to meet such requirements, cloud providers
need to setup a data center or a storage site exclusively within that country to comply with regulations
Management Capabilities :
The involvement of multiple cloud providers for in house services may leads to difficulty in management.
Interoperability and Compatibility Issue:
The services hosted by the organizations should have freedom to migrate the services in or out of the cloud
which is very difficult in public clouds. The compatibility issue comes when organization wants to change the
service provider. Most of the public cloud provides vendor dependent APIs for access and they may have their
own proprietary solutions which may not be compatible with other providers.