application model for cloud deployment
DESCRIPTION
Separate application definition from deployment platform Enable late binding of model to the platform Developers should be able to model application topology Including internal and external dependencies for their app Infrastructure administrators can have control over final deployment Ensure IT policies are adhered to Should be able to see deployment plan and add additional activies Carry information about various phases of an application lifecycle App model travels with the application Deployment time changes allowed Policies to enforce during runtime Impact of updates and rollback of a s/w component on the application Correlate monitoring information to parts of application Leverage OVF standard for vm/vApp description Relies on OVF for virtual machine descriptionTRANSCRIPT
Application Model for Cloud Deployment
ADD07
Komal Mangtani, Snr R&D Manager, VMware, Inc.
2
Disclaimer
This session may contain product features that are currently under development.
This session/overview of the new technology represents no commitment from VMware to deliver these features in any generally available product.
Features are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind.
Technical feasibility and market demand will affect final delivery.
Pricing and packaging for any new technologies or features discussed or presented have not been determined.
“THESE FEATURES ARE REPRESENTATIVE OF FEATURE AREAS UNDER DEVELOPMENT. FEATURE COMMITMENTS ARE SUBJECT TO CHANGE, AND MUST NOT BE INCLUDED IN CONTRACTS, PURCHASE ORDERS,OR SALES AGREEMENTS OF ANY KIND. TECHNICAL FEASIBILITY AND MARKET DEMAND WILL AFFECT FINAL.”
3
Agenda
Origins of Cloud deployments – the essence of *aaS
Types of Cloud environments
Cloud adoption trends
Problems to solve
Efforts within VMware
Details of app model
Summary
4
Origins of Cloud Deployments
develop test release install config operate
develop test operate
5
The Essence of “aaS” (as a Service)
It just plain works
• Someone else is responsible for keeping it running
• Someone else is responsible for keeping it up to date
• Someone else is responsible for capex and capacity planning
Agility
• Daily, weekly, monthly release cycle (as appropriate)
• Continuous improvement: performance, features, languages and frameworks, services, etc
• Quickly react to trends: competitors, business plan options, distribution options
Visibility
• Aggregate analytics and metrics
• Page views per day, hour, by region, organization, partner
• Language and framework usage by region, organization, partner
6
Various Cloud Environments
IaaS
Utility
Infrastructure modelwith services
Hosted infrastructure –physical and virtual machines
PaaS Application stacks + languages + frameworks
Private Public
7
Cloud Adoption Trends We Are Observing
Large enterprises starting their journey to pure Clouddeployments with
• Virtualization first and then
• Private clouds
Public Cloud in use for development and testing
Switch to private Cloud for production deployments
Developers getting involved in defining the application deployment environment along with infrastructure teams
All you can see in Cloud is your app!
Application level management becoming more critical
8
Problems to Solve
Ease deployment in dev, test, production zones across Clouds
Enable collaborative hand-off of applications between applications group and infrastructure group
• Preserve the knowledge built during deployment to create optimalruntime env for apps
Automate generation of run book steps
• Most automation tools are useful AFTER run book steps are determined by user
Help derive hardware requirements from application topology
Application-centric management
• Application level operations
• Backup, DRS, start/stop operations at app level
• View chargeback information at app level
• Mapping of applications to VMs and hosts underneath
9
Efforts within VMware
10
What Are We Up To?
Vision
• Collaborative portal for discovering/modeling, deploying, configuring and monitoring enterprise applications
Target users
• Enterprise customers currently using vCenter and vCloud
• Application groups in IT organization
Targeted applications
• Clustered, complex app deployments
• N-tier web applications
• Various app stacks : JEE, RoR, .Net
Let the cloud richness shine through
• Support deployments in various Clouds by leveraging the richness of eachCloud environment
11
Applications Management in Various Clouds
VMVM VMVM
ESX hosts
vCenter vCenter
vCloud
(off-premise)
Applications Management
Chargeback
DRS
app aware
app-aware DRS
App specific Solutions
Provisioning monitoringdiscoveryconfiguration management
VMVM VMVM
appserver cluster
database cluster
VMVM web server
Amazon
load balancer
Cloud Drivers
Backup
app-aware Backup
external plugins
12
Key Link: Application Model
Create new apps OR Discover apps• Component based model• Simple relationships :
• Containment• Association
• Map configuration properties
• Model network• Model node and node
arrays• Model policies• Cloud agnostic
Design app model
Server Applications• Deploy and/or• Package as appliance• Configure apps• In-place updates• Rolling upgrades
Deployment Platforms• vCenter• vCloud• amazon cloud
Provision app model
Initial Enforcement• Placement rules• Cpu/mem reservations• Security requirements• Configuration mappings
Runtime Enforcement• Runtime monitoring• Raise policy violations• Analyze drift from original
model
Enforce app model
application model
13
Goals for our Application Model
Separate application definition from deployment platform• Enable late binding of model to the platform
Developers should be able to model application topology• Including internal and external dependencies for their app
Infrastructure administrators can have control over final deployment• Ensure IT policies are adhered to
• Should be able to see deployment plan and add additional activies
Carry information about various phases of an application lifecycle• App model travels with the application
• Deployment time changes allowed
• Policies to enforce during runtime
• Impact of updates and rollback of a s/w component on the application
• Correlate monitoring information to parts of application
Leverage OVF standard for vm/vApp description
• Relies on OVF for virtual machine description
14
Our Application Model
Component based
Consists of • Application profile aka app blueprint • Deployment profile aka platform bindings
Application composition• Application components eg: db component, tc component, war component• Relationships between components• Configuration properties for each component• Mapping of app components to nodes• Bindings to external dependencies
Application assembly• Derives the process of deploying the application• Allows adding maintenance operations at certain points
Operational policies• Affinity and anti-affinity rules • Resource allocation policies
15
Modeling ApplicationStep 1:
Define components (parts) of your application
16
Step 1: Component Definition
Component models a specific part of your application
• Typical 3-tier JEE contains
• Database component, appserver component, war component, monitoring agent component
• Component definition contains
• Content
• Install/config scripts
• Properties it exposes
• Dependencies to other components
17
Step 1: Component Definition for a War – Webapp Component
ComponentDef: xplanner
Type: WEBAPP
Properties: Property: jdbc_ip Type: ip Editable: deploytime Property: jdbc_port Type: port Editable: deploytime Property: war_file Type: content Editable: buildtime
Relations: Relation: target CompType: J2EEServer
RelationType: target Relation: database CompType: DB RelationType: remote Phases: Phase: install
Script:install_xplanner Type:shell Mode:reference Parameter: war_file Content: catalog://scripts/install_xplanner.sh Phase: configure Script:config_xplanner Type:shell Mode:inline Parameter: jdbc_ip Parameter: jdbc_port Content: sed -ie "s/hibernate.connection.url=.*/hibernate.connection.url=jdbc:mysql:$jdbc_ip:$jdbc_port/xplanner/g" WEB-INF/classes/xplanner-custom.properties service tomcat5 restart
19
Modeling ApplicationStep 2:
Wire the components to formapplication topology
20
Step 2: Define Topology
Wire the defined components together in application profile a.k.a application blueprint
Provide application level policies
Application profile is agnostic of deployment platform
Application profile/blueprint = application topology + policies
Primitives• Node
• Node array
• Network
• S/w components
21
Step 2 : Application Profile a.k.a Application Blueprint
LoadBalancer
CentOS
loadbalancer
J2EE WebApplication
CentOS
tc-server
XplannerWebApp
DataBase
CentOS
MySQL
Component: XplannerWebApp Ref: catalog://xplanner.xml Version: 2.0 Properties: jdbc_ip: DataBase.MySQL.ip jdbc_port: DataBase.MySQL.port Relations: database: DataBase.MySQL
AppProfile: j2eeprofile
Node: LoadBalancer..Node: DataBase Ref: catalog://node.xml Components: Component: CentOS Ref: catalog://centos.xml Version: 1.0 Component: MySQL Ref: catalog://mysql.xml Version: 1.0 Properties: port: 5120 user: mysqladmin password: admin
23
Step 3:Binding application profile to the
deployment platform
24
Step 3: Binding the App Blueprint to Deployment Platform
One app profile / blueprint can have multiple deployment profiles
Deployment profile contains
• Reference to application profile
• Placement information, platform bindings
• Node map
• Network map
• Application settings
26
Step 3: Deployment Profile
DeploymentProfile: ApplicationProfile: catalog://J2EEWebApp.xml PlacementZone: catalog://QAPlacementZone.xml NodeMap: catalog://QANodeMap.xml NetworkMap: catalog://QANetworkMap.xml ApplicationState: catalog://QADeployment.xml
ApplicationtState: QADeployment Component: J2EE-Webapp.tc-server port: 8080 Component: J2EE-Webapp.XplannerWebApp war_file: catalog://Debugmode.Xplanner.war Component: DataBase.mysql username: xplanner password: xplanner
PlacementZone: QAZone ProvisioningPlatform: catalog://QAVC.xml ResourcePool: QAResourcepool Storage: storage1
NodeMap: QANodeMap Node: J2EE-Webapp VM: basevm Action: linkedClone Node: DataBase VM: basevm Action: linkedClone
NetworkMap: QANetworkMap Network: LB2EXT MappedTo: Network2 Network: LB2WEB MappedTo: Network1 Network: WEB2DB MappedTo: Network1
27
Let Platform Do Its Thing
Application Profile Deployment ProfileProvisioning Platform (VC,
vCloud)
Node&
NodeArrayNodeMap
VM, Cloned VMs,
instantiated vApp
Network NetworkMapvSwitch, PortGroup,
OrgNetwork
CPU, Memory, Storage
Placement ZoneResource Pool, Org
vDC
28
Final Step :Review the Auto-generated Plan
and Deploy
30
Connections with VMware Studio
Direct app deployment
VMware StudioApplication
packages
Application Model :
App topology+
App policies+
platform bindings
OVF package
FE
OS
App
OS
DB
OS
FE
OS
Index
OS
LB
OS
App
OS
App
OS
App
OS DB
OS
FE
OS
app
OS
DB
OS
vApp
vApp
31
Leveraging Existing Technologies
vApps: executable for VMware platforms
OVF and OVA : package for transport• Existing OVF packages can be part of application topology
• OVF packages will be created for export/import of apps from one platform to another
Application model : layer on top of OVF
32
Summary
VMware is working on app model
Eases deployment of same application on various Clouds
App model provides app topology as well as app deployment plan
App model travels with the application
Lifecycle management solutions can operate on this model
33
Questions?
vApp and VMware Studio blogs http://blogs.vmware.com/vApp
Download VMware Studio @ www.vmware.com/go/studio
For more information about app model, VMware Studio, vApps, email at [email protected]