4.2.2 Comparison from the Viewpoint of System

Download Report

Transcript 4.2.2 Comparison from the Viewpoint of System

Chapter 4
Examining Cloud Computing
From the Perspective of Grid
and Computer-Supported
Cooperative Work
Jinlei Jiang and Guangwen Yang
Abstract
Cloud computing, which refers to services provisioning
and consumption over the Internet, is the latest
paradigm promising to deliver computing as a utility.
Though it is still in its infancy and facing many
challenges, cloud computing has drawn and is drawing
more interest from both academia and industry. Taking
grid computing as the baseline and using the findings in
computer-supported cooperative work (CSCW) research,
this chapter tries to answer such questions as why cloud
computing is so attractive and how to make the vision of
cloud computing really come true.
4.1 Instruction
Delivering computing as a utility was envisioned a way
back by computing pioneer John McCarthy in 1961 as
[17] – “If computers of the kind I have advocated
become the computers of the future, then computing
may someday be organized as a public utility just as the
telephone system is a public utility… The computer
utility could become the basis of a new and important
industry.”, and by Leonard Kleinrock in 1969 [10] –
“As of now, computer networks are still in their
infancy, but as they grow up and become sophisticated,
we will probably see the spread of “computer utilities”
which, like present electric and telephone utilities, will
service individual homes and offices across the
4.1 Instruction
Along the journey toward this dream, many
computing paradigms have been proposed, including
cluster computing, peer-to-peer (P2P) computing,
services computing, and grid computing. Cloud
computing, which refers to service (hardware such as
CPU and storage, platform, and application)
provisioning and consumption over the Internet in an
on-demand approach, is the latest one joining this
family.
4.1 Instruction
Though it is just an emerging paradigm, more and
more people [3, 4, 8, 11] tend to think that cloud
computing is the state-of-the-art practice and holds
the promise to realize the long-held dream of
“computing as a utility. ”
Nowadays, cloud computing has become a trend,
drawing a lot of interest from both academia and
industry. On the one hand, there are lots of hypes
and columns available in the media, especially the ITrelated ones. For example, using Google’s exact
search, the term “cloud computing” yields about
25,200,000 web pages, compared with 2,000,000
pages for “grid computing.”
4.1 Instruction
Another result given by Google is also surprising – it only took
10 months for the cloud computing article by Berkeley [2] to
get 138 citations. On the other hand, there are quite some
products and services available on the market and still more
products and services are coming. For example, besides
Amazon’s EC2 (Elastic Compute Cloud) and S3 (Simple Storage
Service), other well-known cloud computing products and
services include Salesforce’s Force.com and SFA (Sales Force
Automation), IBM’s Blue Cloud, Google’s App Engine and
various Apps, and Microsoft’s Windows Azure, to name but
just a few. It is notable that AT&T and Verizon, two major
telecom operators in the United States, also expanded their
horizons into cloud computing by launching Synaptic Hosting
and CaaS (computing-as-a-service), respectively, in 2009.
4.1 Instruction
In spite of the facts above, cloud computing is still in its
infancy with some debates on its concept and scope [3,8].
Some people think cloud computing is just another name
given to utility computing. Others treat it as an upgrade to
grid computing. Yet others argue that it is a revolution in
computing architecture. Given the fact that cloud
computing has a history of no more than 3 years, it is
natural to see such a situation and it is also natural that
the debates continue. In this chapter, we do not want to
give another definition of cloud computing nor outline its
boundary. Instead, our aim is to explore the following two
questions:
4.1 Instruction
• Why is cloud computing so attractive?
• What should we do to make the vision of
cloud computing really come true?
4.1 Instruction
To do so, we first examine the differences
between cloud and grid computing in Section 2
with an aim to give a better understanding of the
concept and scope of cloud computing.
Afterwards, we turn to findings in computersupported cooperative work (CSCW) research
and try to give answers to the two questions.
Our answers aim to give some hints for the
development of cloud computing rather than
solve all the challenges facing cloud computing.
4.2 Cloud and Grid: A Comparison
It is always effective to understand a new thing by
comparing it with the existing ones. Here, grid
computing is selected because it is the last computing
paradigm before cloud computing along the journey
toward “computing as a utility” and because it
looks very much like cloud computing in many
aspects. Figure 4.1 illustrates the paradigms of grid
and cloud computing. As both grid and cloud
computing are of many shapes and colors, in the
following we will concentrate our comparison on
their origins, system design, and users.
4.2 Cloud and Grid: A Comparison
4.2.1 A Retrospective (回顧) View
Though cloud and grid look very similar in the sense
that they both aim to provide enormous resources
to their users in an on-demand manner, differences
do exist between them. In this section, we explore
their origins. The purpose is to identify the driving
force behind grid and cloud computing and set a
solid foundation for other comparisons.
4.2.1 A Retrospective View
Grid computing stems from academia, or more precisely the
field of high-performance computing (HPC), in the 1990s
with an aim to facilitate users to remotely utilize idle
computing power within other computing centers when the
local one is busy. This can be used to explain why the design
of grid adopts a resource-centric approach. The grid at the
early stage is termed compute grid. It was over nearly 1 years
of development that grid technology became generally
accepted as an effective way for “coordinated resource
sharing and problem solving in dynamic, multi-institutional
virtual organizations”[7]. As a result, compute grid evolved
into grid computing, drawing much attention and funding
from governments around the world.
4.2.1 A Retrospective View
Along this transition, grid technology gets into the scope of
enterprises. A milestone in the development of grid
computing is the convergence of grid and service-oriented
architecture (SOA) [13], resulting in first OGSA (Open Grid
Services Architecture) and then WSRF (Web Service
Resource Framework). It is since then that the potential of
grid computing for business has fully unfolded. However,
owing to a lack of explicit business model and many other
factors that will be analyzed later, today there is still no
widely accepted commercial-running grid service available
on the market [12].
4.2.1 A Retrospective View
In contrast, cloud computing stems from the industry
with an aim to sell resources as a service to its
customers. Three kinds of cloud services identified are
infrastructure as a service (IaaS, e.g., Amazon EC2 and
S3, and IBM Blue Cloud), platform as a service (PaaS,
e.g., Google App Engine, Microsoft Windows Azure, and
Salesforce Force.com), and software as a service (SaaS,
e.g., Salesforce SFA, Google Doc, and Microsoft
Dynamic CRM). Before cloud computing was born, SOA
has been prevalent for quite some time and much
experience has been gained with grid operation.
4.2.1 A Retrospective View
Cloud computing has a better starting point than any
other computing paradigms mentioned in Section 1.
Based on the lessons learned in the past, cloud
computing adopts a user-and task-centric design as
well as a “pay-as-you-go” business model. As a result,
users' experiences with cloud services are enhanced
greatly. Though cloud computing has a short history to
now, many products and services are already available
on the market.
4.2.2 Comparison from the Viewpoint
of System
Different starting points lead to different systems. In
this section, we will examine grid and cloud computing
from a system point of view. Aspects covered are the
technology behind the curtain and the system
management.
In technical language, the purpose of grid computing
is to integrate resources from different organizations
forming a uniform resource pool, which can provide
the ability that is impossible with a single
computing/data center or that is beyond what a single
organization can provide.
4.2.2 Comparison from the Viewpoint
of System
Since these organizations are usually distributed
geographically and have their own rights in determining
vendors of their resources, the principal challenge facing
grid computing is to shield the inherent heterogeneity and
distribution of underlying resources. In contrast, the
purpose of cloud computing is to divide resources into
smaller pieces and delivers them to users in their desired
way whenever needed. Resources in cloud computing are
usually possessed or operated by a single organization and
physically, they can be centralized within the same
computing/data center or distributed across multiple
computing/data centers, homogeneous or heterogeneous.
4.2.2 Comparison from the Viewpoint
of System
In other words, resource heterogeneity and distribution is no
longer a key problem in cloud computing. Instead, the principal
challenge is to improve scalability, availability, and reliability.
Grid computing achieves its purpose through so-called grid
middleware, a specific software product that provides
necessary yet generic services for shielding the inherent
underlying heterogeneity and distribution. Nowadays, there are
well-established standards for grid middleware and quite some
products and systems available, including Globus Toolkit (GT),
Unicore, and gLite, to name but a few. Core services provided
by the existing grid middleware are as follows:
4.2.2 Comparison from the Viewpoint
of System
• Information Service: maintains detailed up-to-date
knowledge of all the resources or services in a grid
environment. Based on the information service, suitable
resources or services are identified. Information service, is also
known as meta-data service or directly service.
• Security Service: resources and users in grids are from
multiple autonomous administrative domains. Security service
is deployed to guarantee secure cross-organizational resource
access that not only protects communications but also ensures
no violation of the local administration policies.
4.2.2 Comparison from the Viewpoint
of System
• Data Management: provides some useful mechanisms for data
access, data movement, data replication and location, and data
integration. In GT4, data management related services include
GridFTP, reliable file transfer (RFT), replica location service (RLS), data
replication service (DRS), and data access and integration (OGSA-DAI)
where OGSA-DAI is supplied by the third-party rather than the Globus
team.
• Execution Management: deployed to fulfill a task using the
resources provided, to track the progress of that task, and to manage
the computing result. The key task of execution management is to
determine where to run a given job according to the information
provided by the information service.
4.2.2 Comparison from the Viewpoint
of System
Cloud computing also achieves its purpose by
a middleware layer, which is called cloudware
in this chapter. According to the type of
service supplied (e.g., IaaS, PaaS, or SaaS),
cloudware may provide various
functionalities In summary, the core
functions of the cloudware are as follows:
4.2.2 Comparison from the Viewpoint
of System
• Middleware is computer software that connects software
components for their applications. The software consists of a
set of services that allows multiple processes running on one
or more machines to interact. This technology evolved to
provide for interoperability in support of the move to
coherent distributed architectures, which are most often used
to support and simplify complex distributed applications. It
includes web servers, application servers, and similar tools
that support application development and delivery.
Middleware is especially integral to modern information
technology based on XML, SOAP, Web services, and serviceoriented architecture.
4.2.2 Comparison from the Viewpoint
of System
• Cloudware is software that runs on Internet
servers rather than on your hard drive. They
require little or no installation/download. It is
also referred to as "Software as a Service"
(SaaS) and it has some connections to what
you may have heard called "thin-client
devices" (hardware or even software where all
the real processing is done on a server and not
on the device you are using).
4.2.2 Comparison from the Viewpoint
of System
Maintains up-to-date information of the available
physical resources (e.g., their capability, current load,
and so on) as happens in grid computing. The
purpose is to provide a basis for other functions such
as virtual machine (VM) and application
management. However, unlike in grid computing,
this information is even transparent to developers.
•
4.2.2 Comparison from the Viewpoint
of System
Create and manage VMs according to
users’ request. To utilize resources
effectively, some algorithms or policies
are deployed to determine where to
create a VM, and when to start and stop
a VM based on the information
maintained. It is the duty of the
hypervisor to keep the resource
entitlement (應得的權利) of a given VM.
4.2.2 Comparison from the Viewpoint
of System
Application deployment, configuration, and
execution. Meanwhile, the execution progress
or status is also tracked.
• User management, pricing, and accounting.
The purpose is to determine how users'
requests are charged and maintain the actual
usage of resources by a certain request or
user.
•
4.2.2 Comparison from the Viewpoint
of System
Grid and cloud computing also show differences in
system management as stated in the following.
In grid computing, since resources are owned and
provided by different autonomous organizations, a
heavy burden is raised to system management. For
each node, besides routine maintenance work,
system administrators must do much extra work to
coordinate local administration policies with global
ones. For example, they must make sure that
resources are shared in a way fully compliant (順從)
with local regulations.
4.2.2 Comparison from the Viewpoint
of System
• In addition, they must separate environment
of local users from global ones to guarantee
reliability and security. None of this work is
trivial. Moreover, since there are quite some
independent or interrelated components and
services involved in a grid, installing and
configuring the grid software itself implies a
lot of work and presents some challenges
even to experienced system administrators.
4.2.2 Comparison from the Viewpoint
of System
On the contrary, resources in cloud computing are usually
possessed or operated by a single organization and as a
result, there is no need to coordinate different
administration policies. In addition, since each VM in
cloud computing provides an isolated and independent
running environment that is fully controllable by the user
who creates it, there is also no need for system
administrators to install and configure users’ programs
and to worry that they may interfere with each other and
cause system disasters. Therefore, the burden of system
management is greatly eased.
4.2.3 Comparison from the Viewpoint
of Users
Different design philosophies lead to different
systems, which in turn place different constraints on
their users. This section compares grid and cloud
computing from the viewpoint of users. Two kinds of
users distinguished here are end-users who
consume resources and services, and application
developers who develop new applications or
services using the resources and services supplied
by a grid or a cloud.
4.2.3 Comparison from the Viewpoint
of Users
Both grid and cloud computing provide two ways for endusers to consume resources supplied. The first involves using
pre-installed software services through their own interfaces.
Since these services are designed to support the needs of
common users, in both cases end-users with special
requirements or habits have to adapt themselves to the
preset operation styles and instructions. Given the fact that
grids are usually operated by computer scientists who know
little about the domain needs, the problem is especially
severe. The second involves running a task directly in a grid
or a cloud. This shows quite some differences in operations
and constraints as stated below.
4.2.3 Comparison from the Viewpoint
of Users
To run a task in a grid, end-users need to specify the type
and quantity of resources desired, information used for
authentication (確證), the program to be run and its
arguments, sources of the input, and the output and its
destination. This is an annoying procedure that often makes
users stop. For example, globusrun-ws, the command
supplied by GT4 for job submission and management, has 30
options for submitting a job and 15 options for monitoring a
job. Though some tools have been provided as a help, much
work is still needed, for example, to compose a job
description file. Even if end-users have done all the work
perfectly, there are still other risks that prevent their jobs
getting done.
4.2.3 Comparison from the Viewpoint
of Users
One thing often ignored is that, because each grid middleware
itself is a software system and has its special requirements on the
running environment, the existing grids are very tightly bound to a
specific operating system (OS), software libraries, or applications.
For example, gLite presently can only run on Scientific Linux 4 and
5, and Debian 4. As a result, if the program corresponding to a job
is not executable on the platform on top of which a grid
middleware is running, or if one or more libraries needed by the
program are unavailable, the job just could not get done even if
there are enough resources available. Another depressing thing is
that, because different grid systems in the real world deploy quite
different ways for users to express their needs, the job description
file prepared for one grid usually cannot be used in another one.
4.2.3 Comparison from the Viewpoint
of Users
In contrast, running a task in clouds is much easier and
faces fewer constraints. The only thing needed is to
reserve the desired resources and configure them for the
task to be run. Resource reservation can be done by
several mouse clicks and resource configuration makes no
difference when compared with activity using local
machines. Owing to the VM technology, users in cloud
computing can always set up an environment capable of
running their programs and thus the constraints laid by
grids on the running programs as mentioned above no
longer exist.
4.2.3 Comparison from the Viewpoint
of Users
Grid and cloud computing also impose different
requirements on application developers. Generally
speaking, developing applications on a grid is a complex
task. First, this implies that developers should know many
details about the grid environment, for example, the way to
stage data to and from the execution site, the way to find a
specific service to be invoked, to name but a few. In
addition, they must spend much time learning the related
APIs (Application Programming Interfaces) – even the
Simple API for Grid Applications (SAGA) has a document of
more than 300 pages.
4.2.3 Comparison from the Viewpoint
of Users
Second, since the grid is a highly dynamic environment,
developers must pay more attention to such issues as
exception handling, fault tolerance, scalability,
performance, and so forth. Third, there are no mature tools
for debugging and measuring the behavior of grid
applications. Developers must struggle in their own ways
(e.g., setting up an experimental grid of their own to
monitor the behaviors of the application) to ensure the
correctness of the application developed. It is easy to see
from the statements above that programming on a grid
raises a heavy burden on application developers.
4.2.3 Comparison from the Viewpoint
of Users
As a comparison, programming in clouds is much easier.
For IaaS, developers can always customize their working
environments with their familiar tools and configurations,
so there is almost no difference to programming on local
machines. For PaaS, nearly every service provider supplies
a platform SDK (Software Development Kit) and/or some
debugging tool. For example, Google App Engine provides
a fully featured local development environment with
which developers can write, for example, standard Java
applications.
4.2.3 Comparison from the Viewpoint
of Users
The Google plug-in for Eclipse provides an IDE
(Integrated Development Environment) with
application wizard and debug configuration for Google
App Engine projects, making the development process
much easier and more efficient. Similarly, Visual Studio
2010 also provides a template for developers to write
Windows Azure services. In this way, the complexity of
the platform is shielded from developers and the pains
of application development are greatly eased.