Your SlideShare is downloading. ×
  • Like
Software Architecture Definition for On-demand Cloud Provisioning
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Software Architecture Definition for On-demand Cloud Provisioning

  • 634 views
Published

Presentation at IPDPS 2010

Presentation at IPDPS 2010

Published in Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
634
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
19
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Add a few labels Software vendors across the spectrum of specialties are acutely aware of the emerging phenomenon of cloud computing. Although it is not entirely new (SaaS-style applications have been offered in some business contexts for years and some levels of infrastructure utility support — for storage and other purposes — has also been in use for a long time), the entry of new visionary and powerful vendors into the space makes all the difference. Google and Amazon are two innovators that are leading the industry to the new cloud-based computing style. Cisco and WebEx have also contributed in this direction (WebEx Connect) though with lesser impact. More recently, IBM and Microsoft had began multi-billion dollar investments in building the data centers comparable to the likes of Google and Amazon to establish an independent footprint for their own renditions of cloud computing. Both SAP and Oracle had pledged that the next generation of their business applications will be cloud-enabled and available (optionally) as SaaS. As in the data center — in the cloud too — technology architecture is multi-layered and complex. The basic hosting offerings (from IBM, Dell, Rackspace, OpSource and others) compete with the utility offerings from Amazon, Xdrive, MediaMax and others. The applications from Workday, NetSuite, RightNow and Salesforce run over their own platforms, but many smaller and newer application ISVs build on the growing availability of development and runtime environments for the cloud, including Force.com, Rollbase, LongJump, Bungee Connect and others. With time this variety of offerings will likely consolidate, but not in the immediate future, where we expect a continuing emergence of new innovative players and offerings. Key Issue: What are the platform vendors' APaaS strategies?
  • Refer to D4.x.1 chapter 2 for details
  • Defined a set of extensions to OVF to handle some of the key cloud requirements - In particular (elasticity, application state, dynamic IP assignment, network properties)

