34
Application Model for Cloud Deployment ADD07 Komal Mangtani, Snr R&D Manager, VMware, Inc.

Application Model for Cloud Deployment

Embed Size (px)

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 description

Citation preview

Page 1: Application Model for Cloud Deployment

Application Model for Cloud Deployment

ADD07

Komal Mangtani, Snr R&D Manager, VMware, Inc.

Page 2: Application Model for Cloud Deployment

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.”

Page 3: Application Model for Cloud Deployment

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

Page 4: Application Model for Cloud Deployment

4

Origins of Cloud Deployments

develop test release install config operate

develop test operate

Page 5: Application Model for Cloud Deployment

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

Page 6: Application Model for Cloud Deployment

6

Various Cloud Environments

IaaS

Utility

Infrastructure modelwith services

Hosted infrastructure –physical and virtual machines

PaaS Application stacks + languages + frameworks

Private Public

Page 7: Application Model for Cloud Deployment

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

Page 8: Application Model for Cloud Deployment

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

Page 9: Application Model for Cloud Deployment

9

Efforts within VMware

Page 10: Application Model for Cloud Deployment

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

Page 11: Application Model for Cloud Deployment

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

Page 12: Application Model for Cloud Deployment

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

Page 13: Application Model for Cloud Deployment

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

Page 14: Application Model for Cloud Deployment

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

Page 15: Application Model for Cloud Deployment

15

Modeling ApplicationStep 1:

Define components (parts) of your application

Page 16: Application Model for Cloud Deployment

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

Page 17: Application Model for Cloud Deployment

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

Page 18: Application Model for Cloud Deployment
Page 19: Application Model for Cloud Deployment

19

Modeling ApplicationStep 2:

Wire the components to formapplication topology

Page 20: Application Model for Cloud Deployment

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

Page 21: Application Model for Cloud Deployment

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

Page 22: Application Model for Cloud Deployment
Page 23: Application Model for Cloud Deployment

23

Step 3:Binding application profile to the

deployment platform

Page 24: Application Model for Cloud Deployment

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

Page 25: Application Model for Cloud Deployment
Page 26: Application Model for Cloud Deployment

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

Page 27: Application Model for Cloud Deployment

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

Page 28: Application Model for Cloud Deployment

28

Final Step :Review the Auto-generated Plan

and Deploy

Page 29: Application Model for Cloud Deployment
Page 30: Application Model for Cloud Deployment

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

Page 31: Application Model for Cloud Deployment

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

Page 32: Application Model for Cloud Deployment

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

Page 33: Application Model for Cloud Deployment

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]

Page 34: Application Model for Cloud Deployment