SlideShare a Scribd company logo
1 of 66
Download to read offline
Working Models ...
or how cloud is growing up and thinking about applications
Alex Heneveld / @ahtweetin
Fite Club, 22 May 2013
Cloud
Cloud
Itā€™s not just about VMā€™s...
Itā€™s about storage, networking, maas, ...
Itā€™s not just about VMā€™s...
Cloud
Itā€™s not just about VMā€™s...
Ultimately itā€™s about applications.
Cloud
Declarative ā€” AWS CloudFormation and OpenStack Heat
Procedural ā€” Apache Whirr and Cloudsoft Brooklyn
OpenStack Summit ā€” Red Hat, RAX, IBM, OASIS TOSCA and CAMP
DSLs in Progress ā€” OpenStack Heat and CAMP PDP
Ultimately itā€™s about applications.
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" : [],
...
{
"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
"Resources" : {
"WebServer": {
"Type": "AWS::EC2::Instance"
Parameters
Mappings
(conļ¬g metadata)
WaitConditions &
WaitHandles
(orchestration)
Outputs
Functions
AWS CloudFormation
"Resources" : {
"WebServer": {
"Type": "AWS::EC2::Instance"
AWS CloudFormation
"Resources" : {
"WebServer": {
"Type": "AWS::EC2::Instance"
AWS CloudFormation
"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
"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!
ā€” Limited to AWS cloud
ā€” Limited to AWS concepts
ā€” Cumbersome to write
ā€” Limited dependency injection
Nice, but:
AWS CloudFormation
ā€” CloudFormation clone
ā€” Targetting OpenStack resources and AWS compatibility
ā€” Adds YAML support (comments and easier)
ā€” Multi-cloud support using Apache Deltacloud
OpenStack 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
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: []
...
ā€” 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!
OpenStack Heat
ā€” Still limited to selected clouds
ā€” Still limited in concepts
ā€” Only slightly less cumbersome to write
ā€” Very limited dependency injection
But...
Procedural Approach
10 INPUT "What app do you like? ", A$
20 INPUT "What cloud do you like? ", C$
30 GOSUB 100
40 END
100 REM deploy C$ to A$
110 RETURN
Apache Whirr
provision
install
conļ¬gure
manage
ā€” Apache top level project
ā€” Deploy multi-node applications
ā€” Hadoop, Hama, Mahout, web,
Cassandra & many more
ā€” Deļ¬ne topologies declaratively
ā€” Add new roles, conļ¬guration,
constraints and wiring procedurally
$ whirr launch-cluster 
--cluster-name=hbase 
--instance-templates='1 hbase-master,6 hbase-regionserver'
ā€” Deļ¬ne topologies declaratively
Apache Whirr
ā€” Add new roles, conļ¬guration,
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
ā€” Limited parameterisation
ā€” Deļ¬ning new roles requires coding
ā€” Strict phases limit applicability
But...
ā€” Composable to one dimension
ā€” Portable locations support
ā€” Pluggable with Chef, Puppet, and more
Apache Whirr
Brooklyn & Cloudsoft AMP
ā€¢ Brooklyn = Apache-licensed OSS
ā€¢ AMP = Enterprise + Support
ā€¢ Deployment and Management
ā€¢ Hierarchical Autonomic Policies
Brooklyn
Contention Management
Custom PaaS
Big Data
Region #1
Presentation
Geographic
DNS Load
Balancer
Tomcat
Processing (Monterey)
Data (Gemļ¬re)
Tomcat
Tomcat
Region #2
Presentation
Load
Balancer
Tomcat
Processing (Monterey)
Data (Gemļ¬re)
Tomcat
Tomcat
Provisioning
Monitoring
Management
Brooklyn: Example, Physical Architecture
Data (Gemļ¬re)Processing (Monterey)
Region #1
Presentation
Geographic
DNS
Load
Balancer
Tomcat
Processing (Monterey) Data (Gemļ¬re)
Tomcat
Tomcat
Region #2
Presentation
Load
Balancer
Tomcat
Processing (Monterey) Data (Gemļ¬re)
Tomcat
Tomcat
Provisioning Monitoring Management
WebappFabric
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
WebappGeoDnsFabric MontereyFabric
MontereyCluster
MontereyNodes
MontereyNodes
MontereySegments
GemfireFabric
MontereyCluster
GemfireCluster
GemfireCluster
Geoscaling
Brooklyn
and friends
GemfireNodes
GemfireNodes
Brooklyn: Example, Logical Architecture
Processing (Monterey) Data (Gemļ¬re)
Autonomic Hierarchical Management
Geographic
DNS
Presentation
Load
Balancer
Tomcat Tomcat
WebappFabric
LoadBalancedWebAppCluster
Cluster Cluster Cluster Cluster
MyApplication
Policy
follow-the-
{sun,moon,X}
Policy
resizer
Policy
restart-2x
Policy
Brooklyn
and friends
WebappGeoDnsFabric MontereyFabric GemfireFabric
Brooklyn
Processing (Monterey) Data (Gemļ¬re)
Typed Blueprints
replace groups with PaaS tools and
have the same sensors and policies
Geographic
DNS
Presentation
WebappFabric
PaaS
Cluster Cluster Service Cluster
MyApplication
Brooklyn
and friends
WebappGeoDnsFabric MontereyFabric GemfireFabric
Brooklyn
Policy
follow-the-
{sun,moon,X}
Policy
resizer
Policy
restart-2x
Policy
Data (Gemļ¬re)
Data (Gemļ¬re)
Processing (Monterey)
Presentation
Geographic
DNS
Load
Balancer
Tomcat
Processing (Monterey)
Tomcat
Tomcat
Presentation
Load
Balancer
Tomcat
Processing (Monterey) Data (Gemļ¬re)
Tomcat
Tomcat
Provisioning Monitoring Management
WebappFabric
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
WebappGeoDnsFabric MontereyFabric
MontereyCluster
MontereyNodes
MontereyNodes
MontereySegments
GemfireFabric
MontereyCluster
GemfireCluster
GemfireCluster
Geoscaling
GemfireNodes
GemfireNodes ļ¬xed IP
&c
Brooklyn: Run in Many Locations
Data (Gemļ¬re)
Data (Gemļ¬re)
Processing (Monterey)
Presentation
Geographic
DNS
Load
Balancer
Tomcat
Processing (Monterey)
Tomcat
Tomcat
Presentation
Load
Balancer
Tomcat
Processing (Monterey) Data (Gemļ¬re)
Tomcat
Tomcat
Provisioning Monitoring Management
WebappFabric
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
TomcatNodes
NginxNode
LoadBalancedWebAppCluster
WebappGeoDnsFabric MontereyFabric
MontereyCluster
MontereyNodes
MontereyNodes
MontereySegments
GemfireFabric
MontereyCluster
GemfireCluster
GemfireCluster
Geoscaling
GemfireNodes
GemfireNodes
Policies
Policies
WAR
ļ¬le
code schema
credentials
GeoDNS
conļ¬g actor
descriptor
Regions
Brooklyn: ļ¬nally { Simplify }
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
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
Brooklyn
ā€” Deļ¬ning blueprints requires coding
But...
ā€” Easily parameterisable blueprints
ā€” Composable and substitutable
ā€” Portable and powerful locations support
ā€” Pluggable with VM images, Heat, Chef, more
Applications
ā€” Components (IaaS-resources)
ā€” DeclarativeInfrastructure
ā€” Procedural
ā€” Extensible (new resources)
ā€” Composable (stacks)
ā€” Management
ā€” Portable (hybrid, metal)
Heat in Grizzly
Management
Composable
Declarative
Components
Extensible
Portable
thanks largely to Red Hat
Portland Design Summit ā€”Ā Heat
Management
Composable
Declarative
Portable
Components
Extensible
Portland Design Summit ā€”Ā Heat
Management
Composable
Declarative
Portable
Components
Extensible
lots of new blood (interest and ideas)
Portland Design Summit ā€”Ā Heat
Composable
Declarative
Components
Management
Portable
Ease-of-Use
Extensible
ingredients from Brooklyn, Whirr, OoO and others
Portland Design Summit ā€”Ā Heat
Composable
Declarative
Components
Management
Portable
Extensible
Auto-wiring
a special ingredient from Rackspace
Ease-of-Use
Portland Design Summit ā€”Ā Heat
Composable
Declarative
Components
Management
Extensible
Auto-wiring
Relationships
Ease-of-Use
Portable
a special ingredient from IBM
Management
Composable
Declarative
Components
Auto-wiring
Relationships
Extensible
Ease-of-Use
Portable
Portland Design Summit ā€”Ā Heat
Heat in Havana
Management
Composable
Declarative
Components
Auto-wiring
Relationships
Extensible
Ease-of-Use
Portable
Concurrent
Distributed
Resilient
Functions / DI
Heat in Havana
Management
Composable
Declarative
Components
Auto-wiring
Relationships
Extensible
Ease-of-Use
Portable
Concurrent
Distributed
Resilient
Functions / DI
Standards ?
Oasis
TOSCA
http://www.oasis-open.org/committees/tosca/
Topology and Orchestration Speciļ¬cation for Cloud Applications
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
<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 Deļ¬nition
ā€” Fails theā€œease-of-useā€test
ā€” Does not standardise an API
But...
ā€” Powerful and broad modelling coverage
ā€” Workļ¬‚ow, locations, substitution
ā€” Relatively mature
TOSCA
Oasis
CAMP
www.cloudspecs.org
Cloud Application Management Platform
http://www.oasis-open.org/committees/camp/
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 ļ¬‚exible way to use many platforms.
Interoperability.
CAMP: Key Concepts
Clients
REST
Platform
Platform
Component
Template
Requirement
Type
Platform
Component
TemplatePlatform
Component
Template
Requirement
Type
App Component
Type
App Component
Type
Clients Platform
Platform
Component
Template
Requirement
Type
Platform
Component
TemplatePlatform
Component
Template
Requirement
Type
App Component
Type
App Component
Type
PDP = Platform
Deployment Plan
(blueprint)
ā€” Deployment PlanCAMP: Key Concepts
DSL & REST
App Component
Type
PDP = Platform
Deployment Plan
(blueprint)
CAMP: Key Concepts
Clients
REST
Platform
Platform
Component
Template
Requirement
Type
Platform
Component
TemplatePlatform
Component
Template
Requirement
Type
App Component
Type
ā€” Creating Templates
POST
App Component
Template
Clients
REST
Platform
Platform
Component
Template
Requirement
Type
Platform
Component
TemplatePlatform
Component
Template
Requirement
Type
App Component
Type
App Component
Type
ā€” ResolutionCAMP: Key Concepts
Assembly
Template
(blueprint)
PDP = Platform
Deployment Plan
(blueprint)POST
CAMP: Key Concepts
Clients
REST
Platform
Platform
Component
Template
Requirement
Type
Platform
Component
TemplatePlatform
Component
Template
Requirement
Type
App Component
Type
App Component
Type
App Component
Template
Requirement
Type
Platform
Component
Template
Requirement
Type
App Component
Type
ā€” Resolution
Assembly
Template
(blueprint)
POST
Assembly
Template
(blueprint)
CAMP: Key Concepts
Clients
REST
Platform
Platform
Component
Template
Requirement
Type
Platform
Component
TemplatePlatform
Component
Template
Requirement
Type
App Component
Type
App Component
Type
App Component
Template
ā€” Resolution
200
Assembly
Template
POST
Assembly
Template
(blueprint)
CAMP: Key Concepts
Clients
REST
Platform
Platform
Component
Template
Requirement
Type
Platform
Component
TemplatePlatform
Component
Template
Requirement
Type
App Component
Type
App Component
Type
App Component
Template
ā€” Deployment
Assembly
(blueprint) Platform
Component
Platform
Component
App Component
Assembly
Template
(blueprint)
CAMP: Key Concepts
Clients
REST
Platform
Platform
Component
Template
Requirement
Type
Requirement
Type
App Component
Type
App Component
Type
App Component
Template
ā€” Deployment
POST
Platform
Component
Template
Platform
Component
Template
Assembly
(blueprint) Platform
Component
Platform
Component
App Component
CAMP: Key Concepts
Clients
REST
Platform
ā€” Deployment
Assembly
(blueprint) Platform
Component
Platform
Component
App Component
Assembly
Template
(blueprint)
Platform
Component
Template
App Component
Template
Platform
Component
Template
POST
200
Assembly
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 orchestrations
PaaS, TOSCA, Brooklyn, Heat
ā€” OSS code in progress
github.com/brooklyncentral/camp-server
CAMP: PDP/Blueprint DSL (work in progress)
Parameters
Components
Requirements
Functions
parameters & sensors
Outputs
*
*
CAMP: PDP/Blueprint DSL (work in progress)
Parameters
Functions
parameters & sensors
Outputs
*
*
components:
my_app:
type: WAR
content: { href: hello.war }
requirements:
hosted_on:
javaVersion: [1.7,)
Mappings
(conļ¬g 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
Heat
Orchestration
Template
Coming in
Havana
Wrap-Up
Declarative ā€” AWS CloudFormation and OpenStack Heat
Procedural ā€” Apache Whirr and Cloudsoft Brooklyn
OpenStack Summit ā€” Red Hat, RAX, IBM, OASIS TOSCA and CAMP
DSLs in Progress ā€” OpenStack Heat and CAMP PDP
Itā€™s about the apps.
Come get involved!
Thank you.
alex.heneveld@cloudsoftcorp.com
@ahtweetin

More Related Content

What's hot

Infrastructure as Code - AWS CloudFormation
Infrastructure as Code - AWS CloudFormationInfrastructure as Code - AWS CloudFormation
Infrastructure as Code - AWS CloudFormationChamila de Alwis
Ā 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeAmazon Web Services
Ā 
Deep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormationDeep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormationAmazon Web Services
Ā 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings Adam Book
Ā 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeAmazon Web Services
Ā 
Infrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using CloudformationInfrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using CloudformationJohn Reilly Pospos
Ā 
Masterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationMasterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationAmazon Web Services
Ā 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeAmazon Web Services
Ā 
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...Amazon Web Services
Ā 
AWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAmazon Web Services
Ā 
Best Practices of IoT in the Cloud
Best Practices of IoT in the CloudBest Practices of IoT in the Cloud
Best Practices of IoT in the CloudAmazon Web Services
Ā 
AWS Presents: Infrastructure as Code on AWS - ChefConf 2015
AWS Presents: Infrastructure as Code on AWS - ChefConf 2015AWS Presents: Infrastructure as Code on AWS - ChefConf 2015
AWS Presents: Infrastructure as Code on AWS - ChefConf 2015Chef
Ā 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeAmazon Web Services
Ā 
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013Amazon Web Services
Ā 
Dev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the CloudDev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the CloudAmazon Web Services
Ā 
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)Amazon Web Services
Ā 
DevOps for the Enterprise: Automated Testing and Monitoring
DevOps for the Enterprise: Automated Testing and Monitoring DevOps for the Enterprise: Automated Testing and Monitoring
DevOps for the Enterprise: Automated Testing and Monitoring Amazon Web Services
Ā 
Dev & Test on AWS - Hebrew Webinar
Dev & Test on AWS - Hebrew WebinarDev & Test on AWS - Hebrew Webinar
Dev & Test on AWS - Hebrew WebinarBoaz Ziniman
Ā 
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013Amazon Web Services
Ā 

What's hot (20)

Infrastructure as Code - AWS CloudFormation
Infrastructure as Code - AWS CloudFormationInfrastructure as Code - AWS CloudFormation
Infrastructure as Code - AWS CloudFormation
Ā 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as Code
Ā 
Orchestrating the Cloud
Orchestrating the CloudOrchestrating the Cloud
Orchestrating the Cloud
Ā 
Deep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormationDeep Dive: AWS CloudFormation
Deep Dive: AWS CloudFormation
Ā 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings
Ā 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as Code
Ā 
Infrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using CloudformationInfrastructure as Code in AWS using Cloudformation
Infrastructure as Code in AWS using Cloudformation
Ā 
Masterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormationMasterclass Webinar - AWS CloudFormation
Masterclass Webinar - AWS CloudFormation
Ā 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as Code
Ā 
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...
(APP306) Using AWS CloudFormation for Deployment and Management at Scale | AW...
Ā 
AWS CloudFormation Best Practices
AWS CloudFormation Best PracticesAWS CloudFormation Best Practices
AWS CloudFormation Best Practices
Ā 
Best Practices of IoT in the Cloud
Best Practices of IoT in the CloudBest Practices of IoT in the Cloud
Best Practices of IoT in the Cloud
Ā 
AWS Presents: Infrastructure as Code on AWS - ChefConf 2015
AWS Presents: Infrastructure as Code on AWS - ChefConf 2015AWS Presents: Infrastructure as Code on AWS - ChefConf 2015
AWS Presents: Infrastructure as Code on AWS - ChefConf 2015
Ā 
Deep Dive: Infrastructure as Code
Deep Dive: Infrastructure as CodeDeep Dive: Infrastructure as Code
Deep Dive: Infrastructure as Code
Ā 
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Zero to Sixty: AWS CloudFormation (DMG201) | AWS re:Invent 2013
Ā 
Dev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the CloudDev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the Cloud
Ā 
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
AWS re:Invent 2016: The Effective AWS CLI User (DEV402)
Ā 
DevOps for the Enterprise: Automated Testing and Monitoring
DevOps for the Enterprise: Automated Testing and Monitoring DevOps for the Enterprise: Automated Testing and Monitoring
DevOps for the Enterprise: Automated Testing and Monitoring
Ā 
Dev & Test on AWS - Hebrew Webinar
Dev & Test on AWS - Hebrew WebinarDev & Test on AWS - Hebrew Webinar
Dev & Test on AWS - Hebrew Webinar
Ā 
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Becoming a Command Line Expert with the AWS CLI (TLS304) | AWS re:Invent 2013
Ā 

Similar to 2013 05-fite-club-working-models-cloud-growing-up

Deployment and Management on AWS:ā€Ø A Deep Dive on Options and Tools
Deployment and Management on AWS:ā€Ø A Deep Dive on Options and ToolsDeployment and Management on AWS:ā€Ø A Deep Dive on Options and Tools
Deployment and Management on AWS:ā€Ø A Deep Dive on Options and ToolsDanilo Poccia
Ā 
Programando sua infraestrutura com o AWS CloudFormation
Programando sua infraestrutura com o AWS CloudFormationProgramando sua infraestrutura com o AWS CloudFormation
Programando sua infraestrutura com o AWS CloudFormationAmazon Web Services LATAM
Ā 
Scaling Drupal in AWS Using AutoScaling, Cloudformation, RDS and more
Scaling Drupal in AWS Using AutoScaling, Cloudformation, RDS and moreScaling Drupal in AWS Using AutoScaling, Cloudformation, RDS and more
Scaling Drupal in AWS Using AutoScaling, Cloudformation, RDS and moreDropsolid
Ā 
Scalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSScalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSFernando Rodriguez
Ā 
Dev & Test on AWS Webinar October 2017 - IL Webinar
Dev & Test on AWS Webinar October 2017 - IL WebinarDev & Test on AWS Webinar October 2017 - IL Webinar
Dev & Test on AWS Webinar October 2017 - IL WebinarAmazon Web Services
Ā 
DevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office HoursDevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office HoursAmazon Web Services
Ā 
Deployment with Ansible Tower, management with Scalr
Deployment with Ansible Tower, management with ScalrDeployment with Ansible Tower, management with Scalr
Deployment with Ansible Tower, management with ScalrSzymon Kędzierski
Ā 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineAmazon Web Services
Ā 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitDanilo Poccia
Ā 
AWS CloudFormation: Infrastructure as Code | AWS Public Sector Summit 2016
AWS CloudFormation: Infrastructure as Code | AWS Public Sector Summit 2016AWS CloudFormation: Infrastructure as Code | AWS Public Sector Summit 2016
AWS CloudFormation: Infrastructure as Code | AWS Public Sector Summit 2016Amazon Web Services
Ā 
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAn introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAmazon Web Services
Ā 
Automating your Infrastructure Deployment with CloudFormation and OpsWorks ā€“...
 Automating your Infrastructure Deployment with CloudFormation and OpsWorks ā€“... Automating your Infrastructure Deployment with CloudFormation and OpsWorks ā€“...
Automating your Infrastructure Deployment with CloudFormation and OpsWorks ā€“...Amazon Web Services
Ā 
AWS Cloud Formation
AWS Cloud FormationAWS Cloud Formation
AWS Cloud FormationMahesh Raj
Ā 
ē„”ä¼ŗ꜍å™Øęž¶ę§‹å’ŒContainers on AWSå…„é–€
ē„”ä¼ŗ꜍å™Øęž¶ę§‹å’ŒContainers on AWSå…„é–€ ē„”ä¼ŗ꜍å™Øęž¶ę§‹å’ŒContainers on AWSå…„é–€
ē„”ä¼ŗ꜍å™Øęž¶ę§‹å’ŒContainers on AWSå…„é–€ Amazon Web Services
Ā 
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Amazon Web Services
Ā 
Dev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the CloudDev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the CloudIan Massingham
Ā 
CON420 Infrastructure as code for containers
CON420 Infrastructure as code for containersCON420 Infrastructure as code for containers
CON420 Infrastructure as code for containersNathan Peck
Ā 
AWS Elastic Container Service - DockerHN
AWS Elastic Container Service - DockerHNAWS Elastic Container Service - DockerHN
AWS Elastic Container Service - DockerHNNguyen Anh Tu
Ā 

Similar to 2013 05-fite-club-working-models-cloud-growing-up (20)

Deployment and Management on AWS:ā€Ø A Deep Dive on Options and Tools
Deployment and Management on AWS:ā€Ø A Deep Dive on Options and ToolsDeployment and Management on AWS:ā€Ø A Deep Dive on Options and Tools
Deployment and Management on AWS:ā€Ø A Deep Dive on Options and Tools
Ā 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Ā 
Programando sua infraestrutura com o AWS CloudFormation
Programando sua infraestrutura com o AWS CloudFormationProgramando sua infraestrutura com o AWS CloudFormation
Programando sua infraestrutura com o AWS CloudFormation
Ā 
Scaling Drupal in AWS Using AutoScaling, Cloudformation, RDS and more
Scaling Drupal in AWS Using AutoScaling, Cloudformation, RDS and moreScaling Drupal in AWS Using AutoScaling, Cloudformation, RDS and more
Scaling Drupal in AWS Using AutoScaling, Cloudformation, RDS and more
Ā 
Amazon ECS Deep Dive
Amazon ECS Deep DiveAmazon ECS Deep Dive
Amazon ECS Deep Dive
Ā 
Scalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWSScalable and Fault-Tolerant Apps with AWS
Scalable and Fault-Tolerant Apps with AWS
Ā 
Dev & Test on AWS Webinar October 2017 - IL Webinar
Dev & Test on AWS Webinar October 2017 - IL WebinarDev & Test on AWS Webinar October 2017 - IL Webinar
Dev & Test on AWS Webinar October 2017 - IL Webinar
Ā 
DevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office HoursDevOps for the Enterprise: Virtual Office Hours
DevOps for the Enterprise: Virtual Office Hours
Ā 
Deployment with Ansible Tower, management with Scalr
Deployment with Ansible Tower, management with ScalrDeployment with Ansible Tower, management with Scalr
Deployment with Ansible Tower, management with Scalr
Ā 
Programming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules EngineProgramming the Physical World with Device Shadows and Rules Engine
Programming the Physical World with Device Shadows and Rules Engine
Ā 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with Git
Ā 
AWS CloudFormation: Infrastructure as Code | AWS Public Sector Summit 2016
AWS CloudFormation: Infrastructure as Code | AWS Public Sector Summit 2016AWS CloudFormation: Infrastructure as Code | AWS Public Sector Summit 2016
AWS CloudFormation: Infrastructure as Code | AWS Public Sector Summit 2016
Ā 
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel AvivAn introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
An introduction to AWS CloudFormation - Pop-up Loft Tel Aviv
Ā 
Automating your Infrastructure Deployment with CloudFormation and OpsWorks ā€“...
 Automating your Infrastructure Deployment with CloudFormation and OpsWorks ā€“... Automating your Infrastructure Deployment with CloudFormation and OpsWorks ā€“...
Automating your Infrastructure Deployment with CloudFormation and OpsWorks ā€“...
Ā 
AWS Cloud Formation
AWS Cloud FormationAWS Cloud Formation
AWS Cloud Formation
Ā 
ē„”ä¼ŗ꜍å™Øęž¶ę§‹å’ŒContainers on AWSå…„é–€
ē„”ä¼ŗ꜍å™Øęž¶ę§‹å’ŒContainers on AWSå…„é–€ ē„”ä¼ŗ꜍å™Øęž¶ę§‹å’ŒContainers on AWSå…„é–€
ē„”ä¼ŗ꜍å™Øęž¶ę§‹å’ŒContainers on AWSå…„é–€
Ā 
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Ā 
Dev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the CloudDev & Test on AWS - Journey Through the Cloud
Dev & Test on AWS - Journey Through the Cloud
Ā 
CON420 Infrastructure as code for containers
CON420 Infrastructure as code for containersCON420 Infrastructure as code for containers
CON420 Infrastructure as code for containers
Ā 
AWS Elastic Container Service - DockerHN
AWS Elastic Container Service - DockerHNAWS Elastic Container Service - DockerHN
AWS Elastic Container Service - DockerHN
Ā 

More from Alex Heneveld

2015-11-cloudsoft-basho-brooklyn-riak
2015-11-cloudsoft-basho-brooklyn-riak2015-11-cloudsoft-basho-brooklyn-riak
2015-11-cloudsoft-basho-brooklyn-riakAlex Heneveld
Ā 
2014-05-gluecon-amplifying-docker
2014-05-gluecon-amplifying-docker2014-05-gluecon-amplifying-docker
2014-05-gluecon-amplifying-dockerAlex Heneveld
Ā 
2014 04-AMPlifying-docker-at-451-hcts-eu
2014 04-AMPlifying-docker-at-451-hcts-eu2014 04-AMPlifying-docker-at-451-hcts-eu
2014 04-AMPlifying-docker-at-451-hcts-euAlex Heneveld
Ā 
2013 05-multicloud-paas-interop-scenarios-fia-dublin
2013 05-multicloud-paas-interop-scenarios-fia-dublin2013 05-multicloud-paas-interop-scenarios-fia-dublin
2013 05-multicloud-paas-interop-scenarios-fia-dublinAlex Heneveld
Ā 
2013 04-specs-camp-tosca-heat-brooklyn
2013 04-specs-camp-tosca-heat-brooklyn2013 04-specs-camp-tosca-heat-brooklyn
2013 04-specs-camp-tosca-heat-brooklynAlex Heneveld
Ā 
Cloud Application Management in Practice - OpenStack Summit Lightning Talk
Cloud Application Management in Practice - OpenStack Summit Lightning TalkCloud Application Management in Practice - OpenStack Summit Lightning Talk
Cloud Application Management in Practice - OpenStack Summit Lightning TalkAlex Heneveld
Ā 

More from Alex Heneveld (6)

2015-11-cloudsoft-basho-brooklyn-riak
2015-11-cloudsoft-basho-brooklyn-riak2015-11-cloudsoft-basho-brooklyn-riak
2015-11-cloudsoft-basho-brooklyn-riak
Ā 
2014-05-gluecon-amplifying-docker
2014-05-gluecon-amplifying-docker2014-05-gluecon-amplifying-docker
2014-05-gluecon-amplifying-docker
Ā 
2014 04-AMPlifying-docker-at-451-hcts-eu
2014 04-AMPlifying-docker-at-451-hcts-eu2014 04-AMPlifying-docker-at-451-hcts-eu
2014 04-AMPlifying-docker-at-451-hcts-eu
Ā 
2013 05-multicloud-paas-interop-scenarios-fia-dublin
2013 05-multicloud-paas-interop-scenarios-fia-dublin2013 05-multicloud-paas-interop-scenarios-fia-dublin
2013 05-multicloud-paas-interop-scenarios-fia-dublin
Ā 
2013 04-specs-camp-tosca-heat-brooklyn
2013 04-specs-camp-tosca-heat-brooklyn2013 04-specs-camp-tosca-heat-brooklyn
2013 04-specs-camp-tosca-heat-brooklyn
Ā 
Cloud Application Management in Practice - OpenStack Summit Lightning Talk
Cloud Application Management in Practice - OpenStack Summit Lightning TalkCloud Application Management in Practice - OpenStack Summit Lightning Talk
Cloud Application Management in Practice - OpenStack Summit Lightning Talk
Ā 

Recently uploaded

Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
Ā 
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot ModelDeepika Singh
Ā 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
Ā 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
Ā 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
Ā 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Christopher Logan Kennedy
Ā 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
Ā 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Ā 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
Ā 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
Ā 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
Ā 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
Ā 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
Ā 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
Ā 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
Ā 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
Ā 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
Ā 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
Ā 

Recently uploaded (20)

Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Ā 
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls šŸ„° 8617370543 Service Offer VIP Hot Model
Ā 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Ā 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Ā 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Ā 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Ā 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Ā 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Ā 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Ā 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Ā 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Ā 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
Ā 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
Ā 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Ā 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Ā 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Ā 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Ā 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
Ā 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
Ā 

2013 05-fite-club-working-models-cloud-growing-up

  • 1. Working Models ... or how cloud is growing up and thinking about applications Alex Heneveld / @ahtweetin Fite Club, 22 May 2013
  • 3. Cloud Itā€™s not just about VMā€™s...
  • 4. Itā€™s about storage, networking, maas, ... Itā€™s not just about VMā€™s... Cloud
  • 5. Itā€™s not just about VMā€™s... Ultimately itā€™s about applications. Cloud
  • 6. Declarative ā€” AWS CloudFormation and OpenStack Heat Procedural ā€” Apache Whirr and Cloudsoft Brooklyn OpenStack Summit ā€” Red Hat, RAX, IBM, OASIS TOSCA and CAMP DSLs in Progress ā€” OpenStack Heat and CAMP PDP Ultimately itā€™s about applications.
  • 7. 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" : [], ...
  • 8. { "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
  • 9. "Resources" : { "WebServer": { "Type": "AWS::EC2::Instance" Parameters Mappings (conļ¬g metadata) WaitConditions & WaitHandles (orchestration) Outputs Functions AWS CloudFormation
  • 10. "Resources" : { "WebServer": { "Type": "AWS::EC2::Instance" AWS CloudFormation
  • 11. "Resources" : { "WebServer": { "Type": "AWS::EC2::Instance" AWS CloudFormation
  • 12. "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
  • 13. "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!
  • 14. ā€” Limited to AWS cloud ā€” Limited to AWS concepts ā€” Cumbersome to write ā€” Limited dependency injection Nice, but: AWS CloudFormation
  • 15. ā€” CloudFormation clone ā€” Targetting OpenStack resources and AWS compatibility ā€” Adds YAML support (comments and easier) ā€” Multi-cloud support using Apache Deltacloud OpenStack Heat
  • 16. (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
  • 17. 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: [] ...
  • 18. ā€” 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!
  • 19. OpenStack Heat ā€” Still limited to selected clouds ā€” Still limited in concepts ā€” Only slightly less cumbersome to write ā€” Very limited dependency injection But...
  • 20. Procedural Approach 10 INPUT "What app do you like? ", A$ 20 INPUT "What cloud do you like? ", C$ 30 GOSUB 100 40 END 100 REM deploy C$ to A$ 110 RETURN
  • 21. Apache Whirr provision install conļ¬gure manage ā€” Apache top level project ā€” Deploy multi-node applications ā€” Hadoop, Hama, Mahout, web, Cassandra & many more ā€” Deļ¬ne topologies declaratively ā€” Add new roles, conļ¬guration, constraints and wiring procedurally
  • 22. $ whirr launch-cluster --cluster-name=hbase --instance-templates='1 hbase-master,6 hbase-regionserver' ā€” Deļ¬ne topologies declaratively Apache Whirr
  • 23. ā€” Add new roles, conļ¬guration, 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
  • 24. ā€” Limited parameterisation ā€” Deļ¬ning new roles requires coding ā€” Strict phases limit applicability But... ā€” Composable to one dimension ā€” Portable locations support ā€” Pluggable with Chef, Puppet, and more Apache Whirr
  • 25. Brooklyn & Cloudsoft AMP ā€¢ Brooklyn = Apache-licensed OSS ā€¢ AMP = Enterprise + Support ā€¢ Deployment and Management ā€¢ Hierarchical Autonomic Policies
  • 27. Region #1 Presentation Geographic DNS Load Balancer Tomcat Processing (Monterey) Data (Gemļ¬re) Tomcat Tomcat Region #2 Presentation Load Balancer Tomcat Processing (Monterey) Data (Gemļ¬re) Tomcat Tomcat Provisioning Monitoring Management Brooklyn: Example, Physical Architecture
  • 28. Data (Gemļ¬re)Processing (Monterey) Region #1 Presentation Geographic DNS Load Balancer Tomcat Processing (Monterey) Data (Gemļ¬re) Tomcat Tomcat Region #2 Presentation Load Balancer Tomcat Processing (Monterey) Data (Gemļ¬re) Tomcat Tomcat Provisioning Monitoring Management WebappFabric TomcatNodes NginxNode LoadBalancedWebAppCluster TomcatNodes NginxNode LoadBalancedWebAppCluster WebappGeoDnsFabric MontereyFabric MontereyCluster MontereyNodes MontereyNodes MontereySegments GemfireFabric MontereyCluster GemfireCluster GemfireCluster Geoscaling Brooklyn and friends GemfireNodes GemfireNodes Brooklyn: Example, Logical Architecture
  • 29. Processing (Monterey) Data (Gemļ¬re) Autonomic Hierarchical Management Geographic DNS Presentation Load Balancer Tomcat Tomcat WebappFabric LoadBalancedWebAppCluster Cluster Cluster Cluster Cluster MyApplication Policy follow-the- {sun,moon,X} Policy resizer Policy restart-2x Policy Brooklyn and friends WebappGeoDnsFabric MontereyFabric GemfireFabric Brooklyn
  • 30. Processing (Monterey) Data (Gemļ¬re) Typed Blueprints replace groups with PaaS tools and have the same sensors and policies Geographic DNS Presentation WebappFabric PaaS Cluster Cluster Service Cluster MyApplication Brooklyn and friends WebappGeoDnsFabric MontereyFabric GemfireFabric Brooklyn Policy follow-the- {sun,moon,X} Policy resizer Policy restart-2x Policy
  • 31. Data (Gemļ¬re) Data (Gemļ¬re) Processing (Monterey) Presentation Geographic DNS Load Balancer Tomcat Processing (Monterey) Tomcat Tomcat Presentation Load Balancer Tomcat Processing (Monterey) Data (Gemļ¬re) Tomcat Tomcat Provisioning Monitoring Management WebappFabric TomcatNodes NginxNode LoadBalancedWebAppCluster TomcatNodes NginxNode LoadBalancedWebAppCluster WebappGeoDnsFabric MontereyFabric MontereyCluster MontereyNodes MontereyNodes MontereySegments GemfireFabric MontereyCluster GemfireCluster GemfireCluster Geoscaling GemfireNodes GemfireNodes ļ¬xed IP &c Brooklyn: Run in Many Locations
  • 32. Data (Gemļ¬re) Data (Gemļ¬re) Processing (Monterey) Presentation Geographic DNS Load Balancer Tomcat Processing (Monterey) Tomcat Tomcat Presentation Load Balancer Tomcat Processing (Monterey) Data (Gemļ¬re) Tomcat Tomcat Provisioning Monitoring Management WebappFabric TomcatNodes NginxNode LoadBalancedWebAppCluster TomcatNodes NginxNode LoadBalancedWebAppCluster WebappGeoDnsFabric MontereyFabric MontereyCluster MontereyNodes MontereyNodes MontereySegments GemfireFabric MontereyCluster GemfireCluster GemfireCluster Geoscaling GemfireNodes GemfireNodes Policies Policies WAR ļ¬le code schema credentials GeoDNS conļ¬g actor descriptor Regions Brooklyn: ļ¬nally { Simplify }
  • 33. 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
  • 34. 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
  • 35. Brooklyn ā€” Deļ¬ning blueprints requires coding But... ā€” Easily parameterisable blueprints ā€” Composable and substitutable ā€” Portable and powerful locations support ā€” Pluggable with VM images, Heat, Chef, more
  • 36. Applications ā€” Components (IaaS-resources) ā€” DeclarativeInfrastructure ā€” Procedural ā€” Extensible (new resources) ā€” Composable (stacks) ā€” Management ā€” Portable (hybrid, metal)
  • 38. Portland Design Summit ā€”Ā Heat Management Composable Declarative Portable Components Extensible
  • 39. Portland Design Summit ā€”Ā Heat Management Composable Declarative Portable Components Extensible lots of new blood (interest and ideas)
  • 40. Portland Design Summit ā€”Ā Heat Composable Declarative Components Management Portable Ease-of-Use Extensible ingredients from Brooklyn, Whirr, OoO and others
  • 41. Portland Design Summit ā€”Ā Heat Composable Declarative Components Management Portable Extensible Auto-wiring a special ingredient from Rackspace Ease-of-Use
  • 42. Portland Design Summit ā€”Ā Heat Composable Declarative Components Management Extensible Auto-wiring Relationships Ease-of-Use Portable a special ingredient from IBM
  • 47. 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
  • 48. <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 Deļ¬nition
  • 49. ā€” Fails theā€œease-of-useā€test ā€” Does not standardise an API But... ā€” Powerful and broad modelling coverage ā€” Workļ¬‚ow, locations, substitution ā€” Relatively mature TOSCA
  • 50. Oasis CAMP www.cloudspecs.org Cloud Application Management Platform http://www.oasis-open.org/committees/camp/
  • 51. 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 ļ¬‚exible way to use many platforms. Interoperability.
  • 53. Clients Platform Platform Component Template Requirement Type Platform Component TemplatePlatform Component Template Requirement Type App Component Type App Component Type PDP = Platform Deployment Plan (blueprint) ā€” Deployment PlanCAMP: Key Concepts DSL & REST
  • 54. App Component Type PDP = Platform Deployment Plan (blueprint) CAMP: Key Concepts Clients REST Platform Platform Component Template Requirement Type Platform Component TemplatePlatform Component Template Requirement Type App Component Type ā€” Creating Templates POST
  • 55. App Component Template Clients REST Platform Platform Component Template Requirement Type Platform Component TemplatePlatform Component Template Requirement Type App Component Type App Component Type ā€” ResolutionCAMP: Key Concepts Assembly Template (blueprint) PDP = Platform Deployment Plan (blueprint)POST
  • 56. CAMP: Key Concepts Clients REST Platform Platform Component Template Requirement Type Platform Component TemplatePlatform Component Template Requirement Type App Component Type App Component Type App Component Template Requirement Type Platform Component Template Requirement Type App Component Type ā€” Resolution Assembly Template (blueprint) POST
  • 59. Assembly (blueprint) Platform Component Platform Component App Component Assembly Template (blueprint) CAMP: Key Concepts Clients REST Platform Platform Component Template Requirement Type Requirement Type App Component Type App Component Type App Component Template ā€” Deployment POST Platform Component Template Platform Component Template
  • 60. Assembly (blueprint) Platform Component Platform Component App Component CAMP: Key Concepts Clients REST Platform ā€” Deployment Assembly (blueprint) Platform Component Platform Component App Component Assembly Template (blueprint) Platform Component Template App Component Template Platform Component Template POST 200 Assembly
  • 61. 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 orchestrations PaaS, TOSCA, Brooklyn, Heat ā€” OSS code in progress github.com/brooklyncentral/camp-server
  • 62. CAMP: PDP/Blueprint DSL (work in progress) Parameters Components Requirements Functions parameters & sensors Outputs * *
  • 63. CAMP: PDP/Blueprint DSL (work in progress) Parameters Functions parameters & sensors Outputs * * components: my_app: type: WAR content: { href: hello.war } requirements: hosted_on: javaVersion: [1.7,)
  • 64. Mappings (conļ¬g 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 Heat Orchestration Template Coming in Havana
  • 65. Wrap-Up Declarative ā€” AWS CloudFormation and OpenStack Heat Procedural ā€” Apache Whirr and Cloudsoft Brooklyn OpenStack Summit ā€” Red Hat, RAX, IBM, OASIS TOSCA and CAMP DSLs in Progress ā€” OpenStack Heat and CAMP PDP Itā€™s about the apps. Come get involved!