Cloud Computing Architectures

Transcription

Cloud Computing ArchitecturesHuaglory TianfieldSchool of Engineering and Built Environment, Glasgow Caledonian UniversityCowcaddens Road, Glasgow G4 0BA, United KingdomE-mail: h.tianfield@gcu.ac.ukAbstract—In this paper, we put forward a basic taxonomy ofcloud computing architectures. By this taxonomy, cloudcomputing architectures are essentially subdivided into CloudPlatform Architecture (CAA) and Cloud ApplicationArchitecture (CAA) which are linked via the cloud servicesavailable in the marketplace of Information Technology (IT)capabilities. We elaborate the constructs of CPA and CAA,respectively. Such a division between CPA and CAA isfundamental for cloud computing to serve as a potentialfoundation for delivering IT services as utilities over the Internet.Keywords-cloud computing; cloud computing architecture;cloud platform architecture; cloud application architecture;service-oriented architecture; utility computingI.INTRODUCTIONA cloud pools together large numbers of physicallydistributed compute resources, e.g., processors, memory,network bandwidth and storage, which can be organized ondemand into services that can grow or shrink in real-time. [1]NIST defines cloud computing as “ a model for enablingconvenient, on-demand network access to a shared pool ofconfigurable computing resources (for example, networks,servers, storage, applications, and services) that can be rapidlyprovisioned and released with minimal management effort orservice provider interaction.” [2]Cloud computing is the convergence of several conceptsfrom resource pooling, virtualization, dynamic provisioning,utility computing, on-demand deployment, Internet delivery ofservices, to enable a more flexible approach to deploying andscaling applications.Through cloud computing, applications can rapidly bedeployed where the underlying technology components canexpand and contract with the natural ebb and flow of thebusiness life cycle. [3]Instead of requiring a long-term contract for services withan Information Technology (IT) organization or a serviceprovider, clouds work on a pay-by-use, pay-per-cycle or payby-the-sip model where an application may exist to run a jobfor a few minutes or hours, or to provide services to customerson a long-term basis. Compute clouds are built as ifapplications are temporary, and billing is based on resourceconsumption: CPU hours used, volumes of data moved, orgigabytes of data stored.Most of the current work on cloud computing focuses onits concepts and the analysis of business opportunities,benefits and deployment modes. However, very little looks at978-1-4577-0653-0/11/ 26.00 2011 IEEEthe inherent architectures of cloud computing. In this paper,we will put forward a basic taxonomy of architectures forcloud computing. We essentially subdivide cloud computingarchitectures into Cloud Platform Architecture (CPA) andCloud Application Architecture (CAA). Such a divisionbetween CPA and CAA is fundamental for cloud computing toserve as a potential foundation for delivering IT services asutilities over the Internet.II.FUNDAMENTALS OF CLOUD COMPUTINGARCHITECTURESTo reach the essence of cloud computing, we revisit thebasic concepts as follows.Definition 1. A Cloud is an Internet-Centric Marketplaceof IT Capabilities.Definition 2. Cloud Computing is a paradigm ofcomputing that operates on the resources which are madeavailable via cloud services.As evident by Definition 1, the basic mechanism thatgoverns the cloud would be the demand and supply relationsin the cloud marketplace. Thus, cloud computing architecturesshould basically involve CPA and CAA. Based on such anunderstanding, we put forward a basic taxonomy of cloudcomputing architectures, as illustrated in Fig. 1.1394Cloud Application Architecture nceClouds: Internet-CentricMarketplace of IT CapabilitiesCloud APICloud APICloud APICloud Platform Architecture (CPA)Figure 1. Taxonomy of cloud computing architectures

