+ All Categories
Home > Technology > 2013 05-openstack-israel-heat

2013 05-openstack-israel-heat

Date post: 15-Jan-2015
Category:
Upload: alexheneveld
View: 1,043 times
Download: 0 times
Share this document with a friend
Description:
slides on Heat and influences presented at OpenStack Israel May 2013
Popular Tags:
69
What’s Up Next for Heat? Alex Heneveld / @ahtweetin OpenStack Israel 27 May 2013
Transcript
Page 1: 2013 05-openstack-israel-heat

What’s Up Next for Heat?

Alex Heneveld / @ahtweetinOpenStack Israel27 May 2013

Page 2: 2013 05-openstack-israel-heat

CloudIt’s not just about VM’s

Page 3: 2013 05-openstack-israel-heat

It’s about storage, networking, maas, ...

It’s not just about VM’s

Cloud

Page 4: 2013 05-openstack-israel-heat

Ultimately it’s about applications

CloudIt’s not just about VM’s

Page 5: 2013 05-openstack-israel-heat

It makes the clouds rise

Page 6: 2013 05-openstack-israel-heat

Declarative — OpenStack Heat (Grizzly) and AWS CloudFormationProcedural — Apache Whirr, Gigaspaces Cloudify, Cloudsoft BrooklynOpenStack Summit — Red Hat, RAX, IBM, HP, Cloudsoft, OASIS TOSCA and CAMPDSLs in Progress — CAMP PDP and OpenStack Heat (Havana)

Approaches to Applications in the Cloud

Page 7: 2013 05-openstack-israel-heat

