2013 05-fite-club-working-models-cloud-growing-up
-
Upload
alexheneveld -
Category
Technology
-
view
259 -
download
2
description
Transcript of 2013 05-fite-club-working-models-cloud-growing-up
![Page 1: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/1.jpg)
Working Models ...or how cloud is growing up and thinking about applications
Alex Heneveld / @ahtweetinFite Club, 22 May 2013
![Page 2: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/2.jpg)
Cloud
![Page 3: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/3.jpg)
CloudIt’s not just about VM’s...
![Page 4: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/4.jpg)
It’s about storage, networking, maas, ...
It’s not just about VM’s...
Cloud
![Page 5: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/5.jpg)
It’s not just about VM’s...
Ultimately it’s about applications.
Cloud
![Page 6: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/6.jpg)
Declarative — AWS CloudFormation and OpenStack HeatProcedural — Apache Whirr and Cloudsoft BrooklynOpenStack Summit — Red Hat, RAX, IBM, OASIS TOSCA and CAMPDSLs in Progress — OpenStack Heat and CAMP PDP
Ultimately it’s about applications.
![Page 7: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/7.jpg)
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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/8.jpg)
{ "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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/9.jpg)
"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"
Parameters
Mappings(config metadata)
WaitConditions &WaitHandles
(orchestration)
Outputs
Functions
AWS CloudFormation
![Page 10: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/10.jpg)
"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"
AWS CloudFormation
![Page 11: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/11.jpg)
"Resources" : { "WebServer": { "Type": "AWS::EC2::Instance"
AWS CloudFormation
![Page 12: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/12.jpg)
"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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/13.jpg)
"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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/14.jpg)
— Limited to AWS cloud
— Limited to AWS concepts
— Cumbersome to write
— Limited dependency injection
Nice, but:
AWS CloudFormation
![Page 15: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/15.jpg)
— 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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/16.jpg)
(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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/17.jpg)
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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/18.jpg)
— 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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/19.jpg)
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-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/20.jpg)
Procedural Approach
10 INPUT "What app do you like? ", A$20 INPUT "What cloud do you like? ", C$30 GOSUB 10040 END
100 REM deploy C$ to A$110 RETURN
![Page 21: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/21.jpg)
Apache Whirr
provision
install
configure
manage
— 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
![Page 22: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/22.jpg)
$ whirr launch-cluster \ --cluster-name=hbase \ --instance-templates='1 hbase-master,6 hbase-regionserver'
— Define topologies declaratively
Apache Whirr
![Page 23: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/23.jpg)
— 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);
Apache Whirr
![Page 24: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/24.jpg)
— Limited parameterisation
— Defining new roles requires coding
— Strict phases limit applicability
But...
— Composable to one dimension
— Portable locations support
— Pluggable with Chef, Puppet, and more
Apache Whirr
![Page 25: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/25.jpg)
Brooklyn & Cloudsoft AMP
• Brooklyn = Apache-licensed OSS
• AMP = Enterprise + Support
• Deployment and Management
• Hierarchical Autonomic Policies
![Page 26: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/26.jpg)
Brooklyn
Contention ManagementCustom PaaSBig Data
![Page 27: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/27.jpg)
Region #1
Presentation
GeographicDNS Load
Balancer
Tomcat
Processing (Monterey)
Data (Gemfire)
Tomcat
Tomcat
Region #2
Presentation
LoadBalancer
Tomcat
Processing (Monterey)
Data (Gemfire)
Tomcat
TomcatProvisioning
Monitoring
Management
Brooklyn: Example, Physical Architecture
![Page 28: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/28.jpg)
Data (Gemfire)Processing (Monterey)
Region #1
Presentation
GeographicDNS
LoadBalancer
Tomcat
Processing (Monterey) Data (Gemfire)
Tomcat
Tomcat
Region #2
Presentation
LoadBalancer
Tomcat
Processing (Monterey) Data (Gemfire)
Tomcat
Tomcat
Provisioning Monitoring Management
WebappFabric
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
WebappGeoDnsFabric MontereyFabric
MontereyCluster
MontereyNodes
MontereyNodes
MontereySegments
GemfireFabric
MontereyCluster
GemfireCluster
GemfireClusterGeoscaling
Brooklynand friends
GemfireNodes
GemfireNodes
Brooklyn: Example, Logical Architecture
![Page 29: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/29.jpg)
Processing (Monterey) Data (Gemfire)
Autonomic Hierarchical Management
GeographicDNS
Presentation
LoadBalancer
Tomcat Tomcat
WebappFabric
LoadBalancedWebAppCluster
Cluster Cluster Cluster Cluster
MyApplication
Policy
follow-the-{sun,moon,X}
Policy
resizer
Policy
restart-2x
Policy
Brooklynand friends
WebappGeoDnsFabric MontereyFabric GemfireFabric
Brooklyn
![Page 30: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/30.jpg)
Processing (Monterey) Data (Gemfire)
Typed Blueprintsreplace groups with PaaS tools andhave the same sensors and policies
GeographicDNS
Presentation
WebappFabric
PaaS
Cluster Cluster Service Cluster
MyApplication
Brooklynand friends
WebappGeoDnsFabric MontereyFabric GemfireFabric
Brooklyn
Policy
follow-the-{sun,moon,X}
Policy
resizer
Policy
restart-2x
Policy
![Page 31: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/31.jpg)
Data (Gemfire)
Data (Gemfire)
Processing (Monterey)
Presentation
GeographicDNS
LoadBalancer
Tomcat
Processing (Monterey)
Tomcat
Tomcat
Presentation
LoadBalancer
Tomcat
Processing (Monterey) Data (Gemfire)
Tomcat
Tomcat
Provisioning Monitoring Management
WebappFabric
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
WebappGeoDnsFabric MontereyFabric
MontereyCluster
MontereyNodes
MontereyNodes
MontereySegments
GemfireFabric
MontereyCluster
GemfireCluster
GemfireClusterGeoscaling
GemfireNodes
GemfireNodes fixed IP
&c
Brooklyn: Run in Many Locations
![Page 32: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/32.jpg)
Data (Gemfire)
Data (Gemfire)
Processing (Monterey)
Presentation
GeographicDNS
LoadBalancer
Tomcat
Processing (Monterey)
Tomcat
Tomcat
Presentation
LoadBalancer
Tomcat
Processing (Monterey) Data (Gemfire)
Tomcat
Tomcat
Provisioning Monitoring Management
WebappFabric
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
WebappGeoDnsFabric MontereyFabric
MontereyCluster
MontereyNodes
MontereyNodes
MontereySegments
GemfireFabric
MontereyCluster
GemfireCluster
GemfireClusterGeoscaling
GemfireNodes
GemfireNodes
Policies
Policies
WARfile
code schema
credentials
GeoDNSconfig actor
descriptor
Regions
Brooklyn: finally { Simplify }
![Page 33: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/33.jpg)
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)) ); }}
Brooklyn: Nested Elastic Blueprints
![Page 34: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/34.jpg)
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 35: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/35.jpg)
Brooklyn
— Defining blueprints requires coding
But...
— Easily parameterisable blueprints
— Composable and substitutable
— Portable and powerful locations support
— Pluggable with VM images, Heat, Chef, more
![Page 36: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/36.jpg)
Applications
— Components (IaaS-resources)
— DeclarativeInfrastructure
— Procedural
— Extensible (new resources)
— Composable (stacks)
— Management
— Portable (hybrid, metal)
![Page 37: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/37.jpg)
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 38: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/38.jpg)
Portland Design Summit — Heat
Man
agem
ent
Com
posa
ble
Decl
arat
ive
Port
able
Com
pone
nts
Exte
nsib
le
![Page 39: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/39.jpg)
Portland Design Summit — Heat
Man
agem
ent
Com
posa
ble
Decl
arat
ive
Port
able
Com
pone
nts
Exte
nsib
lelots of new blood (interest and ideas)
![Page 40: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/40.jpg)
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 41: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/41.jpg)
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 42: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/42.jpg)
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 43: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/43.jpg)
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 44: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/44.jpg)
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 45: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/45.jpg)
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 46: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/46.jpg)
OasisTOSCA
http://www.oasis-open.org/committees/tosca/
Topology and Orchestration Specification for Cloud Applications
![Page 47: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/47.jpg)
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 48: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/48.jpg)
<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 49: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/49.jpg)
— Fails the “ease-of-use” test
— Does not standardise an API
But...
— Powerful and broad modelling coverage
— Workflow, locations, substitution
— Relatively mature
TOSCA
![Page 50: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/50.jpg)
OasisCAMP
www.cloudspecs.org
Cloud Application Management Platform
http://www.oasis-open.org/committees/camp/
![Page 51: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/51.jpg)
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 52: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/52.jpg)
CAMP: Key Concepts
Clients
REST
Platform
PlatformComponent
Template
RequirementType
PlatformComponent
TemplatePlatformComponent
Template
RequirementType
App ComponentType
App ComponentType
![Page 53: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/53.jpg)
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 54: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/54.jpg)
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 55: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/55.jpg)
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 56: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/56.jpg)
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 57: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/57.jpg)
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 58: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/58.jpg)
AssemblyTemplate(blueprint)
CAMP: Key Concepts
Clients
REST
Platform
PlatformComponent
Template
RequirementType
PlatformComponent
TemplatePlatformComponent
Template
RequirementType
App ComponentType
App ComponentType
App ComponentTemplate
— Deployment
![Page 59: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/59.jpg)
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 60: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/60.jpg)
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 61: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/61.jpg)
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 62: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/62.jpg)
CAMP: PDP/Blueprint DSL (work in progress)
Parameters
Components
Requirements
Functionsparameters & sensors
Outputs
*
*
![Page 63: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/63.jpg)
CAMP: PDP/Blueprint DSL (work in progress)
Parameters
Functionsparameters & sensors
Outputs
*
*
components: my_app: type: WAR content: { href: hello.war } requirements: hosted_on: javaVersion: [1.7,)
![Page 64: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/64.jpg)
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 65: 2013 05-fite-club-working-models-cloud-growing-up](https://reader033.fdocuments.us/reader033/viewer/2022051611/54b7ac084a795993718b49a8/html5/thumbnails/65.jpg)
Wrap-Up
Declarative — AWS CloudFormation and OpenStack HeatProcedural — Apache Whirr and Cloudsoft BrooklynOpenStack Summit — Red Hat, RAX, IBM, OASIS TOSCA and CAMPDSLs in Progress — OpenStack Heat and CAMP PDP
It’s about the apps.Come get involved!