There is a clear separation between the functional roles ofservice providers and infrastructure providers. Serviceproviders are the entities that understand the needs of aparticular business and offer service applications to addressthose needs. Service providers do not own the computationalresources needed for these service applications; instead, theylease resources from infrastructure providers, which providethem with a seemingly infinite pool of computational, network,and storage resources.Infrastructure providers operate host sites that own andmanage the physical infrastructure on which serviceapplications execute. The federation of collaborating sitesforms a cloud marketplace. To optimize resource utilization,the computational resources within a site are partitioned by avirtualization layer into Virtual Execution Environments(VEEs), namely fully isolated runtime environments thatabstract away the physical characteristics of the resource andenable sharing. The virtualized computational resources,alongside the virtualization layer and all the managementenablement components, are referred to as service provider. [4]III.CLOUD PLATFORM ARCHITECTURE (CPA)IV.In a cloud platform, which can offer IaaS, PaaS, SaaS, etc.,large resource pools based on virtualized infrastructureprovide greater flexibility and efficiency. Resources of eachphysical host are virtualized and presented as multiple VirtualMachines (VMs) to run multiple operating systems andapplication instances. Cloud platform provides pools ofvirtualized resources (compute, memory, storage, bandwidth)spanning multiple hosts and storage frames. Multi-tenancy(different resource pools for different customers) is on sharedphysical infrastructure.To achieve higher levels of resource utilization within eachpool, techniques such as workload balancing across physicalservers and storage frames can be used. Workload balancing isachieved with VM live migration, which migrates virtualizedapplications between physical resources within a resource poolin a way that is transparent to users and does not interrupt theservice provided by the cloud platform.We put forward a CPA as illustrated in Fig. 3.CLOUD SERVICESClouds: Internet-CentricMarketplace of IT CapabilitiesIn a marketplace of IT utilities, a wide range of cloudservices may be offered. Cloud services are encapsulated, haveApplication Programming Interfaces (APIs), and are availableover the network.Cloud Services represent any type of IT capability that isprovided by Cloud Service Provider (CSP) to Cloud ServiceCustomers (CSCs). Typical categories of cloud services areInfrastructure as a Service (IaaS), Platform as a Service (PaaS),Software as a Service (SaaS), or Business Process as a Service,as depicted in Fig. 2. In contrast to traditional IT services,cloud services have attributes associated with cloud computing,such as a pay-per-use model, self-service usage, flexiblescaling, and shared underlying IT resources.Cloud APIs(including Management and Customer Portals)Cloud HypervisorSoftware as a Service (SaaS)Platform as a Service (PaaS)Virtual MachineVirtual MachineVirtual ualization ofComputeVirtualizationof NetworkVirtualizationof StorageDistributed Resources of Physical HostsInfrastructure as a Service(IaaS)Figure 3. Cloud platform architecture (CPA)Figure 2. Cloud service stackLet icvoda denote “internet-centric virtualization and ondemand access”, DF “distributed IT facilities”, “and/or”, thenthe service delivery models of Cloud Computing can beexpressed as follows.icvoda(I){DF},IaaS PaaS icvoda(P){DF} icvoda(P,I){IaaS},(1)SaaS icvoda(S){DF} icvoda(S,P){PaaS} icvoda(S,P){icvoda(P,I){IaaS}} icvoda(S,I){IaaS}.Computing, storage and network resource are three basicresources in a cloud platform. Compute clouds are usuallycomplemented by storage clouds that provide virtualizedstorage through APIs that facilitate storing VM images, sourcefiles for components such as Web servers, application statedata, and general business data.A. Virtualization TechnologiesVirtualization has re-emerged in recent years as acompelling approach to increasing resource utilization andreducing IT service costs. The common theme of allvirtualization technologies is hiding the underlyinginfrastructure by introducing a logical layer between the1395

