Application Model for Cloud Deployment


Published on

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

Published in: Business, Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Application Model for Cloud Deployment

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