[2024]Digital Global Overview Report 2024 Meltwater.pdf
Â
Software Architecture Definition for On-demand Cloud Provisioning
1. Software Architecture Definition for
On-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
Community's 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
ď§ Evaluation
Software 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 System
Presentation
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 processing
Software Architecture Definition for On-demand Cloud Provisioning
5. Example: SAP ERP System
SAP GUI
SAP GUI SAP GUI
Browser
Presentation
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
Database
Software Architecture Definition for On-demand Cloud Provisioning
6. Example: SAP ERP System
SAP GUI
SAP GUI SAP GUI
Browser
Presentation
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
Database
Software Architecture Definition for On-demand Cloud Provisioning
7. Example: SAP ERP System
SAP GUI
SAP GUI SAP GUI
Browser
Presentation
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 operation
Software Architecture Definition for On-demand Cloud Provisioning
10. Overview
ď§ Problem overview
ď§ Background: Resources And Service Virtualization Without Barriers
ď§ Approach: Software architecture definition
ď§ Evaluation
Software 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
RE
Software 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 cloud
Software 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 + Security
Software 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
ď§ Evaluation
Software 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 and
Software 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: String
Software 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
endif
Software 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: Partial
Software 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 OVF
Software 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
Bus
Software Architecture Definition for On-demand Cloud Provisioning
24. Overview
ď§ Problem overview
ď§ Background: Resources And Service Virtualization Without Barriers
ď§ Approach: Software architecture definition
ď§ Evaluation
Software 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
resources
Software 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
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)