AWS CloudFormation

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "WordPress is web software …", "Parameters" : { "KeyName" : { "Description" : "Name of an existing EC2 KeyPair for SSH access", "Type" : "String" }, ... }, "Mappings" : { "AWSInstanceType2Arch" : { "m1.small" : { "Arch" : "64" }, "m1.large" : { "Arch" : "64" }, ... }, "AWSRegionArch2AMI" : { "us-east-1" : { "32" : "ami-31814f58", "64" : "ami-1b814f72" }, ... } }, "Resources" : { "WebServer": { "Type": "AWS::EC2::Instance", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : { "packages" : { "yum" : { "gcc-c++" : [], "make" : [],

...

Page 8: 2013 05-openstack-israel-heat

{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "WordPress is web software …", "Parameters" : { "KeyName" : { "Description" : "Name of an existing EC2 KeyPair for SSH access", "Type" : "String" }, ... }, "Mappings" : { "AWSInstanceType2Arch" : { "m1.small" : { "Arch" : "64" }, "m1.large" : { "Arch" : "64" }, ... }, "AWSRegionArch2AMI" : { "us-east-1" : { "32" : "ami-31814f58", "64" : "ami-1b814f72" }, ... } }, "Resources" : { "WebServer": { "Type": "AWS::EC2::Instance", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : { "packages" : { "yum" : { "gcc-c++" : [], "make" : [],

...

"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"

AWS CloudFormation

Page 9: 2013 05-openstack-israel-heat

"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"

Parameters

Mappings(config metadata)

WaitConditions &WaitHandles

(orchestration)

Outputs

Functions

AWS CloudFormation

Page 10: 2013 05-openstack-israel-heat

"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"

AWS CloudFormation

Page 11: 2013 05-openstack-israel-heat

"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"

AWS CloudFormation

Page 12: 2013 05-openstack-israel-heat

"Type": "AWS::AutoScaling::AutoScalingGroup"

"Type": "AWS::EC2::EIP"

"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"

"Type": "AWS::SQS::Queue"

"Type": "AWS::CloudFormation::Stack"

"Type": "AWS::S3::Bucket"

AWS CloudFormation

Page 13: 2013 05-openstack-israel-heat

"Type": "AWS::AutoScaling::AutoScalingGroup"

"Type": "AWS::EC2::EIP"

"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"

"Type": "AWS::SQS::Queue"

"Type": "AWS::CloudFormation::Stack"

"Type": "AWS::S3::Bucket"

AWS CloudFormation

Composition!

Page 14: 2013 05-openstack-israel-heat

— Limited to AWS cloud

— Limited to AWS concepts

— Cumbersome to write

— Limited dependency injection

Nice, but:

AWS CloudFormation

Page 15: 2013 05-openstack-israel-heat

— CloudFormation clone

— Targetting OpenStack resources and AWS compatibility

— Adds YAML support (comments and easier)

— Multi-cloud support using Apache Deltacloud

OpenStack Heat

Page 16: 2013 05-openstack-israel-heat

(AWS CloudFormation){ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "WordPress is web software …", "Parameters" : { "KeyName" : { "Description" : "Name of an existing EC2 KeyPair for SSH access", "Type" : "String" }, ... }, "Mappings" : { "AWSInstanceType2Arch" : { "m1.small" : { "Arch" : "64" }, "m1.large" : { "Arch" : "64" }, ... }, "AWSRegionArch2AMI" : { "us-east-1" : { "32" : "ami-31814f58", "64" : "ami-1b814f72" }, ... } }, "Resources" : { "WebServer": { "Type": "AWS::EC2::Instance", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : { "packages" : { "yum" : { "gcc-c++" : [], "make" : [],

...

OpenStack Heat

Page 17: 2013 05-openstack-israel-heat

OpenStack Heat

HeatTemplateFormatVersion: 2012-12-12 Description: WordPress is web software ... Parameters:   KeyName: Description: Name of an existing EC2 KeyPair for SSH access Type: String ... Mappings:   AWSInstanceType2Arch:     m1.small: {Arch: '32'}     m1.large: {Arch: '64'} ...   DistroArch2AMI:     F18: {'32': F18-i386-cfntools, '64': F18-x86_64-cfntools}, ... Resources:   WebServer:     Type: AWS::EC2::Instance     Metadata:       AWS::CloudFormation::Init:         config:           packages:             yum:               gcc-c++: []               make: []

...

Page 18: 2013 05-openstack-israel-heat

— CloudFormation clone

— Targetting OpenStack resources and AWS compatibility

— Adds YAML support (comments and easier)

— Multi-cloud support using Apache Deltacloud

OpenStack Heat

Available NOW in Grizzly!

Page 19: 2013 05-openstack-israel-heat

OpenStack Heat

— Still limited to selected clouds

— Still limited in concepts

— Only slightly less cumbersome to write

— Very limited dependency injection

But...

Page 20: 2013 05-openstack-israel-heat

Procedural Approach

10 INPUT "What app do you like? ", A$20 INPUT "What cloud do you like? ", C$30 GOSUB 10040 END

100 REM TODO deploy C$ to A$110 RETURN

Page 21: 2013 05-openstack-israel-heat

Procedural Approach

— Millions of lines of bash, chef, python, ruby, java, ... or ...

— Apache Whirr

— Gigaspaces Cloudify

— Brooklyn and Cloudsoft AMP

Page 22: 2013 05-openstack-israel-heat

Apache Whirr

— Apache top level project

— Deploy multi-node applications— Hadoop, Hama, Mahout, web,

Cassandra & many more

— Define topologies declaratively— Add new roles, configuration,

constraints and wiring procedurally

provision

install

configure

manage

Page 23: 2013 05-openstack-israel-heat

Apache Whirr

— Apache top level project

— Deploy multi-node applications— Hadoop, Hama, Mahout, web,

Cassandra & many more

— Define topologies declaratively— Add new roles, configuration,

constraints and wiring procedurally

$ whirr launch-cluster \ --cluster-name=hbase \ --instance-templates='1 hbase-master,6 hbase-regionserver'

Page 24: 2013 05-openstack-israel-heat

Apache Whirr

— Apache top level project

— Deploy multi-node applications— Hadoop, Hama, Mahout, web,

Cassandra & many more

— Define topologies declaratively— Add new roles, configuration,

constraints and wiring procedurally

spec = new ClusterSpec();spec.setProvider("cloudservers-uk");spec.setIdentity(apikey);spec.setCredential(secret);spec.setClusterName("hbase");spec.setInstanceTemplates(ImmutableList.of( new InstanceTemplate(1, "hbase-master"), new InstanceTemplate(6, "hbase-regionserver")));

cluster = new ClusterController().launchCluster(spec);

Page 25: 2013 05-openstack-israel-heat

— Limited parameterisation

— Defining new roles requires coding

— Strict phases limit applicability

But...

— Composable to one dimension

— Portable locations support

— Pluggable with bash, Chef, Puppet, and more

Apache Whirr

Page 26: 2013 05-openstack-israel-heat

Gigaspaces Cloudify

— Apache-licensed Open PaaS Stack— Deployment and Management

— Build applications declaratively— Define services procedurally— Configure auto-scaling declaratively

Page 27: 2013 05-openstack-israel-heat

Gigaspaces Cloudify

— Apache-licensed Open PaaS Stack— Deployment and Management

— Build applications declaratively— Define services procedurally— Configure auto-scaling declaratively

application {  name="petclinic"  service {     name = "mysql"   }   service {     name = "tomcat"     dependsOn = ["mysql"]   } }

Page 28: 2013 05-openstack-israel-heat

Gigaspaces Cloudify

— Apache-licensed Open PaaS Stack— Deployment and Management

— Build applications declaratively— Define services procedurally— Configure auto-scaling declaratively

service {  name "mysql"  icon "mysql.jpg"  type "DATABASE"

  lifecycle{     install "mysql_install.groovy"     start "mysql_start.groovy"     ...  }}

Page 29: 2013 05-openstack-israel-heat

Gigaspaces Cloudify

— Apache-licensed Open PaaS Stack— Deployment and Management

— Build applications declaratively— Define services procedurally— Configure auto-scaling declaratively

def installLinuxMysql(config,context,builder,currVendor,installScript,myCnfObject) {" builder.sequential {" " chmod(dir:"${context.serviceDirectory}", perm:"+x", includes:"*.sh")" " exec(executable: "${context.serviceDirectory}/${installScript}",failonerror: "true")}...switch (currVendor) { case ["Ubuntu", "Debian", "Mint"]: context.attributes.thisInstance["binFolder"]="/usr/bin" installLinuxMysql(config,context,builder,currVendor,"installOnUbuntu.sh",myCnfObject) ...

Page 30: 2013 05-openstack-israel-heat

Gigaspaces Cloudify

— Apache-licensed Open PaaS Stack— Deployment and Management

— Build applications declaratively— Define services procedurally— Configure auto-scaling declaratively

if sudo grep -q -E '[^!]requiretty' /etc/sudoers; then echo "Defaults:`whoami` !requiretty" | sudo tee /etc/sudoers.d/`whoami` >/dev/null    sudo chmod 0440 /etc/sudoers.d/`whoami`fisudo apt-get -y -q update || error_exit $? "Failed on: sudo apt-get -y update"killMySqlProcesssudo apt-get -y -q purge mysql-client* mysql-server* mysql-common*sudo rm -rf /etc/mysql || error_exit $? "Failed on: sudo rm -rf /etc/mysql"sudo DEBIAN_FRONTEND='noninteractive' apt-get -o Dpkg::Options::='--force-confnew' -q -y \ install mysql-server-core mysql-server mysql-client mysql-common || error_exit $? "Failed ... ”

Page 31: 2013 05-openstack-israel-heat

Gigaspaces Cloudify

— Apache-licensed Open PaaS Stack— Deployment and Management

— Build applications declaratively— Define services procedurally— Configure auto-scaling declaratively

scalingRule {   serviceStatistics {     metric "Requests per second"     movingTimeRangeInSeconds 20   }

  highThreshold {     value 100     instancesIncrease 1   } }

Page 32: 2013 05-openstack-israel-heat

— Defining new services requires coding

But...

— Composable to one dimension

— Parameterisable recipes

— Portable locations support

— Pluggable with bash, Chef, Puppet, and more

Gigaspaces Cloudify

Page 33: 2013 05-openstack-israel-heat

Brooklyn & Cloudsoft AMP

— Brooklyn = Apache-licensed open-source

— AMP = Enterprise + Support

— Deployment and Management of Anything

— Hierarchical Autonomic Policies

— Define blueprints procedurally

Page 34: 2013 05-openstack-israel-heat

Brooklyn

Contention ManagementCustom PaaSBig Data

Page 35: 2013 05-openstack-israel-heat

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { public void init() { MySqlNode mysql = addChild(EntitySpecs.spec(MySqlNode.class) .configure("creationScriptUrl", DB_SETUP_SQL_URL)); ControlledDynamicWebAppCluster web = addChild(EntitySpecs.spec( ControlledDynamicWebAppCluster.class) .configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) .configure(JavaWebAppService.ROOT_WAR, WAR_PATH) .configure(javaSysProp("brooklyn.example.db.url"), formatString("jdbc:%s%s?user=%s\\&password=%s", attributeWhenReady(mysql, MySqlNode.MYSQL_URL), DB_TABLE, DB_USERNAME, DB_PASSWORD)). .configure(JcloudsLocationConfig.MIN_RAM, 2048) .configure(JcloudsLocationConfig.TEMPLATE_SPEC, "osFamily=centos,os64Bit=true") ); }

}

Brooklyn: Nested Elastic Blueprints

Page 36: 2013 05-openstack-israel-heat

public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { public void init() { MySqlNode mysql = ... ControlledDynamicWebAppCluster web = ... web.addEnricher(HttpLatencyDetector.builder(). url(ROOT_URL). rollup(10, SECONDS).build());

web.getCluster().addPolicy(AutoScalerPolicy.builder(). metric(REQUESTS_PER_SECOND_IN_WINDOW_PER_NODE). metricRange(10, 100).sizeRange(2, 5).build());

addEnricher(SensorPropagatingEnricher.newInstanceListeningTo(web, ROOT_URL, REQUESTS_PER_SECOND_IN_WINDOW, REQUEST_LATENCY_IN_SECONDS_IN_WINDOW)); }

}

Brooklyn: Policies, Enrichers and KPI’s

Page 37: 2013 05-openstack-israel-heat

Brooklyn

— Defining blueprints requires coding

But...

— Composable and substitutable

— Parameterisable blueprints

— Portable and powerful locations support

— Pluggable with VM images, Heat, Chef, more

Page 38: 2013 05-openstack-israel-heat

Applications

— Components (IaaS-resources)

— DeclarativeInfrastructure

— Procedural

— Extensible (new resources)

— Portable (hybrid, metal)

— Management

— Composable (stacks)

Page 39: 2013 05-openstack-israel-heat

Heat in Grizzly

Man

agem

ent

Com

posa

ble

Decl

arat

ive

Com

pone

nts

Exte

nsib

le

Port

able

thanks largely to Red Hat

Page 40: 2013 05-openstack-israel-heat

Portland Design Summit — Heat

Man

agem

ent

Com

posa

ble

Decl

arat

ive

Port

able

Com

pone

nts

Exte

nsib

le

Page 41: 2013 05-openstack-israel-heat

Portland Design Summit — Heat

Man

agem

ent

Com

posa

ble

Decl

arat

ive

Port

able

Com

pone

nts

Exte

nsib

lelots of new interest and ideas

Page 42: 2013 05-openstack-israel-heat

Portland Design Summit — Heat

Com

posa

ble

Decl

arat

ive

Com

pone

nts

Man

agem

ent

Port

able

Ease

-of-

Use

Exte

nsib

leingredients from Brooklyn, Whirr, OoO and others

Page 43: 2013 05-openstack-israel-heat

Portland Design Summit — Heat

Com

posa

ble

Decl

arat

ive

Com

pone

nts

Man

agem

ent

Port

able

Exte

nsib

le

Auto

-wiri

nga special ingredient from Rackspace

Ease

-of-

Use

Page 44: 2013 05-openstack-israel-heat

Portland Design Summit — Heat

Com

posa

ble

Decl

arat

ive

Com

pone

nts

Man

agem

ent

Exte

nsib

le

Auto

-wiri

ng

Rela

tions

hips

Ease

-of-

Use

Port

able

a special ingredient from IBM

Page 45: 2013 05-openstack-israel-heat

Man

agem

ent

Com

posa

ble

Decl

arat

ive

Com

pone

nts

Auto

-wiri

ng

Rela

tions

hips

Exte

nsib

le

Ease

-of-

Use

Port

able

Portland Design Summit — Heat

Page 46: 2013 05-openstack-israel-heat

Heat in Havana

Man

agem

ent

Com

posa

ble

Decl

arat

ive

Com

pone

nts

Auto

-wiri

ng

Rela

tions

hips

Exte

nsib

le

Ease

-of-

Use

Port

able

ConcurrentDistributedResilientFunctions / DI

Page 47: 2013 05-openstack-israel-heat

Heat in Havana

Man

agem

ent

Com

posa

ble

Decl

arat

ive

Com

pone

nts

Auto

-wiri

ng

Rela

tions

hips

Exte

nsib

le

Ease

-of-

Use

Port

able

ConcurrentDistributedResilientFunctions / DIStandards ?

Page 48: 2013 05-openstack-israel-heat

OasisTOSCA

http://www.oasis-open.org/committees/tosca/

Topology and Orchestration Specification for Cloud Applications

Page 49: 2013 05-openstack-israel-heat

Modeling Topologies with TOSCA Service  Topologies  are  described  using  the  TOSCA  “Meta-model”:

Artifacts Describe Installables and Executables required to

instantiate and manage a service. Currently, they include:

Implementation Artifacts: – Executables or Plans that implement  a  Node’s  

or  Relationship’s  Operations (e.g. a Bash script) Deployment Artifacts:

– Installables of the components (e.g. a TAR file)

A  service’s  Topology Model is included in a TOSCA Service Template which is packaged and shared, along with all dependent artifacts, as a TOSCA Cloud Service Archive (CSAR)

Service Templates Group the nodes and relationships that make up

a  service’s  topology – Allowing modeling of sub-topologies

Service Templates “look  like  nodes” enabling: Composition of applications from one or more

service templates Substitution of abstract Node types with

available service templates of the same type

Nodes Represent Components of an application or service

and their Properties. Example nodes include: – Infrastructure: Compute, Network, Storage, etc. – Platform: OS, VM, DB, Web Server, etc. – Granular: functional Libraries, Modules, etc.

Include Operations which are the management functions for the node – e.g. deploy(), start(), stop(), connect(), etc.

Export their dependencies on other nodes as Requirement and Capabilities

Relationships Represent the logical Relationships between

nodes – e.g.  “hostedOn”,  “connectsTo”,  etc.

Describes the valid Source and Target nodes they are designed to couple – e.g. source  “web application”  node  is  designed  

to  “connectTo”  a  target  “database”  node Have their own Properties and Constraints

Slide origin: IBM

TOSCA: Modelling Topologies

Page 50: 2013 05-openstack-israel-heat

<Definitions id="PayrollDefinitions" targetNamespace="http://www.example.com/ste" xmlns:pay="http://www.example.com/ste/Types"> <Import namespace="http://www.example.com/ste/Types" location="http://.../PayrollTypes.tosca" importType=" http://docs.oasis-open.org/tosca/ns/2011/12"/> <ServiceTemplate id="Payroll" name="Payroll Service Template"> <TopologyTemplate ID="PayrollTemplate"> <NodeTemplate id="Payroll Application" type="pay:ApplicationNodeType"> <DeploymentArtifacts> <DeploymentArtifact name="PayrollEAR" type="http://..../CSARref"> EARs/Payroll.ear </DeploymentArtifact> </DeploymentArtifacts> </NodeTemplate> <NodeTemplate id="Application Server" type="pay:ApplicationServerNodeType"> <DeploymentArtifacts> <DeploymentArtifact name="ApplicationServerImage" type="http://.../AMIref"> ami-edf2cf99 </DeploymentArtifact> </DeploymentArtifacts> </NodeTemplate> <RelationshipTemplate id="deployed_on" type="pay:deployed_on"> <SourceElement ref="Payroll Application"/> <TargetElement ref="Application Server"/> </RelationshipTemplate> </TopologyTemplate> </ServiceTemplate></Definitions>

TOSCA: Sample Definition

Page 51: 2013 05-openstack-israel-heat

— Fails the “ease-of-use” test

— Does not standardise an API

But...

— Powerful and broad modelling coverage

— Workflow, locations, substitution

— Relatively mature

TOSCA

Page 52: 2013 05-openstack-israel-heat

OasisCAMP

www.cloudspecs.org

Cloud Application Management Platform

http://www.oasis-open.org/committees/camp/

Page 53: 2013 05-openstack-israel-heat

CAMP: Objectives and Non-Objectives

— Software

— an Orchestration Spec

— a Modelling System

But CAMP is NOT

— a REST API

— for Deployment and Management

— of Applications

It provides a flexible way to use many platforms.Interoperability.

Page 54: 2013 05-openstack-israel-heat

CAMP: Key Concepts

Clients

REST

Platform

PlatformComponent

Template

RequirementType

PlatformComponent

TemplatePlatformComponent

Template

RequirementType

App ComponentType

App ComponentType

Page 55: 2013 05-openstack-israel-heat

Clients Platform

PlatformComponent

Template

RequirementType

PlatformComponent

TemplatePlatformComponent

Template

RequirementType

App ComponentType

App ComponentType

PDP = Platform Deployment Plan

(blueprint)

— Deployment PlanCAMP: Key Concepts

DSL & REST

Page 56: 2013 05-openstack-israel-heat

App ComponentType

PDP = Platform Deployment Plan

(blueprint)

CAMP: Key Concepts

Clients

REST

Platform

PlatformComponent

Template

RequirementType

PlatformComponent

TemplatePlatformComponent

Template

RequirementType

App ComponentType

— Creating Templates

POST

Page 57: 2013 05-openstack-israel-heat

App ComponentTemplate

Clients

REST

Platform

PlatformComponent

Template

RequirementType

PlatformComponent

TemplatePlatformComponent

Template

RequirementType

App ComponentType

App ComponentType

— ResolutionCAMP: Key Concepts

AssemblyTemplate(blueprint)

PDP = Platform Deployment Plan

(blueprint)POST

Page 58: 2013 05-openstack-israel-heat

CAMP: Key Concepts

Clients

REST

Platform

PlatformComponent

Template

RequirementType

PlatformComponent

TemplatePlatformComponent

Template

RequirementType

App ComponentType

App ComponentType

App ComponentTemplate

RequirementType

PlatformComponent

Template

RequirementType

App ComponentType

— Resolution

AssemblyTemplate(blueprint)

POST

Page 59: 2013 05-openstack-israel-heat

AssemblyTemplate(blueprint)

CAMP: Key Concepts

Clients

REST

Platform

PlatformComponent

Template

RequirementType

PlatformComponent

TemplatePlatformComponent

Template

RequirementType

App ComponentType

App ComponentType

App ComponentTemplate

— Resolution

200

AssemblyTemplate

POST

Page 60: 2013 05-openstack-israel-heat

AssemblyTemplate(blueprint)

CAMP: Key Concepts

Clients

REST

Platform

PlatformComponent

Template

RequirementType

PlatformComponent

TemplatePlatformComponent

Template

RequirementType

App ComponentType

App ComponentType

App ComponentTemplate

— Deployment

Page 61: 2013 05-openstack-israel-heat

Assembly(blueprint) Platform

Component

PlatformComponent

App Component

AssemblyTemplate(blueprint)

CAMP: Key Concepts

Clients

REST

Platform

PlatformComponent

Template

RequirementType

RequirementType

App ComponentType

App ComponentType

App ComponentTemplate

— Deployment

POST

PlatformComponent

Template

PlatformComponent

Template

Page 62: 2013 05-openstack-israel-heat

Assembly(blueprint) Platform

Component

PlatformComponent

App Component

CAMP: Key Concepts

Clients

REST

Platform

— Deployment

Assembly(blueprint) Platform

Component

PlatformComponent

App Component

AssemblyTemplate(blueprint)

PlatformComponent

Template

App ComponentTemplate

PlatformComponent

Template

POST

200

Assembly

Page 63: 2013 05-openstack-israel-heat

CAMP

— depends on orchestrations supporting this

— wants standardised requirement and component types

— still needs a nice DSL

But...

— all very general

— designed to map on to a wide range of orchestrationsPaaS, TOSCA, Brooklyn, Heat

— OSS code in progressgithub.com/brooklyncentral/camp-server

Page 64: 2013 05-openstack-israel-heat

CAMP: PDP/Blueprint DSL (work in progress)

Parameters

Components

Requirements

Functionsparameters & sensors

Outputs

*

*

Page 65: 2013 05-openstack-israel-heat

CAMP: PDP/Blueprint DSL (work in progress)

Parameters

Functionsparameters & sensors

Outputs

*

*

components: my_app: type: WAR content: hello.war requirements: hosted_on: javaVersion: [1.7,)

Page 66: 2013 05-openstack-israel-heat

Mappings(config metadata)

WaitConditions &WaitHandles

(orchestration)

Parameters

components: my_instance: type: server ram: 2048m requires: connects_to: target: my_database

Heat: New HOT DSL (also work in progress)

Functions

Outputs

HeatOrchestration

Template

Coming inHavana

Page 67: 2013 05-openstack-israel-heat

Heat in Havana

Man

agem

ent

Com

posa

ble

Decl

arat

ive

Com

pone

nts

Auto

-wiri

ng

Rela

tions

hips

Exte

nsib

le

Ease

-of-

Use

Port

able

ConcurrentDistributedResilientFunctions / DI

Page 68: 2013 05-openstack-israel-heat

Wrap-Up

It’s about the apps.Come get involved!

Declarative — OpenStack Heat (Grizzly) and AWS CloudFormationProcedural — Apache Whirr, Gigaspaces Cloudify, Cloudsoft BrooklynOpenStack Summit — Red Hat, RAX, IBM, HP, Cloudsoft, OASIS TOSCA and CAMPDSLs in Progress — CAMP PDP and OpenStack Heat (Havana)

Page 69: 2013 05-openstack-israel-heat

Thank [email protected]

@ahtweetin


Recommended