• No results found

Comparing grid and cloud computing

In document Moving into the Cloud (sider 48-51)

2.6 Discussion

2.6.1 Comparing grid and cloud computing

A clear distinction between grid and cloud computing is hard to make, and the terms are often used interchangeably. The two concepts have a lot in common, and yet differ in some ways. A comparison of some key properties of grid and cloud computing can be found in Table 2.1, and will be elaborated in the following.

Area Grid computing Cloud computing

Motivation Increased resource capacity Flexibility and scalability Infrastructure Owned by participants Provided by third party

Business model Share costs Pay as you go

Typical applications Research, heavy batch jobs On-demand infrastructure, scalable services, Web apps.

Virtualization Infrequent Prevalent

VM requirements Scalability, isolation Scalability, isolation, runtime migration, security

Advantages Mature frameworks Low entrance cost, flexibility Disadvantages Initial investment, less flexibility Open issues, immature technology

Table 2.1: Characteristics of grid and cloud computing

Grid computing has been in development and use for over a decade, and several es-tablished frameworks and programming models exist. The original motivation for grid computing was to be able to tap into large amounts of computational resources, especially useful for computationally intensive tasks like weather forecasts, research simulation and High Performance Computing (HPC) applications. The motivation for cloud computing tend to differ, and is typically more related to achieving scalability and flexibility in systems design.

Business model

Setting up a computational grid requires significant hardware infrastructure, which in turn means large investments for organizations interested in taking advantage of grid computing. This lead to the adoption of shared grids, where organizations give others access to some resources in return for access to a collectively larger pool of resources.

This way, the cost of acquiring and running the grid is shared between a set of users.

Users of such shared grids each receive some share of resources, such as a fixed amount of CPU hours, that they can utilize without cost.

Cloud computing differs from this approach in that it is typically offered on a pay-as-you-go basis with little or no initial investment. Instead, users lease access to compu-tational resources from a third-party provider. While distributed computing is a also key feature of grid computing, a distinguishing characteristic of cloud computing is that the distributed computing is also available to end-users or organizations without their own infrastructure.

Application model

Although grids support many types of applications, grid applications are typically job-oriented and batch scheduled [49]. Grid applications are typically not interactive, and are queued for parallel execution on a given number of nodes when resources are available.

As cloud computing is still in an early stage, we have not yet clearly seen what kind of applications that will run in the clouds. However, early applications differ from grid applications in that they execute continuously, opposed to being scheduling in batches, as well as often being interactive. However, many grid applications should be able to take advantage of cloud computing, possibly with the exception of applications that require low-latency interconnects for efficient scaling to many processors [49].

These different application models imply that cloud computing differs from grids in the way resources are shared. In grid computing, access to a pool of resources are governed by a scheduler, and multiplexed sequentially. Whereas in cloud computing, the resources in the cloud are being shared by all users simultaneously.

Programming model

Grid programming does not differ fundamentally from traditional distributed pro-gramming, but is complicated by issues like grids crossing administrative domains,

heterogeneous resources and performance, as well as stability and performance [49].

In addition, since grids often cater to users with computationally intensive tasks, soft-ware must be highly efficient as well as scale well to achieve results within allotted limits.

To achieve these goals, grid software is often designed using paradigms and models common with parallel computing. One of the most popular programming models used in parallel computing is Message Passing Interface [50] (MPI), in which processes use their local memory to perform execution, and communicate by sending and receiving messages. MPICH-G2 [51] is a grid-enabled implementation of MPI, which can be used to realize parallel grid applications. Another popular programming model is MapReduce [27].

In cloud computing, the focus is more on composability, with a lot of principles bor-rowed from SOA. Services are designed with standard interfaces (APIs), that can be accessed over HTTP using SOAP or REST. For example, parallel execution can be achieved by having several worker nodes sharing a queue which is accessed with a SOAP API.

Virtualization

Cloud computing has been made possible due to efficient virtualization techniques, such as hardware-assisted virtualization and paravirtualization, on which it relies heav-ily. Virtualization is used to provide isolation and resource sharing, as well as imple-menting support for rapidly starting, pausing, stopping and migrating computational nodes as they are needed.

Grid computing does not utilize virtualizaton to the same extent, possibly due to or-ganizations wanting to retain control of their resources [49]. Although some grids use virtualization to provide homogeneous execution environments, many grid systems do not use it at all. A contributing fact to this is likely the fact that virtualization in the past lead to significant performance losses for some applications [49]. Another explanation is that grids are typically shared between users cooperating (to some ex-tent), focusing on fair resource sharing through account resource limitations. In cloud computing, the users of the shared infrastructure are not known to each other, and may even be direct competitors. This means that stronger isolation is needed to ensure security and fairness under all conditions.

In document Moving into the Cloud (sider 48-51)