physical infrastructure and the computational processes.Virtualization technologies are one of the importantbuilding blocks in CPA. The dynamic infrastructure enabledby technologies such as virtualization aligns well with thedynamic on-demand nature of clouds.At a fundamental level, virtualization technology enablesthe abstraction or decoupling of the application payload fromthe underlying physical resource [5]. What this typicallymeans is that the physical resource can then be carved up intological or virtual resources as needed. This is known asprovisioning. By introducing a suitable managementinfrastructure on top of this virtualization functionality, theprovisioning of these logical resources could be made dynamic,i.e., the logical resource could be made bigger or smaller inaccordance with demand. This is known as dynamicprovisioning. To enable a true “cloud” computer, every singlecomputing element or resource should be capable of beingdynamically provisioned and managed in real-time. [1]Virtualization takes many forms. System virtualization [6],also commonly referred to as server virtualization, is theability to run multiple heterogeneous operating systems on thesame physical server [7]. With server virtualization, a controlprogram (commonly known as “hypervisor” or “VM monitor”)is run on a given hardware platform, simulating one or moreother computer environments (VMs). Each of these VMs, inturn, runs its respective “guest” software, typically anoperating system, which runs just as if it were installed on thestand-alone hardware platform. Other forms of virtualizationinclude storage virtualization and network virtualization,namely logical representations of the physical storage andnetwork resources. [4]Virtualization further enhances flexibility because itabstracts the hardware to the point where software stacks canbe deployed and redeployed without being tied to a specificphysical server. Virtualization enables a dynamic datacenterwhere servers provide a pool of resources that are harnessed asneeded, and where the relationship of applications to compute,storage, and network resources changes dynamically in orderto meet both workload and business demands. Withapplication deployment decoupled from server deployment,applications can be deployed and scaled rapidly, withouthaving to first procure physical servers. [8]Virtualization dynamically overlays VMs over physicalresources. In general, these efforts try to extend the benefits ofvirtualization from a single resource to a pool of resources,decoupling the VM not only from physical infrastructure butalso from physical location. [4]Virtual appliances, namely VMs that include software thatis partially or fully configured to perform a specific task suchas a Web or database server, further enhance the ability tocreate and deploy applications rapidly. The combination ofVMs and virtual appliances as standard deployment objects isone of the key features of cloud computing.Distributed VM management in hypervisors enables livemigration and suspend/resume mechanisms that allow movinga VM from one host to another, stopping the VM and startingit again later. To have a dynamic virtualized, multi-tenantenvironment, key requirements include optimal runtimeplacement of virtualized workloads and comprehensive VMperformance monitoring and diagnostics.B. Scaling and ElasticityApproaches to scaling infrastructures to meet the demandcan be classified as physical investment type and run-timehorizontal scaling type.Scale-up (i.e., physical investment) approach is notconcerned with scalable architecture, but invests heavily inlarger and more powerful computers (vertical scaling) toaccommodate the demand.The traditional scale-out (component based) approachcreates an architecture that scales horizontally and invests ininfrastructure in increments. Most of the businesses and largescale web applications follow this approach by distributingtheir application components, federating their datasets andemploying a service-oriented pattern. This approach, oftenmore effective than a scale-up one though, still requirespredicting the demand at regular intervals and then deployinginfrastructure in increments to meet the demand.In the context of the cloud, decoupling your components,building asynchronous systems and scaling horizontallybecome very important. It will not only allow you to scale outby adding more instances of the same component, but alsoallow you to design hybrid models in which a few componentscontinue to run in on-premise resources while othercomponents can take advantage of the cloud marketplace anduse the cloud services for additional compute-power andbandwidth. By this way, you can “overflow” excess workloadto the cloud via load balancing tactics.Applications taking advantage of horizontal scaling shouldfocus on overall application availability with the assumptionthat individual components may fail. Most cloud platforms arebuilt on a virtual pool of server resources where, if any onephysical server fails, the VMs that it was hosting are simplyrestarted on a different physical server. The combination ofstateless and loose-coupled application components withhorizontal scaling promotes a fail-in-place strategy that doesnot depend on the reliability of any one component. [8]Horizontal scaling does not have to be limited to a singlecloud. Depending on the size and location of application data,“surge computing” can be used to extend a cloud’s capabilityto accommodate temporary increases in workload. In surgecomputing, an application running in a private cloud mightrecruit additional resources from a public cloud as the needarises, i.e., to overflow excess workload to a public cloud. [8]Horizontal scaling basically calls for Service-OrientedArchitectures (SOAs). The cloud reinforces the SOA designprinciple that the more loosely coupled the components of thesystem, the bigger and better it scales. [9]Elasticity is the power to scale computing resources up anddown easily and with minimal friction. Elasticity should beone of the architectural design requirements or a systemproperty. [9]Automated elasticity of cloud computing enables theinfrastructure to be closely aligned (as it expands and contracts)with the actual demand, thereby increasing overall utilization1396

