Chat with us, powered by LiveChat writing thoughts and comments | All Paper
+1(978)310-4246 credencewriters@gmail.com
  

Read the attached article and
get some more insights onto the evolution of cloud computing and its
unique features that differentiates it from grid computing.
20190522112032cloud_grid_computing.pdf

Unformatted Attachment Preview

Cloud Computing and Grid Computing 360-Degree Compared
1,2,3
Ian Foster, 4Yong Zhao, 1Ioan Raicu, 5Shiyong Lu
foster@mcs.anl.gov, yozha@microsoft.com, iraicu@cs.uchicago.edu, shiyong@wayne.edu
1
Department of Computer Science, University of Chicago, Chicago, IL, USA
2
Computation Institute, University of Chicago, Chicago, IL, USA
3
Math & Computer Science Division, Argonne National Laboratory, Argonne, IL, USA
4
Microsoft Corporation, Redmond, WA, USA
5
Department of Computer Science, Wayne State University, Detroit, MI, USA
Abstract– Cloud Computing has become another buzzword after Web
2.0. However, there are dozens of different definitions for Cloud
Computing and there seems to be no consensus on what a Cloud is.
On the other hand, Cloud Computing is not a completely new concept;
it has intricate connection to the relatively new but thirteen-year
established Grid Computing paradigm, and other relevant
technologies such as utility computing, cluster computing, and
distributed systems in general. This paper strives to compare and
contrast Cloud Computing with Grid Computing from various angles
and give insights into the essential characteristics of both.
1
100-Mile Overview
Cloud Computing is hinting at a future in which we won’t
compute on local computers, but on centralized facilities
operated by third-party compute and storage utilities. We sure
won’t miss the shrink-wrapped software to unwrap and install.
Needless to say, this is not a new idea. In fact, back in 1961,
computing pioneer John McCarthy predicted that
“computation may someday be organized as a public utility”—
and went on to speculate how this might occur.
In the mid 1990s, the term Grid was coined to describe
technologies that would allow consumers to obtain computing
power on demand. Ian Foster and others posited that by
standardizing the protocols used to request computing power,
we could spur the creation of a Computing Grid, analogous in
form and utility to the electric power grid. Researchers
subsequently developed these ideas in many exciting ways,
producing for example large-scale federated systems (TeraGrid,
Open Science Grid, caBIG, EGEE, Earth System Grid) that
provide not just computing power, but also data and software,
on demand. Standards organizations (e.g., OGF, OASIS)
defined relevant standards. More prosaically, the term was also
co-opted by industry as a marketing term for clusters. But no
viable commercial Grid Computing providers emerged, at least
not until recently.
So is “Cloud Computing” just a new name for Grid? In
information technology, where technology scales by an order
of magnitude, and in the process reinvents itself, every five
years, there is no straightforward answer to such questions.
Yes: the vision is the same—to reduce the cost of computing,
increase reliability, and increase flexibility by transforming
computers from something that we buy and operate ourselves
to something that is operated by a third party.
But no: things are different now than they were 10 years ago.
We have a new need to analyze massive data, thus motivating
greatly increased demand for computing. Having realized the
benefits of moving from mainframes to commodity clusters,
we find that those clusters are quite expensive to operate. We
have low-cost virtualization. And, above all, we have multiple
billions of dollars being spent by the likes of Amazon, Google,
and Microsoft to create real commercial large-scale systems
containing hundreds of thousands of computers. The prospect
of needing only a credit card to get on-demand access to
100,000+ computers in tens of data centers distributed
throughout the world—resources that be applied to problems
with massive, potentially distributed data, is exciting! So we
are operating at a different scale, and operating at these new,
more massive scales can demand fundamentally different
approaches to tackling problems. It also enables—indeed is
often only applicable to—entirely new problems.
Nevertheless, yes: the problems are mostly the same in Clouds
and Grids. There is a common need to be able to manage large
facilities; to define methods by which consumers discover,
request, and use resources provided by the central facilities;
and to implement the often highly parallel computations that
execute on those resources. Details differ, but the two
communities are struggling with many of the same issues.
1.1
Defining Cloud Computing
There is little consensus on how to define the Cloud [49]. We
add yet another definition to the already saturated list of
definitions for Cloud Computing:
A 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.
There are a few key points in this definition. First, Cloud
Computing is a specialized distributed computing paradigm; it
differs from traditional ones in that 1) it is massively scalable,
2) can be encapsulated as an abstract entity that delivers
different levels of services to customers outside the Cloud, 3) it
is driven by economies of scale [44], and 4) the services can be
dynamically configured (via virtualization or other approaches)
and delivered on demand.
Governments, research institutes, and industry leaders are
rushing to adopt Cloud Computing to solve their everincreasing computing and storage problems arising in the
Internet Age. There are three main factors contributing to the
surge and interests in Cloud Computing: 1) rapid decrease in
hardware cost and increase in computing power and storage
capacity, and the advent of multi-core architecture and modern
supercomputers consisting of hundreds of thousands of cores;
2) the exponentially growing data size in scientific
instrumentation/simulation and Internet publishing and
archiving; and 3) the wide-spread adoption of Services
Computing and Web 2.0 applications.
1.2
Clouds, Grids, and Distributed Systems
Many discerning readers will immediately notice that our
definition of Cloud Computing overlaps with many existing
technologies, such as Grid Computing, Utility Computing,
Services Computing, and distributed computing in general. We
argue that Cloud Computing not only overlaps with Grid
Computing, it is indeed evolved out of Grid Computing and
relies on Grid Computing as its backbone and infrastructure
support. The evolution has been a result of a shift in focus
from an infrastructure that delivers storage and compute
resources (such is the case in Grids) to one that is economy
based aiming to deliver more abstract resources and services
(such is the case in Clouds). As for Utility Computing, it is not
a new paradigm of computing infrastructure; rather, it is a
business model in which computing resources, such as
computation and storage, are packaged as metered services
similar to a physical public utility, such as electricity and
public switched telephone network. Utility computing is
typically implemented using other computing infrastructure
(e.g. Grids) with additional accounting and monitoring services.
A Cloud infrastructure can be utilized internally by a company
or exposed to the public as utility computing.
See Figure 1 for an overview of the relationship between
Clouds and other domains that it overlaps with. Web 2.0
covers almost the whole spectrum of service-oriented
applications, where Cloud Computing lies at the large-scale
side. Supercomputing and Cluster Computing have been more
focused on traditional non-service applications. Grid
Computing overlaps with all these fields where it is generally
considered of lesser scale than supercomputers and Clouds.
distributed computing paradigm or infrastructure that spans
across multiple virtual organizations (VO) where each VO can
consist of either physically distributed institutions or logically
related projects/groups. The goal of such a paradigm is to
enable federated resource sharing in dynamic, distributed
environments. The approach taken by the de facto standard
implementation – The Globus Toolkit [16][23], is to build a
uniform computing environment from diverse resources by
defining standard network protocols and providing middleware
to mediate access to a wide range of heterogeneous resources.
Globus addresses various issues such as security, resource
discovery, resource provisioning and management, job
scheduling, monitoring, and data management.
Half a decade ago, Ian Foster gave a three point checklist [19]
to help define what is, and what is not a Grid: 1) coordinates
resources that are not subject to centralized control, 2) uses
standard, open, general-purpose protocols and interfaces, and 3)
delivers non-trivial qualities of service. Although point 3 holds
true for Cloud Computing, neither point 1 nor point 2 is clear
that it is the case for today’s Clouds. The vision for Clouds and
Grids are similar, details and technologies used may differ, but
the two communities are struggling with many of the same
issues. This paper strives to compare and contrast Cloud
Computing with Grid Computing from various angles and give
insights into the essential characteristics of both, with the hope
to paint a less cloudy picture of what Clouds are, what kind of
applications can Clouds expect to support, and what challenges
Clouds are likely to face in the coming years as they gain
momentum and adoption. We hope this will help both
communities gain deeper understanding of the goals,
assumptions, status, and directions, and provide a more
detailed view of both technologies to the general audience.
2
2.1
Figure 1: Grids and Clouds Overview
Grid Computing aims to “enable resource sharing and
coordinated problem solving in dynamic, multi-institutional
virtual organizations” [18][20]. There are also a few key
features to this definition: First of all, Grids provide a
Comparing Grids and Clouds Side-by-Side
This section aims to compare Grids and Clouds across a wide
variety of perspectives, from architecture, security model,
business model, programming model, virtualization, data
model, compute model, to provenance and applications. We
also outline a number of challenges and opportunities that Grid
Computing and Cloud Computing bring to researchers and the
IT industry, most common to both, but some are specific to
one or the other.
Business Model
Traditional business model for software has been a one-time
payment for unlimited use (usually on 1 computer) of the
software. In a cloud-based business model, a customer will pay
the provider on a consumption basis, very much like the utility
companies charge for basic utilities such as electricity, gas, and
water, and the model relies on economies of scale in order to
drive prices down for users and profits up for providers. Today,
Amazon essentially provides a centralized Cloud consisting of
Compute Cloud EC2 and Data Cloud S3. The former is
charged based on per instance-hour consumed for each
instance type and the later is charged by per GB-Month of
storage used. In addition, data transfer is charged by TB /
month data transfer, depending on the source and target of
such transfer. The prospect of needing only a credit card to get
on-demand access to 100,000+ processors in tens of data
centers distributed throughout the world—resources that be
applied to problems with massive, potentially distributed data,
is exciting!
The business model for Grids (at least that found in academia
or government labs) is project-oriented in which the users or
community represented by that proposal have certain number
of service units (i.e. CPU hours) they can spend. For example,
the TeraGrid operates in this fashion, and requires increasingly
complex proposals be written for increasing number of
computational power. The TeraGrid has more than a dozen
Grid sites, all hosted at various institutions around the country.
What makes an institution want to join the TeraGrid? When an
institution joins the TeraGrid with a set of resources, it knows
that others in the community can now use these resources
across the country. It also acknowledges the fact that it gains
access to a dozen other Grid sites. This same model has
worked rather well for many Grids around the globe, giving
institutions incentives to join various Grids for access to
additional resources for all the users from the corresponding
institution.
There are also endeavors to build a Grid economy for a global
Grid infrastructure that supports the trading, negotiation,
provisioning, and allocation of resources based on the levels of
services provided, risk and cost, and users’ preferences; so far,
resource exchange (e.g. trade storage for compute cycles),
auctions, game theory based resource coordination, virtual
currencies, resource brokers and intermediaries, and various
other economic models have been proposed and applied in
practice [8].
2.2
Architecture
Grids started off in the mid-90s to address large-scale
computation problems using a network of resource-sharing
commodity machines that deliver the computation power
affordable only by supercomputers and large dedicated clusters
at that time. The major motivation was that these high
performance computing resources were expensive and hard to
get access to, so the starting point was to use federated
resources that could comprise compute, storage and network
resources from multiple geographically distributed institutions,
and such resources are generally heterogeneous and dynamic.
Grids focused on integrating existing resources with their
hardware, operating systems, local resource management, and
security infrastructure.
In order to support the creation of the so called “Virtual
Organizations”—a logical entity within which distributed
resources can be discovered and shared as if they were from
the same organization, Grids define and provide a set of
standard protocols, middleware, toolkits, and services built on
top of these protocols. Interoperability and security are the
primary concerns for the Grid infrastructure as resources may
come from different administrative domains, which have both
global and local resource usage policies, different hardware
and software configurations and platforms, and vary in
availability and capacity.
Grids provide protocols and services at five different layers as
identified in the Grid protocol architecture (see Figure 2). At
the fabric layer, Grids provide access to different resource
types such as compute, storage and network resource, code
repository, etc. Grids usually rely on existing fabric
components, for instance, local resource managers (i.e. PBS
[5], Condor [48], etc). General-purpose components such as
GARA (general architecture for advanced reservation) [17],
and specialized resource management services such as Falkon
[40] (although strictly speaking, Falkon also provides services
beyond the fabric layer).
Figure 2: Grid Protocol Architecture
The connectivity layer defines core communication and
authentication protocols for easy and secure network
transactions. The GSI (Grid Security Infrastructure) [27]
protocol underlies every Grid transaction.
The resource layer defines protocols for the publication,
discovery, negotiation, monitoring, accounting and payment of
sharing operations on individual resources. The GRAM (Grid
Resource Access and Management) [16] protocol is used for
allocation of computational resources and for monitoring and
control of computation on those resources, and GridFTP [2]
for data access and high-speed data transfer.
The collective layer captures interactions across collections of
resources, directory services such as MDS (Monitoring and
Discovery Service) [43] allows for the monitoring and
discovery of VO resources, Condor-G [24] and Nimrod-G [7]
are examples of co-allocating, scheduling and brokering
services, and MPICH [32] for Grid enabled programming
systems, and CAS (community authorization service) [21] for
global resource policies.
The application layer comprises whatever user applications
built on top of the above protocols and APIs and operate in VO
environments. Two examples are Grid workflow systems, and
Grid portals (i.e. QuarkNet e-learning environment [52],
National
Virtual
Observatory
(http://www.us-vo.org),
TeraGrid Science gateway (http://www.teragrid.org)).
Clouds are developed to address Internet-scale computing
problems where some assumptions are different from those of
the Grids. Clouds are usually referred to as a large pool of
computing and/or storage resources, which can be accessed via
standard protocols via an abstract interface. Clouds can be
built on top of many existing protocols such as Web Services
(WSDL, SOAP), and some advanced Web 2.0 technologies
such as REST, RSS, AJAX, etc. In fact, behind the cover, it is
possible for Clouds to be implemented over existing Grid
technologies leveraging more than a decade of community
efforts in standardization, security, resource management, and
virtualization support.
There are also multiple versions of definition for Cloud
architecture, we define a four-layer architecture for Cloud
Computing in comparison to the Grid architecture, composed
of 1) fabric, 2) unified resource, 3) platform, and 4) application
Layers.
Cloud Architecture
Application
Platform
Unified Resource
Fabric
Figure 3: Cloud Architecture
The fabric layer contains the raw hardware level resources,
such as compute resources, storage resources, and network
resources. The unified resource layer contains resources that
have been abstracted/encapsulated (usually by virtualization)
so that they can be exposed to upper layer and end users as
integrated resources, for instance, a virtual computer/cluster, a
logical file system, a database system, etc. The platform layer
adds on a collection of specialized tools, middleware and
services on top of the unified resources to provide a
development and/or deployment platform. For instance, a Web
hosting environment, a scheduling service, etc. Finally, the
application layer contains the applications that would run in
the Clouds.
Clouds in general provide services at three different levels
(IaaS, PaaS, and Saas [50]) as follows, although some
providers can choose to expose services at more than one level.
Infrastructure as a Service (IaaS) [50] provisions hardware,
software, and equipments (mostly at the unified resource layer,
but can also include part of the fabric layer) to deliver software
application environments with a resource usage-based pricing
model. Infrastructure can scale up and down dynamically
based on application resource needs. Typical examples are
Amazon EC2 (Elastic Cloud Computing) Service [3] and S3
(Simple Storage Service) [4] where compute and storage
infrastructures are open to public access with a utility pricing
model; Eucalyptus [15] is an open source Cloud
implementation that provides a compatible interface to
Amazon’s EC2, and allows people to set up a Cloud
infrastructure at premise and experiment prior to buying
commercial services.
Platform as a Service (PaaS) [50] offers a high-level
integrated environment to build, test, and deploy custom
applications. Generally, developers will need to accept some
restrictions on the type of software they can write in exchange
for built-in application scalability. An example is Google’s
App Engine [28], which enables users to build Web
applications on the same scalable systems that power Google
applications.
Software as a Service (SaaS) [50] delivers special-purpose
software that is remotely accessible by consumers through the
Internet with a usage-based pricing model. Salesforce is an
industry leader in providing online CRM (Customer
Relationship Management) Services. Live Mesh from
Microsoft allows files and folders to be shared and
synchronized across multiple devices.
Although Clouds provide services at three differen …
Purchase answer to see full
attachment