Cloud Computing (Principles and Paradigms) || Introduction to Cloud Computing
Post on 09-Apr-2017
Embed Size (px)
INTRODUCTION TO CLOUDCOMPUTING
WILLIAM VOORSLUYS, JAMES BROBERG, and RAJKUMAR BUYYA
1.1 CLOUD COMPUTING IN A NUTSHELL
When plugging an electric appliance into an outlet, we care neither how electricpower is generated nor how it gets to that outlet. This is possible becauseelectricity is virtualized; that is, it is readily available from a wall socket thathides power generation stations and a huge distribution grid. When extended toinformation technologies, this concept means delivering useful functions whilehiding how their internals work. Computing itself, to be considered fullyvirtualized, must allow computers to be built from distributed components suchas processing, storage, data, and software resources .
Technologies such as cluster, grid, and now, cloud computing, have all aimedat allowing access to large amounts of computing power in a fully virtualizedmanner, by aggregating resources and offering a single system view. Inaddition, an important aim of these technologies has been delivering computingas a utility. Utility computing describes a business model for on-demanddelivery of computing power; consumers pay providers based on usage (pay-as-you-go), similar to the way in which we currently obtain services fromtraditional public utility services such as water, electricity, gas, and telephony.
Cloud computing has been coined as an umbrella term to describe a categoryof sophisticated on-demand computing services initially offered by commercialproviders, such as Amazon, Google, and Microsoft. It denotes a model onwhich a computing infrastructure is viewed as a cloud, from which businessesand individuals access applications from anywhere in the world on demand .The main principle behind this model is offering computing, storage, andsoftware as a service.
Cloud Computing: Principles and Paradigms, Edited by Rajkumar Buyya, James Broberg andAndrzej Goscinski Copyright r 2011 John Wiley & Sons, Inc.
Many practitioners in the commercial and academic spheres have attemptedto define exactly what cloud computing is and what unique characteristics itpresents. Buyya et al.  have defined it as follows: Cloud is a parallel anddistributed computing system consisting of a collection of inter-connectedand virtualised computers that are dynamically provisioned and presented as oneor more unified computing resources based on service-level agreements (SLA)established through negotiation between the service provider and consumers.
Vaquero et al.  have stated clouds are a large pool of easily usable andaccessible virtualized resources (such as hardware, development platformsand/or services). These resources can be dynamically reconfigured to adjustto a variable load (scale), allowing also for an optimum resource utilization.This pool of resources is typically exploited by a pay-per-use model in whichguarantees are offered by the Infrastructure Provider by means of customizedService Level Agreements.
A recent McKinsey and Co. report  claims that Clouds are hardware-based services offering compute, network, and storage capacity where:Hardware management is highly abstracted from the buyer, buyers incurinfrastructure costs as variable OPEX, and infrastructure capacity is highlyelastic.
A report from the University of California Berkeley  summarized the keycharacteristics of cloud computing as: (1) the illusion of infinite computingresources; (2) the elimination of an up-front commitment by cloud users; and(3) the ability to pay for use . . . as needed . . .
The National Institute of Standards and Technology (NIST)  charac-terizes cloud computing as . . . a pay-per-use model for enabling available,convenient, on-demand network access to a shared pool of configurablecomputing resources (e.g. networks, servers, storage, applications, services)that can be rapidly provisioned and released with minimal management effortor service provider interaction.
In a more generic definition, Armbrust et al.  define cloud as the datacenter hardware and software that provide services. Similarly, Sotomayoret al.  point out that cloud is more often used to refer to the ITinfrastructure deployed on an Infrastructure as a Service provider data center.
While there are countless other definitions, there seems to be commoncharacteristics between the most notable ones listed above, which a cloudshould have: (i) pay-per-use (no ongoing commitment, utility prices); (ii) elasticcapacity and the illusion of infinite resources; (iii) self-service interface; and(iv) resources that are abstracted or virtualised.
In addition to raw computing and storage, cloud computing providersusually offer a broad range of software services. They also include APIs anddevelopment tools that allow developers to build seamlessly scalable applica-tions upon their services. The ultimate goal is allowing customers to run theireveryday IT infrastructure in the cloud.
A lot of hype has surrounded the cloud computing area in its infancy, oftenconsidered the most significant switch in the IT world since the advent of the
4 INTRODUCTION TO CLOUD COMPUTING
Internet . In midst of such hype, a great deal of confusion arises when tryingto define what cloud computing is and which computing infrastructures can betermed as clouds.
Indeed, the long-held dream of delivering computing as a utility has beenrealized with the advent of cloud computing . However, over the years,several technologies have matured and significantly contributed to make cloudcomputing viable. In this direction, this introduction tracks the roots ofcloud computing by surveying the main technological advancements thatsignificantly contributed to the advent of this emerging field. It also explainsconcepts and developments by categorizing and comparing the most relevantR&D efforts in cloud computing, especially public clouds, management tools,and development frameworks. The most significant practical cloud computingrealizations are listed, with special focus on architectural aspects and innovativetechnical features.
1.2 ROOTS OF CLOUD COMPUTING
We can track the roots of clouds computing by observing the advancement ofseveral technologies, especially in hardware (virtualization, multi-core chips),Internet technologies (Web services, service-oriented architectures, Web 2.0),distributed computing (clusters, grids), and systems management (autonomiccomputing, data center automation). Figure 1.1 shows the convergence oftechnology fields that significantly advanced and contributed to the adventof cloud computing.
Some of these technologies have been tagged as hype in their early stagesof development; however, they later received significant attention fromacademia and were sanctioned by major industry players. Consequently, aspecification and standardization process followed, leading to maturity andwide adoption. The emergence of cloud computing itself is closely linked tothe maturity of such technologies. We present a closer look at the technol-ogies that form the base of cloud computing, with the aim of providing aclearer picture of the cloud ecosystem as a whole.
1.2.1 From Mainframes to Clouds
We are currently experiencing a switch in the IT world, from in-housegenerated computing power into utility-supplied computing resources deliveredover the Internet as Web services. This trend is similar to what occurred about acentury ago when factories, which used to generate their own electric power,realized that it is was cheaper just plugging their machines into the newlyformed electric power grid .
Computing delivered as a utility can be defined as on demand delivery ofinfrastructure, applications, and business processes in a security-rich, shared,scalable, and based computer environment over the Internet for a fee .
1.2 ROOTS OF CLOUD COMPUTING 5
This model brings benefits to both consumers and providers of IT services.Consumers can attain reduction on IT-related costs by choosing to obtaincheaper services from external providers as opposed to heavily investing on ITinfrastructure and personnel hiring. The on-demand component of thismodel allows consumers to adapt their IT usage to rapidly increasing orunpredictable computing needs.
Providers of IT services achieve better operational costs; hardware andsoftware infrastructures are built to provide multiple solutions and serve manyusers, thus increasing efficiency and ultimately leading to faster return oninvestment (ROI) as well as lower total cost of ownership (TCO) .
Several technologies have in some way aimed at turning the utility comput-ing concept into reality. In the 1970s, companies who offered common dataprocessing tasks, such as payroll automation, operated time-shared mainframesas utilities, which could serve dozens of applications and often operated closeto 100% of their capacity. In fact, mainframes had to operate at very highutilization rates simply because they were very expensive and costs should bejustified by efficient usage .
The mainframe era collapsed with the advent of fast and inexpensivemicroprocessors and IT data centers moved to collections of commodityservers. Apart from its clear advantages, this new model inevitably led toisolation of workload into dedicated servers, mainly due to incompatibilities
Autonomic ComputingData Center Automation
Hardware VirtualizationMulti-core chips
g Internet Technologies
FIGURE 1.1. Convergence of various advances leading to the advent of cloud
6 INTRODUCTION TO CLOUD COMPUTING
between software stacks and operating systems . In addition, the unavail-ability of efficient computer networks meant that IT infrastructure should behosted in proximity to where it would be consumed. Altogether, these factshave prevented the utility computing reality of taking place on moderncomputer systems.
Similar to old electricity generation stations, which used to power individualfactories, computing servers and desktop computers in a modern organizationare often underutilized, since IT infrastructure is configured to handle theore-tical demand peaks. In addition, in the early stages of electricity generation,electric current could not travel long distances without significant voltagelosses. However, new paradigms emerged culminating on transmission systemsable to make electricity available hundreds of kilometers far off from where it isgenerated. Likewise, the advent of increasingly fast fiber-optics networks hasrelit the fire, and new technologies for enabling sharing of computing powerover great distances have appeared.
These facts reveal the potential of delivering computing services withthe speed and reliability that businesses enjoy with their local machines. Thebenefits of economies of scale and high utilization allow providers to offercomputing services for a fraction of what it costs for a typical company thatgenerates its own computing power .
1.2.2 SOA, Web Services, Web 2.0, and Mashups
The emergence of Web services (WS) open standards has significantly con-tributed to advances in the domain of software integration . Web servicescan glue together applications running on different messaging product plat-forms, enabling information from one application to be made available toothers, and enabling internal applications to be made available over theInternet.
Over the years a rich WS software stack has been specified and standardized,resulting in a multitude of technologies to describe, compose, and orchestrateservices, package and transport messages between services, publish and dis-cover services, represent quality of service (QoS) parameters, and ensuresecurity in service access .
WS standards have been created on top of existing ubiquitous technologiessuch as HTTP and XML, thus providing a common mechanism for deliveringservices, making them ideal for implementing a service-oriented architecture(SOA). The purpose of a SOA is to address requirements of loosely coupled,standards-based, and protocol-independent distributed computing. In a SOA,software resources are packaged as services, which are well-defined, self-contained modules that provide standard business functionality and areindependent of the state or context of other services. Services are describedin a standard definition language and have a published interface .
The maturity of WS has enabled the creation of powerful services that can beaccessed on-demand, in a uniform way. While some WS are published with the
1.2 ROOTS OF CLOUD COMPUTING 7
intent of serving end-user applications, their true power resides in its interfacebeing accessible by other services. An enterprise application that follows theSOA paradigm is a collection of services that together perform complexbusiness logic .
This concept of gluing services initially focused on the enterprise Web, butgained space in the consumer realm as well, especially with the advent of Web2.0. In the consumer Web, information and services may be programmaticallyaggregated, acting as building blocks of complex compositions, called servicemashups. Many service providers, such as Amazon, del.icio.us, Facebook, andGoogle, make their service APIs publicly accessible using standard protocolssuch as SOAP and REST . Consequently, one can put an idea of a fullyfunctional Web application into practice just by gluing pieces with few linesof code.
In the Software as a Service (SaaS) domain, cloud applications can be builtas compositions of other services from the same or different providers. Servicessuch user authentication, e-mail, payroll management, and calendars areexamples of building blocks that can be reused and combined in a businesssolution in case a single, ready-made system does not provide all those features.Many building blocks and solutions are now available in public marketplaces.For example, Programmable Web1 is a public repository of service APIs andmashups currently listing thousands of APIs and mashups. Popular APIs suchas Google Maps, Flickr, YouTube, Amazon eCommerce, and Twitter, whencombined, produce a variety of interesting solutions, from finding video gameretailers to weather maps. Similarly, Salesforce.coms offers AppExchange,2
which enables the sharing of solutions developed by third-party developers ontop of Salesforce.com components.
1.2.3 Grid Computing
Grid computing enables aggregation of distributed resources and transparentlyaccess to them. Most production grids such as TeraGrid  and EGEE seek to share compute and storage resources distributed across differentadministrative domains, with their main focus being speeding up a broadrange of scientific applications, such as climate modeling, drug design, andprotein analysis.
A key aspect of the grid vision realization has been building standard Webservices-based protocols that allow distributed resources to be discover...