Unit 1
Unit 1
Jagdish Bhatta
1
Cloud Computing Chapter- Introduction
Introduction:
What is Cloud?
The term cloud has been used historically as a metaphor for the
Internet and has become a familiar cliché. This usage was
originally derived from its common depiction in network diagrams
as an outline of a cloud, used to represent the transport of data
across carrier backbones (which owned the cloud) to an endpoint
location on the other side of the cloud.
✓ The end user doesn’t really have to know anything about the underlying technology. In
small businesses, for example, the cloud provider becomes the de facto data center. In
larger organizations, the IT organization oversees the inner workings of both internal
resources and external cloud resources.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Self-service provisioning:
Customers can easily get cloud services without going through a lengthy process. The
customer simply requests an amount of computing, storage, software, process, or other
resources from the service provider. Contrast this on-demand response with the process at a
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
typical data center. When a department is about to implement a new application, it has to
submit a request to the data center for additional computing hardware, software, services,
or process resources. The data center gets similar requests from departments across the
company and must sort through all requests and evaluate the availability of existing
resources versus the need to purchase new hardware. After new hardware is purchased, the
data center staff has to configure the data center for the new application. These internal
procurement processes can take a long time, depending on company policies. Of course,
nothing is as simple as it might appear. While the on-demand provisioning capabilities
of cloud services eliminate many time delays, an organization still needs to do its
homework. These services aren’t free; needs and requirements must be determined before
capability is automatically provisioned.
Cloud Computing:
Cloud computing is the use of computing resources (hardware and software) that are
delivered as a service over a network (typically the Internet). The name comes from
the use of a cloud-shaped symbol as an abstraction for the complex infrastructure it
contains in system diagrams. Cloud computing entrusts remote services with a user's
data, software and computation.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Cloud computing is a general term for anything that involves delivering hosted
services over the Internet. These services are broadly divided into three categories:
Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-
Service (SaaS). The name cloud computing was inspired by the cloud symbol that's often
used to represent the Internet in flowcharts and diagrams.
A cloud service has three distinct characteristics that differentiate it from traditional
hosting.
- It is elastic -- a user can have as much or as little of a service as they want at any
given time; and
- The service is fully managed by the provider (the consumer needs nothing but a
personal computer and Internet access). Significant innovations in virtualization
and distributed computing, as well as improved access to high-speed Internet and a
weak economy, have accelerated interest in cloud computing.
The service consumer no longer has to be at a PC, use an application from the PC, or
purchase a specific version that's configured for smartphones, PDAs, and other devices.
The consumer does not own the infrastructure, software, or platform in the cloud. He/She
has lower upfront costs, capital expenses, and operating expenses. He/She does not care
about how servers and networks are maintained in the cloud. The consumer can access
multiple servers anywhere on the globe without knowing which ones and where they are
located.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
The origin of the term cloud computing is obscure, but it appears to derive from the
practice of using drawings of stylized clouds to denote networks in diagrams of
computing and communications systems. The word cloud is used as a metaphor for the
Internet, based on the standardized use of a cloud-like shape to denote a network on
telephony schematics and later to depict the Internet in computer network diagrams as an
abstraction of the underlying infrastructure it represents. The cloud symbol was used to
represent the Internet as early as 1994.
The underlying concept of cloud computing dates back to the 1950s; when large-
scale mainframe became available in academia and corporations, accessible via thin
clients /terminal computers. Because it was costly to buy a mainframe, it became
important to find ways to get the greatest return on the investment in them, allowing
multiple users to share both the physical access to the computer from multiple terminals as
well as to share the CPU time, eliminating periods of inactivity, which became known in
the industry as time-sharing.
As in the earliest stages, the term “cloud” was used to represent the computing space
between the provider and the end user. In 1997, Professor Ramnath Chellapa of Emory
University and the University of South California defined cloud computing as the new
“computing paradigm where the boundaries of computing will be determined by
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
economic rationale rather than technical limits alone.” This has become the basis of
what we refer to today when we discuss the concept of cloud computing.
Some people think cloud computing is the next big thing in the world of IT. Others believe
it is just another variation of the utility computing model that has been repackaged in this
decade as something new and cool.
One of the first milestones for cloud computing was the arrival of Salesforce.com in
1999, which pioneered the concept of delivering enterprise applications via a simple
website. The services firm paved the way for both specialist and mainstream software
firms to deliver applications over the internet.
The next development was Amazon Web Services in 2002, which provided a suite of
cloud-based services including storage, computation and even human intelligence through
the Amazon Mechanical Turk. Then in 2006, Amazon launched its Elastic Compute cloud
(EC2) as a commercial web service that allows small companies and individuals to rent
computers on which to run their own computer applications.
The services given by the service provider to the customers or users through cloud
computing technology are said cloud services. Service Provider’s server gives both the
hardware and software necessary and thus easy in management for both user and the cloud
service provider. Cloud computing providers offer their services according to three
fundamental models: Infrastructure as a service (IaaS), platform as a service (PaaS),
and software as a service (SaaS) where IaaS is the most basic and each higher model
abstracts from the details of the lower models.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
IaaS: In this most basic cloud service model, providers offer computers, as physical
or more often as virtual machines, and other resources. The virtual machines are run as
guests by a hypervisor, such as Xen or KVM. Management of pools of hypervisors by the
cloud operational support system leads to the ability to scale to support a large number of
virtual machines. Other resources in IaaS clouds include images in a virtual machine
image library, raw (block) and file-based storage, firewalls, load balancers, IP
addresses, virtual local area networks (VLANs), and software bundles. Amies, Alex;
Sluiman, Harm; Tong IaaS cloud providers supply these resources on demand from their
large pools installed in data centers. For wide area connectivity, the Internet can be used or
—in carrier clouds -- dedicated virtual private networks can be configured
To deploy their applications, cloud users then install operating system images on the
machines as well as their application software. In this model, it is the cloud user who is
responsible for patching and maintaining the operating systems and application software.
Cloud providers typically bill IaaS services on a utility computing basis, that is, cost
will reflect the amount of resources allocated and consumed. STaaS - STorage As A
Service. This service comes under IaaS, which manages all the storage services in cloud
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
computing. There are many security issues in this service. They are Data Integrity,
Confidentiality, Reliability, etc.
IaaS refers not to a machine that does all the work, but simply to a facility given to
businesses that offers users the leverage of extra storage space in servers and data
centers.
PaaS: In the PaaS model, cloud providers deliver a computing platform typically
including operating system, programming language execution environment, database,
and web server. Application developers can develop and run their software solutions on a
cloud platform without the cost and complexity of buying and managing the underlying
hardware and software layers. With some PaaS offers, the underlying computer and
storage resources scale automatically to match application demand such that cloud
user does not have to allocate resources manually.
SaaS: In this model, cloud providers install and operate application software in the
cloud and cloud users access the software from cloud clients. The cloud users do not
manage the cloud infrastructure and platform on which the application is running.
This eliminates the need to install and run the application on the cloud user's own
computers simplifying maintenance and support. What makes a cloud application
different from other applications is its scalability. This can be achieved by cloning tasks
onto multiple virtual machines at run-time to meet the changing work demand. Load
balancers distribute the work over the set of virtual machines. This process is transparent to
the cloud user who sees only a single access point. To accommodate a large number of
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
cloud users, cloud applications can be multitenant, that is, any machine serves more
than one cloud user organization. It is common to refer to special types of cloud based
application software with a similar naming convention: desktop as a service, business
process as a service, test environment as a service, communication as a service.
The pricing model for SaaS applications is typically a monthly or yearly flat fee per
user, so price is scalable and adjustable if users are added or removed at any point.
Examples of SaaS include: Google Apps, Microsoft Office 365, and Onlive.
Grid computing is often confused with cloud computing. Grid computing is a form of
distributed computing that implements a virtual supercomputer made up of a cluster of
networked or Internetworked computers acting in unison to perform very large tasks. Many
cloud computing deployments today are powered by grid computing implementations and
are billed like utilities, but cloud computing can and should be seen as an evolved next step
away from the grid utility model. There is an ever-growing list of providers that have
successfully used cloud architectures with little or no centralized infrastructure or billing
systems, such as the peer-to-peer network BitTorrent and the volunteer computing
initiative SETI@home.
Service commerce platforms are yet another variation of SaaS and MSPs. This type of
cloud computing service provides a centralized service hub that users interact with.
Currently, the most often used application of this platform is found in financial trading
environments or systems that allow users to order things such as travel or personal services
from a common platform (e.g., Expedia.com or Hotels.com), which then coordinates
pricing and service delivery within the specifications set by the user.
Cloud computing evolves from grid computing and provides on-demand resource
provisioning. Grid computing may or may not be in the cloud depending on what type of
users are using it. If the users are systems administrators and integrators, they care how
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
things are maintained in the cloud. They upgrade, install, and virtualize servers and
applications. If the users are consumers, they do not care how things are run in the system.
The difference between grid computing and cloud computing is hard to grasp because
they are not always mutually exclusive. In fact, they are both used to economize computing
by maximizing existing resources. However, the difference between the two lies in the
way the tasks are computed in each respective environment. In a computational grid,
one large job is divided into many small portions and executed on multiple machines. This
characteristic is fundamental to a grid; not so in a cloud. The computing in cloud is
intended to allow the user to avail of various services without investing in the underlying
architecture. Cloud services include the delivery of software, infrastructure, and storage
over the Internet (either as separate components or a complete platform) based on user
demand.
Cloud computing and grid computing are scalable. Scalability is accomplished through
load balancing of application instances running separately on a variety of operating
systems and connected through Web services. CPU and network bandwidth is allocated
and de-allocated on demand. The system's storage capacity goes up and down depending
on the number of users, instances, and the amount of data transferred at a given time.
Both computing types involve multitenancy and multitask, meaning that many customers
can perform different tasks, accessing a single or multiple application instances. Sharing
resources among a large pool of users assists in reducing infrastructure costs and peak load
capacity. Cloud and grid computing provide service-level agreements (SLAs) for
guaranteed uptime availability of, say, 99 percent. If the service slides below the level of
the guaranteed uptime service, the consumer will get service credit for receiving data late.
The Amazon S3 provides a Web services interface for the storage and retrieval of data in
the cloud. Setting a maximum limits the number of objects you can store in S3. You can
store an object as small as 1 byte and as large as 5 GB or even several terabytes. S3 uses
the concept of buckets as containers for each storage location of your objects. The data is
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
stored securely using the same data storage infrastructure that Amazon uses for its e-
commerce Web sites.
While the storage computing in the grid is well suited for data-intensive storage, it is not
economically suited for storing objects as small as 1 byte. In a data grid, the amounts of
distributed data must be large for maximum benefit. A computational grid focuses on
computationally intensive operations. Amazon Web Services in cloud computing offers
two types of instances: standard and high-CPU.
(Refer the research article, provided in the class, entitled “Cloud Computing and Grid
Computing 360-Degree Compared”, by the authors; Ian Foster, Yong Zhao, Ioan
Raicu, Shiyong Lu, published in 2008).
Virtualization:
Virtualization is the key to cloud computing, since it is the enabling technology allowing
the creation of an intelligent abstraction layer which hides the complexity of underlying
hardware or software.
Server virtualization enables different operating systems to share the same hardware
and make it easy to move operating systems between different hardware, all while the
applications are running.
Storage virtualization does the same thing for data. Storage virtualization creates the
abstraction layer between the applications running on the servers, and the storage
they use to store the data.
Virtualizing the storage and incorporating the intelligence for provisioning and protection
at the virtualization layer enables companies to use any storage they want, and not be
locked into any individual vendor. Storage virtualization makes storage a commodity. All
this makes for some interesting ways for companies to reduce their costs.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Virtualization can be applied very broadly to just about everything you can imagine
including memory, networks, storage, hardware, operating systems, and applications.
Virtualization has three characteristics that make it ideal for cloud computing:
- Isolation: Because each virtual machine is isolated, each machine is protected from
crashes and viruses in the other machines. What makes virtualization so important
for the cloud is that it decouples the software from the hardware.
To understand how virtualization helps with cloud computing, you must understand its
many forms. In essence, in all cases, a resource actually emulates or imitates another
resource. Here are some examples:
- Virtual memory: Disks have a lot more space than memory. PCs can use virtual
memory to borrow extra memory from the hard disk. Although virtual disks are
slower than real memory, if managed right, the substitution works surprisingly well.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
manner. Because in cloud computing you need to support many different operating
environments, the hypervisor becomes an ideal delivery mechanism by allowing you to
show the same application on lots of different systems. Because hypervisors can load
multiple operating systems, they are a very practical way of getting things virtualized
quickly and efficiently.
Public: The infrastructure is made available to the general public or a large industry
group and is owned by an organization selling cloud services. It is also referred to as
‘external’ Cloud that describes the conventional meaning of Cloud computing:
scalable, dynamically provisioned, often virtualized resources available over the
internet from an off-site third party provider, which divides up resources and bills its
customers on a ‘utility’ basis.
Public cloud applications, storage, and other resources are made available to the general
public by a service provider. These services are free or offered on a pay-per-use model.
Generally, public cloud service providers like Amazon AWS, Microsoft and Google own
and operate the infrastructure and offer access only via Internet (direct connectivity is not
offered).
A private cloud could provide the computing resources needed for a large organization,
e.g., a research institution, a university, or a corporation. There are some arguments that a
private cloud does not support utility computing when the user pays as it consumes
resources.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Undertaking a private cloud project requires a significant level and degree of engagement
to virtualize the business environment, and it will require the organization to reevaluate
decisions about existing resources. When it is done right, it can have a positive impact on a
business, but every one of the steps in the project raises security issues that must be
addressed in order to avoid serious vulnerabilities
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Hybrid clouds lack the flexibility, security and certainty of in-house applications. Hybrid
cloud provides the flexibility of in house applications with the fault tolerance and
scalability of cloud based services.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
The complex structure of cloud services can make it difficult to determine who is
responsible in case something undesirable happens. In a complex chain of events or
systems, many entities contribute to an action with undesirable consequences, some of
them have the opportunity to prevent these consequences, and therefore no one can
be held responsible, the so-called “problem of many hands.”
Ubiquitous and unlimited data sharing and storage among organizations test the
selfdetermination of information, the right or ability of individuals to exercise personal
control over the collection, use and disclosure of their personal data by others; this tests the
confidence and trust in todays evolving information society. Identity fraud and theft are
made possible by the unauthorized access to personal data in circulation and by new forms
of dissemination through social networks and they could also pose a danger to cloud
computing.
The question of what can be done proactively about ethics of cloud computing does
not have easy answers as many undesirable phenomena in cloud computing will only
appear in time. But the need for rules and regulations for the governance of cloud
computing are obvious. The term governance means the manner in which something is
governed or regulated, the method of management, the system of regulations. Explicit
attention to ethics must be paid by governmental organizations providing research funding;
private companies are less constraint by ethics oversight and governance arrangements are
more conducive to profit generation.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
this problem. Another concern for the users is a future with only a handful of companies
which dominate the market and dictate prices and policies
Because customers generally do not own the infrastructure used in cloud computing
environments, they can forgo capital expenditure and consume resources as a service
by just paying for what they use. Many cloud computing offerings have adopted the
utility computing and billing model described above, while others bill on a subscription
basis. By sharing computing power among multiple users, utilization rates are
generally greatly improved, because cloud computing servers are not sitting dormant
for lack of use. This factor alone can reduce infrastructure costs significantly and
accelerate the speed of applications development.
A beneficial side effect of using this model is that computer capacity increases
dramatically, since customers do not have to engineer their applications for peak times,
when processing loads are greatest. Adoption of the cloud computing model has also been
enabled because of the greater availability of increased high-speed bandwidth. With greater
enablement, though, there are other issues one must consider, especially legal ones.
The following are some of the possible benefits for those who offer cloud computing-based
services and applications:
- Cost Savings — Companies can reduce their capital expenditures and use
operational expenditures for increasing their computing capabilities. This is a lower
barrier to entry and also requires fewer in-house IT resources to provide system
support.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Cloud computing has a variety of characteristics, with the main ones being:
- Broad Network Access — Needs to be accessed across the internet from a broad
range of devices such as PCs, laptops, and mobile devices, using standards-based
APIs (for example, ones based on HTTP). Deployments of services in the cloud
include everything from using business applications to the latest application on the
newest smartphones.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
- Multi-Tenant Capable - The resources (e.g., network, storage and compute power)
can be shared among multiple enterprise clients, thereby lowering overall expense.
Resource virtualization is used to enforce isolation and aid in security.
- Rapid Elasticity - The consumer should have the ability to rapidly (often
automatically) increase or decrease the computing resources needed to carry out
their work.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
The development of efficient cloud applications inherits the challenges posed by the
natural imbalance between computing, I/O, and communication bandwidths of physical
systems; these challenges are greatly amplified due the scale of the system, its distributed
nature, and by the fact that virtually all applications are data-intensive. Though cloud
computing infrastructures attempt to automatically distribute and balance the load, the
application developer is still left with the responsibility to place the data close to the
processing site and to identify optimal storage for the data. One of the main advantages of
cloud computing, the shared infrastructure, could also have a negative impact as perfect
performance isolation is nearly impossible to reach in a real system, especially when the
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
system is heavily loaded. The performance of virtual machines fluctuates based on the
load, the infrastructure services, the environment including the other users. Reliability is
also a major concern; node failures are to be expected whenever a large numbers of nodes
cooperate for the computations. Choosing an optimal instance, in terms of performance
isolation, reliability, and security, from those offered by the cloud infrastructure is another
critical factor to be considered. Of course, cost considerations play also a role in the choice
of the instance type. Many applications consist of multiple stages; in turn, each stage may
involve multiple instances running in parallel on the systems of the cloud and
communicating among them. Thus, efficiency, consistency, and communication scalability
of communication are major concerns for an application developer. Indeed, due to shared
networks and unknown topology, cloud infrastructures exhibit inter-node latency and
bandwidth fluctuations which affect the application performance.
The following are some of the notable challenges associated with cloud computing, and
although some of these may cause a slowdown when delivering more services in the cloud,
most also can provide opportunities, if resolved with due care and attention in the planning
stages.
- Security and Privacy — Perhaps two of the more “hot button” issues surrounding
cloud computing relate to storing and securing data, and monitoring the use of the
cloud by the service providers. These issues are generally attributed to slowing the
deployment of cloud services. These challenges can be addressed, for example, by
storing the information internal to the organization, but allowing it to be used in the
cloud. For this to occur, though, the security mechanisms between organization and
the cloud need to be robust and a Hybrid cloud could support such a deployment.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
mature, but it is not known whether they will address the needs of the people
deploying the services and the specific interfaces these services need. However,
keeping up to date on the latest standards as they evolve will allow them to be
leveraged, if applicable.
Distributed computing also refers to the use of distributed systems to solve computational
problems. In distributed computing, a problem is divided into many tasks, each of which is
solved by one or more computers, which communicate with each other by message
passing.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
- There are several autonomous computational entities, each of which has its own
local memory.
- The entities communicate with each other by message passing
Distributed systems are groups of networked computers, which have the same goal
for their work. The terms "concurrent computing", "parallel computing", and
"distributed computing" have a lot of overlap, and no clear distinction exists between
them. The same system may be characterized both as "parallel" and "distributed"; the
processors in a typical distributed system run concurrently in parallel. Parallel computing
may be seen as a particular tightly coupled form of distributed computing, and distributed
computing may be seen as a loosely coupled form of parallel computing. Nevertheless, it is
possible to roughly classify concurrent systems as "parallel" or "distributed" using the
following criteria:
The figure below illustrates the difference between distributed and parallel systems. Figure
(a) is a schematic view of a typical distributed system; as usual, the system is represented
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
as a network topology in which each node is a computer and each line connecting the
nodes is a communication link. Figure (b) shows the same distributed system in more
detail: each computer has its own local memory, and information can be exchanged only
by passing messages from one node to another by using the available communication links.
Figure (c) shows a parallel system in which each processor has a direct access to a shared
memory.
The last decade, the term 'Grid' has been a key topic in the field of high
performance/distributed computing. The Grid has emerged as a new field of
distributed computing, focusing on secure sharing of computational and storage
resources among dynamic sets of people and organizations who own these resources.
This sharing of resources can give people not only computational capabilities and data
storage capabilities that cannot be provided by a single supercomputing center, but it also
allows them to share data in a transparent way.
Grid Computing can be defined as applying resources from many computers in a network
to a single problem, usually one that requires a large number of processing cycles or access
to large amounts of data.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Distributed computing was one of the first real instances of cloud computing. Long
before Google or Amazon, there was SETI@Home. Proposed in 1995 and launched in
1999, this program uses the spare capacity of internet connected machines to search
for extraterrestrial intelligence. This is sort of the cloud in reverse.
A more recent example would be software like Hadoop. Written in Java, Hadoop is a
scalable, efficient, distributed software platform designed to process enormous amounts of
data. Hadoop can scale to thousands of computers across many clusters.
As the cloud computing buzzword has evolved, distributed computing has fallen out
of that particular category of software. Even though distributed computing might
take advantage of the internet, it doesn’t follow the other tenants of cloud computing,
mainly the automatic and instant scalability of resources.
That’s not to say that a distributed system couldn’t be built to be a cloud environment.
Bittorrent, or any P2P system, comes very close to a cloud storage. It would require some
additional protections like file ownership and privacy across all nodes but it could probably
be done. Privacy like that is not quite what P2P is all about though.
Jagdish Bhatta
17
Cloud Computing Chapter- Introduction
Jagdish Bhatta
17