and reducing cost. The elastic aspect of cloud computingallows applications to scale and grow without needingtraditional ‘fork-lift’ upgrades.Elasticity can be achieved through auto-scaling based ondemand. Auto-scaling means you can scale your applicationsup and down to match your unexpected demand without anyhuman intervention. By using a monitoring tool, your systemcan send triggers to take appropriate actions so that it scales upor down based on metrics (utilization of the servers or networkI/O, for instance). [9]A cloud platform can be monitored using data analysistools in order to gain visibility into resource utilization,operational performance, and overall demand patterns(including metrics such as CPU utilization, disk reads andwrites, and network traffic). Auto-scaling can automaticallyscale your capacity on certain conditions based on metrics thatdata analysis tools collect, e.g., historical consumption andpurchasing information, performance and utilization trends,summaries of alerts and security-related events, etc.Within each host site, the resource utilization is monitoredand the placement of VEEs is constantly updated to achieveoptimal utilization with minimal cost.V.capabilities to provide a seemingly infinite service computingutility. [4]We put forward a CAA, as illustrated in Fig. 4, which isitself wholly a SOA. In fact, it is by means of SOA that cloudservices are able to be organized in CAA more effectively.CAA is basically comprised of three layers, namely, thevirtual appliances which run with the APIs of variousCSPs/platforms, the cloud brokers which work with theassociated cloud ontologies, and the Business Service andProcess (BSP) layer which performs Business ServiceManagement (BSM), Service Level Agreement (SLA), serviceorchestrations and process management. BSP and cloud brokerlayer jointly implement service-oriented processes, includingcloud service discovery, matching, dynamic SLA negotiation,on-demand provision, etc.Service ManagersWorkflowTemplateCLOUD APPLICATION ARCHITECTURE (CAA)Cloud computing takes further concepts such as utilitycomputing and virtualization by allowing self-service, meteredusage and more automated dynamic resource and workloadmanagement. As services became more and more distributed,SOAs have emerged as a methodology to integrate andorchestrate distributed business services. [3]From an enterprise perspective, the on-demand nature ofcloud computing helps realize the performance and capacityaspects of Service-Level Objectives (SLOs). The self-servicenature of cloud computing allows organizations to createelastic environments that expand and contract based on theworkload and target performance parameters. The pay-by-useattribute of cloud computing may take the form of equipmentleases that guarantee a minimum level of service from a CSP.The key is to build components that do not have tightdependencies on each other, so that if one component were todie (fail), sleep (not respond) or remain busy (slow to respond)for some reason, the other components in the system are builtso as to continue to work as if no failure is happening. Inessence, loose coupling isolates the various layers andcomponents of your application so that each componentinteracts asynchronously with the others and treats them as a“black box”. [9]Cloud computing does not replace SOA, or the use ofdistributed software components, as an integration technology.[10] Rather, SOA and cloud computing are related.Specifically, SOA is an architectural pattern that guidesbusiness solutions to create, organize and reuse its computingcomponents, while cloud computing is a set of enablingtechnologies that services a bigger, more flexible platform forenterprise to build their SOA solutions.Only through federation and interoperability caninfrastructure providers take advantage of their aggregatedBusiness ServiceManagementService OrchestrationComputeBrokerProcess & CloudService ageOntologyVirtualApplianceCloud APIsClouds: Internet-CentricMarketplace of IT CapabilitiesFigure 4. Cloud Application Architecture (CAA)CAA embodies service management framework and isoverall a SOA. CAA has unified the service-oriented cloudcomputing artchctatuere in [11] and the federated cloudarchitecture in [4]. The concept of federation of clouds [4]essentially is about management of cloud services fromheterogeneous CSPs. The essence of federated clouds is that afuture enterprise computing in a cloud environment has toresort to IT utilities that are distributed and heterogeneous inthe cloud marketplace.A service application is a set of software components thatwork collectively to achieve a common goal. Each componentof such service applications executes in a dedicated VEE.1397