Transcript

  • 1. Software Architecture Definition forOn-Demand Cloud provisioning Clovis Chapman, Wolfgang Emmerich, Fermín Galán Marquez, Stuart Clayman, Alex Galis University College London Telefonica I+D The research leading to these results has been partially funded by the European Communitys Seventh Framework Programme (FP7/2007-2013) under grant agreement n° 215605.
  • 2. Overview  Problem overview  Background: Resources And Service Virtualization Without Barriers  Approach: Software architecture definition  EvaluationSoftware Architecture Definition for On-demand Cloud Provisioning
  • 3. Problem overview Clouds introduce opportunity to lease computational resources on demand: – Manage the execution of service applications across multiple physical locations in a seamless manner – Virtualisation allow a wide range of new capabilities (migration, on demand allocation, dynamic resizing) Software systems hosted on clouds may be composed of numerous loosely coupled components: – Application may present architectural constraints, co-dependencies between components. – Providers must be able to define software composition and requirements related to the provisioning of the service.Software Architecture Definition for On-demand Cloud Provisioning
  • 4. Example: SAP ERP SystemPresentation SAP GUI SAP GUI SAP GUI Browser Three tier architecture:  Database (DBMS)  Central Instance (CI) – Enqueue server providing a high level DI DI CI DI DI Application locking mechanism (data consistency) – Messaging server for load balancing  Dialog Instance – User request processing DBMS Database – Data record updates – Batch processingSoftware Architecture Definition for On-demand Cloud Provisioning
  • 5. Example: SAP ERP System SAP GUI SAP GUI SAP GUI BrowserPresentation Software composition: Individual components may have different software and hardware requirements: - DBMS: large storage requirements Application DI DI CI DI DI - DI: Processor intensive Topology: All components must belong to the same virtual network. Customization: Locations must be provided at run-time. DBMS DatabaseSoftware Architecture Definition for On-demand Cloud Provisioning
  • 6. Example: SAP ERP System SAP GUI SAP GUI SAP GUI BrowserPresentation Application DI DI CI DI DI Deployment dependencies: DBMS and CI must be run first. Location constraints: Must be co- located on the same physical site to minimise latency DBMS DatabaseSoftware Architecture Definition for On-demand Cloud Provisioning
  • 7. Example: SAP ERP System SAP GUI SAP GUI SAP GUI BrowserPresentation Application DI DI CI DI DI DI DI DBMS Database Dynamic capacity adjustment: Might require new DIs to meet increases in workload. Resource requirements directly proportional to concurrent sessions.Software Architecture Definition for On-demand Cloud Provisioning
  • 8. Example 2: Thales eGov Dynamic capacity adjustment: Each layer invoked to process user requests. Each scale independently according to load and average response time.Software Architecture Definition for On-demand Cloud Provisioning
  • 9. Focus of this work  Define a software architecture definition language: – Enable service providers to control the deployment and management of services deployed on Clouds throughout their lifetime. – Introduce abstractions to support capabilities introduced by cloud computing (e.g. service elasticity)  Define underlying service management infrastructure support: – Monitoring / lifecycle management / elasticity enforcement  Define behavioural semantics for the language: – Link between software architecture definition and infrastructure – Derive service management lifecycle from software architecture definition – Constrain infrastructure operationSoftware Architecture Definition for On-demand Cloud Provisioning
  • 10. Overview  Problem overview  Background: Resources And Service Virtualization Without Barriers  Approach: Software architecture definition  EvaluationSoftware Architecture Definition for On-demand Cloud Provisioning
  • 11. RESERVOIR Goals  Develop and promote (through standardization) an open architecture for federated cloud computing - where resources and services can be transparently and dynamically managed, provisioned and relocated like utilities  RESERVOIR is an open framework of modular components that enable a wide range of setups within the cloud space Infrastructure OIR Solutions RV SE RESoftware Architecture Definition for On-demand Cloud Provisioning
  • 12. Challenges  Inherently limited scalability of single-provider clouds  Lack of interoperability among cloud providers - Inability to scale through partnerships across providers - Prevents small and medium infrastructure providers from entering the market - Locks consumers to a single vendor  Dynamic and automated application scaling  BSM through Service Level Agreements, Monitoring, Security …Software April, 2009 Definition forY1 Project Review 1-2 Architecture On-demand Cloud Provisioning 12
  • 13. The RESERVOIR vision Public cloud Private cloud Partner cloudSoftware Architecture Definition for On-demand Cloud Provisioning
  • 14. RESERVOIR Architecture Service Provider supplies: • Prepacked Service Components • Enforces SLA compliance by adjusting (Virtual Machine) application capacity: • Service Manifest • Service Components Sizing (VEEs) Separation + Business Orientation • Service Tiers sizing Service Provider • Responsible for accounting and billing SMI Elasticity + Business Orientation + Trust + Security Manifest • Optimizes VEE placement subject to constraints Service Manager • Deals with site federation • Distributed as OpenNebula VMI SLA SLA Federation + Elasticity + Trust + Security VMI VEE Manager (VEEM) VMI • Translates generic commands into specific virtualization platform VHI commands • Creates and maintains isolated virtual networks • Enables efficient and secure access VEE Host (VEEH) (e.g., Hypervisor, VJSC Host) to remote storage Reservoir Site Isolation + Elasticity + Trust + SecuritySoftware Architecture Definition for On-demand Cloud Provisioning
  • 15. Service Manifest Requirements  Service Manifest Language – Define language for service definition manifest to express: • Application structure (software architecture) • Constraints (grouping / topology / cost) • Capacity requirements (with elasticity rules) • Monitoring specification • Additional information (requirements / service levels / Customisation ) – Contract between provider and infrastructure provider  Service Lifecycle Management – Derive various representations and execution plans for underlying layers: • Deployment descriptor • Elasticity rules • …Software Architecture Definition for On-demand Cloud Provisioning
  • 16. Overview  Problem overview  Background: Resources And Service Virtualization Without Barriers  Approach: Software architecture definition  EvaluationSoftware Architecture Definition for On-demand Cloud Provisioning
  • 17. Model-denotational Approach  Language definition using OMG’s Model Driven Architecture  Abstract syntax defined using the Essential Meta Object facility – Define core syntactic elements of the language (software architecture, requirements, etc.)  Various concrete syntaxes (XMI, HUTN, …) as may be required – Based on open standards – in particular the Open Virtualisation Format (OVF)  Semantics expressed as constraints on relationship between domain model and syntactic model using the Object Constraints Language.  Domain model represents cloud infrastructure andSoftware Architecture Definition for On-demand Cloud Provisioning
  • 18. Service Deployment Manifest Language Syntax Virtual Execution Environment Manifest VirtualMachine OS +refs: Reference[] +name:String +kernel: String +disks: Disk[] +CPU: double +initdr: String +nets: Network[] +memory: double +kernel_cmd: String +vm: VirtualSystem[] +Rank: String +root: String +Requirements: +boot: String String ApplicationDescription +input: Input context Association +graphics: Graphics +comp: Components[] +kpi: KPIs inv: Disk manifest .vm −> forAll ( v | +type: String depdescriptor . exists( d | +source: String d.name = v. id && +target: String ElasticityRule d.memory = v.virtualhardware.memory +bus: String && +cond: Expression +readOnly: boolean d. disk. source = +kpi: KPIs (manifest.refs.file −>asSet() +action: Operation −> select (id = v. id))−>first().href . . . NIC ) +mac: String +bridge: String +target: String +script: StringSoftware Architecture Definition for On-demand Cloud Provisioning
  • 19. Elasticity Rule Management Application Domain Service Management Language Syntax MonitoringAgen DialogInstance MonitoringEvent ElasticityRule t CentralInstance WebDispatcher KPI RuleEngine Component DBMS context RuleInterpreter :: evaluate(expr: Expression): Real ApplicationDescription LocalProcess VirtualMachine VEEM post:  Application level monitor if expr.op.oclIsTypeOf(GreaterThan) then Operation publishes measurements of Manifest if self . evaluate((op. el −>first Key Performance Indicators ()) > self . evaluate((op. el−>last ()) addVM deleteVM then result = 1  Elasticity rules define else result = 0 resizing actions to migrateVM end if … else undertake based on KPI . . . . conditions endifSoftware Architecture Definition for On-demand Cloud Provisioning
  • 20. Deriving Java Code – Eclipse PluginSoftware Architecture Definition for On-demand Cloud Provisioning
  • 21. Concrete Syntax (Implementation) Requirement CDDLM SDD OVF Service Manifest requirements Service Architecture description N Y Y have been evaluated against Hardware requirements N N Y existing Service Definition Software environment N N Y Languages: Network topology N N Y/I Virtualization Elasticity N N P  The Open Virtualisation Format (OVF), DMTF standard Migration constraints N N N backed by XenSource and Portability N Y Y VMWare, was found to be the Dependency Deployment N P P most suited Undeployment N Y Y Customization N Y Y  Extensions were needed: Location Constraints N N N OVF is primarily suited for the Non-functional Security Support N N Y initial deployment of fixed sized services Extensible Y Y Y Open Standard Y Y Y Existing support Y Y Y Y: Yes N: No P: PartialSoftware Architecture Definition for On-demand Cloud Provisioning
  • 22. OVF Additional Extensions Extension Limitation in standard OVF for How the limitation is Extension type RESERVOIR solved Elasticity Rules Service elasticity is not considered <ElasticityRulesSection> New section for standard OVF Key Performance KPI specification to trigger elasticity <KPIsSection> New section for Indicators standard OVF Can specify scaling rules with an Event Deployment No ability to specify constraints on <DeploymentSection> New section for deployment location and exclude Condition Actionstandard (simplified): format OVF Constraints specific zones <VirtualSystem min=“0” max=“10”> Affinity How to specify that certain machines <AffinitySection> New section for <ElasticityArraySection> Requirements should be located in a same location (or <Rule> standard OVF not) <KPIName>totalUsers</KPIName> <Window unit="mn">10</Window> Performance How to define the expected range of <PerformanceObjectiveS New section for <Frequency>60</Frequency> Objective values that KPI measurements should ection> standard OVF <Quota>20</Quota> fall in for SLA protection </Rule> Availability How to specify availability guarantees <AvailabilitySection> New section for Requirements for services standard OVFSoftware Architecture Definition for On-demand Cloud Provisioning
  • 23. Service Management Infrastructure Service Manager Cloud Provider Deploy/Undeploy Central Instance Service Parser Manifest Probe KPI Lifecycle Rules Manager Rules Engine Dialog Instance Rules Probe HTTP Server Dialog Instance Customization Probe Monitoring Disk Images BusSoftware Architecture Definition for On-demand Cloud Provisioning
  • 24. Overview  Problem overview  Background: Resources And Service Virtualization Without Barriers  Approach: Software architecture definition  EvaluationSoftware Architecture Definition for On-demand Cloud Provisioning
  • 25. Evaluation: Scientific Grid Computing Scientific grid application deployed on Cloud infrastructure – polymorph prediction: - Involves a number of grid and web based services to trigger and monitor the search – up to 7200 executions of fortran programs Objective: If software architecture is correctly described - can we obtain: - An equivalent quality of service than that of a dedicated environment - Reduced resource consumption through elasticity rule definitions Testbed: six servers, Quad-Core AMD Opteron(tm) Processor 2347 HE CPU and 8 GBs of RAM and with shared storage via NFS.Software Architecture Definition for On-demand Cloud Provisioning
  • 26. Evaluation: Scientific Grid Computing Front End Web Server Input Web Server GridSAM Exec .. Condor BPEL Condor Job Scheduler Job starter queue Grid Execution Orchestration Node Service Management Service VM Dynamic scaling  RESERVOIR Service management system Physical resourcesSoftware Architecture Definition for On-demand Cloud Provisioning
  • 27. Evaluation: Scientific Grid Computing Front End Web Server Input Web Server GridSAM Exec .. Condor BPEL Condor Job Scheduler Job starter queue Grid Execution Orchestration Node Service Management Service elasticity: Service VM Dynamic scaling  Scale number of cluster nodes according to RESERVOIR Servicein queue: jobs management system - Monitoring agent provides job queue information KPI Physical - Manifest defines upscaling and downscaling resources rules e.g.: If (queusize / instances ) > 4 -> deploy(executeNode)Software Architecture Definition for On-demand Cloud Provisioning
  • 28. Evaluation: Results Full turn around time for overall grid search:  Dedicated service (static): 2h23  Elastic provisioning: 2h39 (+7%) Resource Cost saving for single run: 34% - over a week: 69.18%Software Architecture Definition for On-demand Cloud Provisioning
  • 29. Acknowledgments  RESERVOIR consortium : http://www.reservoir-fp7.eu  OpenNebula: http://www.opennebula.org  UCL-MDA tools: http://uclmda.sourceforge.net/Software Architecture Definition for On-demand Cloud Provisioning