These VEEs are placed on the same or different CSPs withinthe site, or even on different sites. A service application isdeployed on the CAA using a service manifest that formallydefines the contract and SLA between the service provider andthe infrastructure provider.The execution of the service applications is monitored andthe capacity is constantly adjusted to meet the requirementsand SLA specified in the service manifest.A. BSP LayerIn BSP Layer, not only services but also many otherartifacts can be published and shared, such as workflowtemplates, collaboration templates and test cases.BSP layer handles the full lifecycle of virtualized resourcesand provides additional common infrastructure elements forservice level management, metered usage, policy management,license management, and disaster recovery. Mature cloudservice management software allows dynamic provisioningand resource allocation to allow applications to scale ondemand and minimize the waste associated with underutilizedand static computing resources. [3]A key aspect of BSM is SLA management. New SLAmanagement challenges arise due to the dynamic federation ofcloud infrastructure providers.Cloud computing must support for BSM, specifically forbusiness-aligned SLA management. While specific cloudcomputing solutions can be enhanced with some aspects ofBSM, the provisioning of complex services across a federatednetwork of possibly disparate datacenters is a difficult problem.A service may be a composition of numerous distributedresources, including computing, storage, and networkelements. Provisioning such a service consumes physicalresources, but should not cause an SLA violation of any otherrunning application with a probability larger than somepredefined threshold.Functionalities of BSP layer are represented by servicemanager. Service manager interacts with CSPs to receive theirservice manifests, negotiate pricing, and handle billing. Twoof its most complex tasks are deploying and provisioningVEEs based on the service manifest, and monitoring andenforcing SLA compliance by throttling a serviceapplication’s capacity.Service manager receives service manifests from CSPs.Based on information in the manifests, it deploys andprovisions the service application by interacting with cloudbrokers to allocate VEEs and their associated resources. Fromthe service requirements in the manifests (i.e., SLOs, elasticityrules, etc.), service manager derives a list of required resourcesand their configuration, as well as placement constraints basedon cost, licensing, confidentiality, etc. For unsized serviceapplications, service manager is responsible for generatingexplicit rules based on site policy. Deployment andprovisioning decisions are based on performance and SLAcompliance and adjusted according to business considerations(e.g., costs, security, offers, etc.). [4]Service manager is also responsible for monitoring thedeployed services and adjusting their capacity, i.e., the numberof VEE instances as well as their resource allocation (memory,CPU, etc.), to ensure SLA compliance and alignment withhigh-level business goals (e.g., cost-effectiveness). [4]B. Cloud Broker LayerCloud brokers serve as the agents between individual CSPsand BSP layer. Each major cloud service has an associatedservice broker type.Cloud broker is responsible for the optimal placement ofVEEs into CSPs subject to constraints determined by servicemanager. The continuous optimization process is driven by asite-specific programmable utility function. Cloud broker isfree to place and move VEEs anywhere, even on the remotesites (subject to overall cross-site agreements), as long as theplacement satisfies the constraints. Thus, in addition to servinglocal requests (from the local service manager), cloud brokeris responsible for the federation of remote sites. [4]CSPs might not conform to the standards rigidly; theymight also have implemented extra features that are notincluded in the standards. Cloud ontologies exist to mask thedifferences among the different individual CSPs and can helpthe migration of cloud application from one cloud to another.Each cloud broker has the associated cloud ontology, i.e.,storage ontology, compute ontology, network ontology. [11]At cloud broker level a service is realized as a set of interrelated VEEs (a VEE Group), and hence it should be managedas a whole. For example, the service manifest may define aspecific deployment order, placement constraints (i.e., affinityrules), or rollback policies. Cloud broker also provides thefunctionality needed to handle the dynamic nature of theservice workload, such as the ability to add and remove VEEsfrom an existing VEE Group, or to change the capacity of asingle VEE. [4]C. CSP LayerCSP layer resembles the normal cloud platforms. EachCSP builds its own datacenters that power the cloud services itprovides. Each cloud may have its own proprietaryvirtualization technology or utilize open source virtualizationtechnology, such as Eucalyptus [12].Deploying cloud applications as virtual appliances makesmanagement significantly easier. The virtual appliancesshould bring with them all of the software they need for theirentire lifecycle in the cloud. More importantly, they should bebuilt in a systematic way, akin to an assembly line productioneffort as opposed to a hand crafted approach. The reason forthis systematic approach is the consistency of creating and recreating images. [13]A virtual appliance is an application that is bundled withall the components that it needs to run, along with astreamlined operating system. In a cloud computingenvironment, a virtual appliance can be instantly provisionedand decommissioned as needed, without complexconfiguration of the operating environment. [13]When building virtual appliances, it is obvious that theyshould contain the operating system and any middlewarecomponents they need. A virtual appliance is an instance runin a VEE. Less obvious are the software packages that allowthem to automatically configure themselves, monitor and1398

report their state back to a management system, and updatethemselves in an automated fashion. Automating the virtualappliance configuration and updates means that as theapplication grows in the cloud, the management overhead doesnot grow in proportion. In this way virtual appliances can liveinside the cloud for any length of time with minimalmanagement overheads.When virtual appliances are instantiated in the cloud, theyshould also plug into a monitoring and management system.This system will allow you to track application instancesrunning in the cloud, migrate or shutdown instances as needed,and gather logs and other system information necessary fortroubleshooting or auditing. Without a management system tohandle the virtual appliances, it is likely that the applicationwill slowly sprawl across the cloud, wasting resources andmoney.By automating the creation and management of thesevirtual appliances, you are tackling one of the most difficultand expensive problems in software today: variability. Byproducing a consistent virtual appliance image and managingit effectively, you are removing variability from the releasemanagement and deployment process. Reducing the variabilityreduces the chances of mistakes.One of the key characteristics that distinguish cloudcomputing from standard enterprise computing is that theinfrastructure itself is programmable. Instead of physicallydeploying servers, storage, and network resources to supportapplications, developers specify how the same virtualcomponents are configured and interconnected, including howVM images and application data are stored and retrieved froma storage cloud. They specify how and when components aredeployed through an API that is specified by CSP. [8]Effective development tools can leverage cloud’sdistributed computing capabilities. These tools not onlyfacilitate service orchestration that can leverage dynamicprovisioning, but also enable business processes to bedeveloped that can harness the parallel processing capabilitiesavailable to clouds. The development tools must supportdynamic provisioning and not rely on hard codeddependencies such as servers and network resources. [3]Service providers of traditional SOA develop the logic of aservice and provide its running environment. In CAA, servicesare published as re-deployable packages, namely servicepackage. If CSPs only use the standard APIs and protocols, asingle version of complied code is enough; if CSPs optimizethe performance of their services by utilizing some platformunique APIs and features, complied code for each platform isneeded. [11]CSP is responsible for the basic control and monitoring ofVEEs and their resources (e.g., creating a VEE, allocatingadditional resources to a VEE, monitoring a VEE, migrating aVEE, creating a virtual network and storage pool, etc.). EachCSP type encapsulates a particular type of virtualizationtechnology, and all CSP types expose a common interfacesuch that cloud broker can issue generic commands to managethe life-cycle of VEEs. The receiving CSP is responsible fortranslating these commands into commands specific to thevirtualization platform. [4]VI.CONCLUSIONSWe have put forward a basic taxonomy of architectures forcloud computing. Cloud computing architectures areessentially subdivided into Cloud Platform Architecture (CPA)and Cloud Application Architecture (CAA) which are linkedvia the cloud services available on the marketplace of ITutilities. Such a division between CPA and CAA isfundamental for cloud computing to serve as a potentialfoundation for delivering IT services as utilities over theInternet, because by this way, the concerns of CSPs and CSCsare profoundly separated. Our elaborations on the constructsof CPA and CAA have manifested that while the focus ofCPA lies at Internet-centric virtualization of IT capabilitiesand the elasticity, the focus of CAA is at service managementand SOAs, which will be able to provide a robust cloudcomputing environment despite heterogeneity and dynamicchanges of [12][13]1399V. Sarathy et al, “Next generation cloud computing architecture -enabling real-time dynamism for shared distributed physicalinfrastructure”, 19th IEEE International Workshops on veEnterprises(WETICE’10), Larissa, Greece, 28-30 June 2010, pp. 48-53.P. Mell et al, “NIST definition of cloud

Keywords-cloud computing; cloud computing architecture; cloud platform architecture; cloud application architecture; service-oriented architecture; utility computing I. INTRODUCTION A cloud pools together large numbers of physically distributed compute resources, e.g., processors, memory, network bandwidth and storage, which can be organized on .