SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Application Management 
with Apache Brooklyn 
Alex Heneveld @ahtweetin 
CTO & Co-Founder, Cloudsoft 
Committer, Apache Brooklyn 
Build-a-Cloud Day Vegas, Oct 2014
© 2014 Cloudsoft Corporation 
Mission 
2 
!! 
Simplify application deployment and management 
with composable blueprints, 
leveraging the best tools 
for server config, cloud, and monitoring. 
! 
Apache Brooklyn is the only autonomic open source 
multi-cloud application management platform. 
!
The Brooklyn Approach 
Blueprints
The Brooklyn Approach 
push-button deployment
The Brooklyn Approach 
ongoing management
The Brooklyn Approach 
open extensible framework
Benefits — Agility
Benefits — Reliability 
autonomic 
management 
built-in!
Benefits — Transparency
Benefits — Community
name: MyWebCluster 
© 2014 Cloudsoft Corporation 
Multi-Tier Application — Blueprint YAML 
11 
services: 
- type: WebAppCluster 
brooklyn.config: 
wars.root: hello-db.war 
http.port: 8080+ 
java.sysprops: 
db.url: $brooklyn:component("db"). 
attributeWhenReady("database.url") 
- type: MySqlNode 
id: db 
brooklyn.config: 
creation.script: hello-db.sql
name: MyWebCluster 
services: 
- type: WebAppCluster 
brooklyn.config: 
wars.root: hello-db.war 
http.port: 8080+ 
java.sysprops: 
db.url: $brooklyn:component("db"). 
attributeWhenReady("database.url") 
policies: 
- type: AutoScaler 
sensor: webapp.reqs.sec 
range: [100,200] 
© 2014 Cloudsoft Corporation 
Multi-Tier Application — Blueprint YAML 
12 
- type: MySqlNode 
id: db 
brooklyn.config: 
creation.script: hello-db.sql
name: MyWebCluster 
services: 
- type: WebAppCluster 
brooklyn.config: 
wars.root: hello-db.war 
http.port: 8080+ 
java.sysprops: 
db.url: $brooklyn:component("db"). 
attributeWhenReady("database.url") 
policies: 
- type: AutoScaler 
sensor: webapp.reqs.sec 
range: [100,200] 
© 2014 Cloudsoft Corporation 
Multi-Tier Application — Blueprint YAML 
13 
- type: MySqlNode 
id: db 
brooklyn.config: 
creation.script: hello-db.sql 
location: jclouds:cloudstack:http://10.4.88.16:9999/client/api
© 2014 Cloudsoft Corporation 
More Blueprint YAML — Cassandra Cluster 
14 
name: cassandra-cluster-app 
! 
services: 
- type: brooklyn.entity.nosql.cassandra.CassandraCluster 
name: Cassandra Cluster 
brooklyn.config: 
cluster.initial.size: 5 
cluster.initial.quorumSize: 3 
provisioning.properties: 
minCores: 4 
minRam: 8192 
! 
location: softlayer:sjc01
© 2014 Cloudsoft Corporation 
MyWebCluster 
15 
[targets] Auto Scaler Policy 
… 
MyWebCluster 
ControlledDynamicWebAppCluster 
DynamicWebAppCluster 
JBoss7Server 
NGINX 
MySQL 
JBoss7Server
Define New Blueprint 
public class MyWebCluster extends AbstractApplication 
implements MyWebClusterConstants { 
@Override 
public void init() { 
!!! 
// TODO build the application 
!! 
! 
} 
} 
Type to enter text 
© 2014 Cloudsoft Corporation 
16
Create App Tier 
public class MyWebCluster extends AbstractApplication 
implements MyWebClusterConstants { 
@Override 
public void init() { 
!!! 
JBoss7Server web = addChild( 
EntitySpecs.spec(JBoss7Server.class) 
Type to enter text 
.configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) ); 
! 
! 
} 
} 
Type to enter 
© 2014 Cloudsoft Corporation 
17
Configure App Tier 
Type to enter 
Type to enter text 
public class MyWebCluster extends AbstractApplication 
implements MyWebClusterConstants { 
@Override 
public void init() { 
!!! 
JBoss7Server web = addChild( 
EntitySpecs.spec(JBoss7Server.class) 
.configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) 
.configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) ); 
! 
} 
} 
© 2014 Cloudsoft Corporation 
18
© 2014 Cloudsoft Corporation 
Add DB Tier 
public class MyWebCluster extends AbstractApplication 
implements MyWebClusterConstants { 
@Override 
public void init() { 
MySqlNode mysql = addChild( EntitySpecs.spec(MySqlNode.class) 
.configure(MySqlNode.CREATION_SCRIPT_URL, getConfig(DB_SETUP_SQL_URL)) ); 
! 
JBoss7Server web = addChild( 
EntitySpecs.spec(JBoss7Server.class) 
.configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) 
.configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) ); 
! 
} 
} 
Type to enter 
Type to enter text
© 2014 Cloudsoft Corporation 
Wire up App and DB Tiers 
public class MyWebCluster extends AbstractApplication 
implements MyWebClusterConstants { 
@Override 
public void init() { 
MySqlNode mysql = addChild( EntitySpecs.spec(MySqlNode.class) 
.configure(MySqlNode.CREATION_SCRIPT_URL, getConfig(DB_SETUP_SQL_URL)) ); 
! 
JBoss7Server web = addChild( 
EntitySpecs.spec(JBoss7Server.class) 
.configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) 
.configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) 
.configure(JavaEntityMethods.javaSysProp("brooklyn.example.db.url"), 
formatString("jdbc:%s%s?user=%s&password=%s", 
attributeWhenReady(mysql, MySqlNode.MYSQL_URL), 
DB_TABLE, DB_USERNAME, DB_PASSWORD)) ); 
! 
} 
} 
Type to enter 
Type to enter text
© 2014 Cloudsoft Corporation 
Introduce Elasticity in App Tier 
public class MyWebCluster extends AbstractApplication 
implements MyWebClusterConstants { 
@Override 
public void init() { 
MySqlNode mysql = addChild( EntitySpecs.spec(MySqlNode.class) 
.configure(MySqlNode.CREATION_SCRIPT_URL, getConfig(DB_SETUP_SQL_URL)) ); 
! 
ControlledDynamicWebAppCluster web = addChild( 
EntitySpecs.spec(ControlledDynamicWebAppCluster.class) 
.configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) 
.configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) 
.configure(JavaEntityMethods.javaSysProp("brooklyn.example.db.url"), 
formatString("jdbc:%s%s?user=%s&password=%s", 
attributeWhenReady(mysql, MySqlNode.MYSQL_URL), 
DB_TABLE, DB_USERNAME, DB_PASSWORD)) ); 
! 
} 
} 
Type to enter text 
Type to enter text 
Type to enter 
Type
© 2014 Cloudsoft Corporation 
Customize Elasticity in App Tier 
public class MyWebCluster extends AbstractApplication 
implements MyWebClusterConstants { 
@Override 
public void init() { 
MySqlNode mysql = addChild( EntitySpecs.spec(MySqlNode.class) 
.configure(MySqlNode.CREATION_SCRIPT_URL, getConfig(DB_SETUP_SQL_URL)) ); 
! 
ControlledDynamicWebAppCluster web = addChild( 
EntitySpecs.spec(ControlledDynamicWebAppCluster.class) 
.configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) 
.configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) 
.configure(JavaEntityMethods.javaSysProp("brooklyn.example.db.url"), 
formatString("jdbc:%s%s?user=%s&password=%s", 
attributeWhenReady(mysql, MySqlNode.MYSQL_URL), 
DB_TABLE, DB_USERNAME, DB_PASSWORD)) 
.configure(DynamicCluster.INITIAL_SIZE, 2) ); 
} 
} 
Type to enter text 
Type to enter text 
Type to enter 
Type 
Type to enter
© 2014 Cloudsoft Corporation 
Add Policies and KPI’s 
public class MyWebCluster extends AbstractApplication 
implements MyWebClusterConstants { 
@Override 
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()); 
! 
Type to enter text 
Type to enter text 
Type to enter 
Type 
Type to enter text 
Type to enter 
addEnricher(SensorPropagatingEnricher.newInstanceListeningTo(web, 
ROOT_URL, REQUESTS_PER_SECOND_IN_WINDOW, REQUEST_LATENCY_IN_SECONDS_IN_WINDOW)); 
} 
}
© 2014 Cloudsoft Corporation 
Test New Blueprint 
24

Weitere ähnliche Inhalte

Was ist angesagt?

Designing CloudStack Clouds
Designing CloudStack CloudsDesigning CloudStack Clouds
Designing CloudStack CloudsShapeBlue
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stackNitin Mehta
 
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...ShapeBlue
 
Presentation cloud orchestration solution overview
Presentation   cloud orchestration solution overviewPresentation   cloud orchestration solution overview
Presentation cloud orchestration solution overviewxKinAnx
 
What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021
What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021
What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021ShapeBlue
 
Directions for CloudStack Networking
Directions for CloudStack  NetworkingDirections for CloudStack  Networking
Directions for CloudStack NetworkingChiradeep Vittal
 
Intel & QLogic NIC performance test results v0.2
Intel & QLogic NIC performance test results v0.2Intel & QLogic NIC performance test results v0.2
Intel & QLogic NIC performance test results v0.2David Pasek
 
Whats New in Apache CloudStack Version 4.5
Whats New in Apache CloudStack Version 4.5Whats New in Apache CloudStack Version 4.5
Whats New in Apache CloudStack Version 4.5ShapeBlue
 
Introduction to CloudStack Networking
Introduction to CloudStack NetworkingIntroduction to CloudStack Networking
Introduction to CloudStack NetworkingShapeBlue
 
Openstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2SchoolOpenstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2SchoolAsaf Abres
 
Automating CloudStack and hypervisor installation and configuration
Automating CloudStack and hypervisor installation and configurationAutomating CloudStack and hypervisor installation and configuration
Automating CloudStack and hypervisor installation and configurationDag Sonstebo
 
Jenkins, jclouds, CloudStack, and CentOS by David Nalley
Jenkins, jclouds, CloudStack, and CentOS by David NalleyJenkins, jclouds, CloudStack, and CentOS by David Nalley
Jenkins, jclouds, CloudStack, and CentOS by David Nalleybuildacloud
 
Cloud stack networking shapeblue technical deep dive
Cloud stack networking   shapeblue technical deep diveCloud stack networking   shapeblue technical deep dive
Cloud stack networking shapeblue technical deep diveShapeBlue
 
Session 4 - News from ACS Community
Session 4 - News from ACS CommunitySession 4 - News from ACS Community
Session 4 - News from ACS Communitytcloudcomputing-tw
 
Cloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodeCloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodePalak Sood
 

Was ist angesagt? (20)

Designing CloudStack Clouds
Designing CloudStack CloudsDesigning CloudStack Clouds
Designing CloudStack Clouds
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
 
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
 
Presentation cloud orchestration solution overview
Presentation   cloud orchestration solution overviewPresentation   cloud orchestration solution overview
Presentation cloud orchestration solution overview
 
What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021
What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021
What’s New in CloudStack 4.15 - CloudStack European User Group Virtual, May 2021
 
Cloud stack for_beginners
Cloud stack for_beginnersCloud stack for_beginners
Cloud stack for_beginners
 
Directions for CloudStack Networking
Directions for CloudStack  NetworkingDirections for CloudStack  Networking
Directions for CloudStack Networking
 
Intel & QLogic NIC performance test results v0.2
Intel & QLogic NIC performance test results v0.2Intel & QLogic NIC performance test results v0.2
Intel & QLogic NIC performance test results v0.2
 
Whats New in Apache CloudStack Version 4.5
Whats New in Apache CloudStack Version 4.5Whats New in Apache CloudStack Version 4.5
Whats New in Apache CloudStack Version 4.5
 
Introduction to CloudStack Networking
Introduction to CloudStack NetworkingIntroduction to CloudStack Networking
Introduction to CloudStack Networking
 
Introduction to CloudStack
Introduction to CloudStack Introduction to CloudStack
Introduction to CloudStack
 
Openstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2SchoolOpenstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2School
 
Automating CloudStack and hypervisor installation and configuration
Automating CloudStack and hypervisor installation and configurationAutomating CloudStack and hypervisor installation and configuration
Automating CloudStack and hypervisor installation and configuration
 
Jenkins, jclouds, CloudStack, and CentOS by David Nalley
Jenkins, jclouds, CloudStack, and CentOS by David NalleyJenkins, jclouds, CloudStack, and CentOS by David Nalley
Jenkins, jclouds, CloudStack, and CentOS by David Nalley
 
Cloud stack networking shapeblue technical deep dive
Cloud stack networking   shapeblue technical deep diveCloud stack networking   shapeblue technical deep dive
Cloud stack networking shapeblue technical deep dive
 
CloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community worksCloudStack Hyderabad Meetup: How the Apache community works
CloudStack Hyderabad Meetup: How the Apache community works
 
OpenStack Cinder
OpenStack CinderOpenStack Cinder
OpenStack Cinder
 
Session 4 - News from ACS Community
Session 4 - News from ACS CommunitySession 4 - News from ACS Community
Session 4 - News from ACS Community
 
OpenStack 101 update
OpenStack 101 updateOpenStack 101 update
OpenStack 101 update
 
Cloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute NodeCloud Computing Open Stack Compute Node
Cloud Computing Open Stack Compute Node
 

Ähnlich wie Cloud Application Blueprints with Apache Brooklyn by Alex Henevald

Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudRamnivas Laddad
 
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
 
Easy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applicationsEasy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applicationsJack-Junjie Cai
 
Dropwizard Introduction
Dropwizard IntroductionDropwizard Introduction
Dropwizard IntroductionAnthony Chen
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesAtlassian
 
Automation in Digital Cloud Labs
Automation in Digital Cloud LabsAutomation in Digital Cloud Labs
Automation in Digital Cloud LabsRapidValue
 
PHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on BluemixPHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on BluemixIBM
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developersDaniel Krook
 
Getting started with Google App Engine
Getting started with Google App EngineGetting started with Google App Engine
Getting started with Google App EngineMilindu Sanoj Kumarage
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSGunnar Hillert
 
Multi client Development with Spring
Multi client Development with SpringMulti client Development with Spring
Multi client Development with SpringJoshua Long
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Tuna Tore
 
springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892Tuna Tore
 
Gdg dev fest hybrid apps your own mini-cordova
Gdg dev fest hybrid apps  your own mini-cordovaGdg dev fest hybrid apps  your own mini-cordova
Gdg dev fest hybrid apps your own mini-cordovaAyman Mahfouz
 
TDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring CloudTDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring Cloudtdc-globalcode
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CNjojule
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...DataLeader.io
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Lou Sacco
 

Ähnlich wie Cloud Application Blueprints with Apache Brooklyn by Alex Henevald (20)

Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring Cloud
 
Quality control in a cloudy world
Quality control in a cloudy worldQuality control in a cloudy world
Quality control in a cloudy world
 
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
 
Easy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applicationsEasy integration of Bluemix services with your applications
Easy integration of Bluemix services with your applications
 
Dropwizard Introduction
Dropwizard IntroductionDropwizard Introduction
Dropwizard Introduction
 
Mean stack Magics
Mean stack MagicsMean stack Magics
Mean stack Magics
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket Pipelines
 
Automation in Digital Cloud Labs
Automation in Digital Cloud LabsAutomation in Digital Cloud Labs
Automation in Digital Cloud Labs
 
PHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on BluemixPHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on Bluemix
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
 
Getting started with Google App Engine
Getting started with Google App EngineGetting started with Google App Engine
Getting started with Google App Engine
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
 
Multi client Development with Spring
Multi client Development with SpringMulti client Development with Spring
Multi client Development with Spring
 
Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5Java Spring MVC Framework with AngularJS by Google and HTML5
Java Spring MVC Framework with AngularJS by Google and HTML5
 
springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892springmvc-150923124312-lva1-app6892
springmvc-150923124312-lva1-app6892
 
Gdg dev fest hybrid apps your own mini-cordova
Gdg dev fest hybrid apps  your own mini-cordovaGdg dev fest hybrid apps  your own mini-cordova
Gdg dev fest hybrid apps your own mini-cordova
 
TDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring CloudTDC2016SP - Construindo Microserviços usando Spring Cloud
TDC2016SP - Construindo Microserviços usando Spring Cloud
 
Vaadin 7 CN
Vaadin 7 CNVaadin 7 CN
Vaadin 7 CN
 
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
A Microsoft Silverlight User Group Starter Kit Made Available for Everyone to...
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 

Mehr von buildacloud

L4-L7 services for SDN and NVF by Youcef Laribi
L4-L7 services for SDN and NVF by Youcef LaribiL4-L7 services for SDN and NVF by Youcef Laribi
L4-L7 services for SDN and NVF by Youcef Laribibuildacloud
 
Intro to Zenoss by Andrew Kirch
Intro to Zenoss by Andrew KirchIntro to Zenoss by Andrew Kirch
Intro to Zenoss by Andrew Kirchbuildacloud
 
Guaranteeing Storage Performance by Mike Tutkowski
Guaranteeing Storage Performance by Mike TutkowskiGuaranteeing Storage Performance by Mike Tutkowski
Guaranteeing Storage Performance by Mike Tutkowskibuildacloud
 
Managing infrastructure with Application Policy by Mike Cohen
Managing infrastructure with Application Policy by Mike CohenManaging infrastructure with Application Policy by Mike Cohen
Managing infrastructure with Application Policy by Mike Cohenbuildacloud
 
Intro to Zenoss by Andrew Kirch
Intro to Zenoss by Andrew KirchIntro to Zenoss by Andrew Kirch
Intro to Zenoss by Andrew Kirchbuildacloud
 
Monitoring CloudStack in context with Converged Infrastructure by Mike Turnlund
Monitoring CloudStack in context with Converged Infrastructure by Mike TurnlundMonitoring CloudStack in context with Converged Infrastructure by Mike Turnlund
Monitoring CloudStack in context with Converged Infrastructure by Mike Turnlundbuildacloud
 
Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reesebuildacloud
 
Enterprise grade firewall and ssl termination to ac by will stevens
Enterprise grade firewall and ssl termination to ac by will stevensEnterprise grade firewall and ssl termination to ac by will stevens
Enterprise grade firewall and ssl termination to ac by will stevensbuildacloud
 
State of the cloud by reuven cohen
State of the cloud by reuven cohenState of the cloud by reuven cohen
State of the cloud by reuven cohenbuildacloud
 
Securing Your Cloud With the Xen Hypervisor by Russell Pavlicek
Securing Your Cloud With the Xen Hypervisor by Russell PavlicekSecuring Your Cloud With the Xen Hypervisor by Russell Pavlicek
Securing Your Cloud With the Xen Hypervisor by Russell Pavlicekbuildacloud
 
DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack buildacloud
 
Cloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper ContrailCloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper Contrailbuildacloud
 
Ian rae panel cloud stack & cloud storage where are we at, and where do we ne...
Ian rae panel cloud stack & cloud storage where are we at, and where do we ne...Ian rae panel cloud stack & cloud storage where are we at, and where do we ne...
Ian rae panel cloud stack & cloud storage where are we at, and where do we ne...buildacloud
 
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski buildacloud
 
CloudStack University by Sebastien Goasguen
CloudStack University by Sebastien GoasguenCloudStack University by Sebastien Goasguen
CloudStack University by Sebastien Goasguenbuildacloud
 
Building Scalable, Resilient Infrastructure on CloudStack by Sebastian Stadil
Building Scalable, Resilient Infrastructure on CloudStack by Sebastian StadilBuilding Scalable, Resilient Infrastructure on CloudStack by Sebastian Stadil
Building Scalable, Resilient Infrastructure on CloudStack by Sebastian Stadilbuildacloud
 
Cloudstack Continuous Delivery
Cloudstack Continuous DeliveryCloudstack Continuous Delivery
Cloudstack Continuous Deliverybuildacloud
 
SDN in CloudStack
SDN in CloudStackSDN in CloudStack
SDN in CloudStackbuildacloud
 
Apalia/Amysta Cloud Usage Metering and Billing
Apalia/Amysta Cloud Usage Metering and BillingApalia/Amysta Cloud Usage Metering and Billing
Apalia/Amysta Cloud Usage Metering and Billingbuildacloud
 
BtrCloud CloudStack Plugin
BtrCloud CloudStack PluginBtrCloud CloudStack Plugin
BtrCloud CloudStack Pluginbuildacloud
 

Mehr von buildacloud (20)

L4-L7 services for SDN and NVF by Youcef Laribi
L4-L7 services for SDN and NVF by Youcef LaribiL4-L7 services for SDN and NVF by Youcef Laribi
L4-L7 services for SDN and NVF by Youcef Laribi
 
Intro to Zenoss by Andrew Kirch
Intro to Zenoss by Andrew KirchIntro to Zenoss by Andrew Kirch
Intro to Zenoss by Andrew Kirch
 
Guaranteeing Storage Performance by Mike Tutkowski
Guaranteeing Storage Performance by Mike TutkowskiGuaranteeing Storage Performance by Mike Tutkowski
Guaranteeing Storage Performance by Mike Tutkowski
 
Managing infrastructure with Application Policy by Mike Cohen
Managing infrastructure with Application Policy by Mike CohenManaging infrastructure with Application Policy by Mike Cohen
Managing infrastructure with Application Policy by Mike Cohen
 
Intro to Zenoss by Andrew Kirch
Intro to Zenoss by Andrew KirchIntro to Zenoss by Andrew Kirch
Intro to Zenoss by Andrew Kirch
 
Monitoring CloudStack in context with Converged Infrastructure by Mike Turnlund
Monitoring CloudStack in context with Converged Infrastructure by Mike TurnlundMonitoring CloudStack in context with Converged Infrastructure by Mike Turnlund
Monitoring CloudStack in context with Converged Infrastructure by Mike Turnlund
 
Rest api design by george reese
Rest api design by george reeseRest api design by george reese
Rest api design by george reese
 
Enterprise grade firewall and ssl termination to ac by will stevens
Enterprise grade firewall and ssl termination to ac by will stevensEnterprise grade firewall and ssl termination to ac by will stevens
Enterprise grade firewall and ssl termination to ac by will stevens
 
State of the cloud by reuven cohen
State of the cloud by reuven cohenState of the cloud by reuven cohen
State of the cloud by reuven cohen
 
Securing Your Cloud With the Xen Hypervisor by Russell Pavlicek
Securing Your Cloud With the Xen Hypervisor by Russell PavlicekSecuring Your Cloud With the Xen Hypervisor by Russell Pavlicek
Securing Your Cloud With the Xen Hypervisor by Russell Pavlicek
 
DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack DevCloud - Setup and Demo on Apache CloudStack
DevCloud - Setup and Demo on Apache CloudStack
 
Cloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper ContrailCloud Network Virtualization with Juniper Contrail
Cloud Network Virtualization with Juniper Contrail
 
Ian rae panel cloud stack & cloud storage where are we at, and where do we ne...
Ian rae panel cloud stack & cloud storage where are we at, and where do we ne...Ian rae panel cloud stack & cloud storage where are we at, and where do we ne...
Ian rae panel cloud stack & cloud storage where are we at, and where do we ne...
 
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
 
CloudStack University by Sebastien Goasguen
CloudStack University by Sebastien GoasguenCloudStack University by Sebastien Goasguen
CloudStack University by Sebastien Goasguen
 
Building Scalable, Resilient Infrastructure on CloudStack by Sebastian Stadil
Building Scalable, Resilient Infrastructure on CloudStack by Sebastian StadilBuilding Scalable, Resilient Infrastructure on CloudStack by Sebastian Stadil
Building Scalable, Resilient Infrastructure on CloudStack by Sebastian Stadil
 
Cloudstack Continuous Delivery
Cloudstack Continuous DeliveryCloudstack Continuous Delivery
Cloudstack Continuous Delivery
 
SDN in CloudStack
SDN in CloudStackSDN in CloudStack
SDN in CloudStack
 
Apalia/Amysta Cloud Usage Metering and Billing
Apalia/Amysta Cloud Usage Metering and BillingApalia/Amysta Cloud Usage Metering and Billing
Apalia/Amysta Cloud Usage Metering and Billing
 
BtrCloud CloudStack Plugin
BtrCloud CloudStack PluginBtrCloud CloudStack Plugin
BtrCloud CloudStack Plugin
 

Kürzlich hochgeladen

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
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
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
 
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
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 

Kürzlich hochgeladen (20)

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
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
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
 
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
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Cloud Application Blueprints with Apache Brooklyn by Alex Henevald

  • 1. Application Management with Apache Brooklyn Alex Heneveld @ahtweetin CTO & Co-Founder, Cloudsoft Committer, Apache Brooklyn Build-a-Cloud Day Vegas, Oct 2014
  • 2. © 2014 Cloudsoft Corporation Mission 2 !! Simplify application deployment and management with composable blueprints, leveraging the best tools for server config, cloud, and monitoring. ! Apache Brooklyn is the only autonomic open source multi-cloud application management platform. !
  • 4. The Brooklyn Approach push-button deployment
  • 5. The Brooklyn Approach ongoing management
  • 6. The Brooklyn Approach open extensible framework
  • 8. Benefits — Reliability autonomic management built-in!
  • 11. name: MyWebCluster © 2014 Cloudsoft Corporation Multi-Tier Application — Blueprint YAML 11 services: - type: WebAppCluster brooklyn.config: wars.root: hello-db.war http.port: 8080+ java.sysprops: db.url: $brooklyn:component("db"). attributeWhenReady("database.url") - type: MySqlNode id: db brooklyn.config: creation.script: hello-db.sql
  • 12. name: MyWebCluster services: - type: WebAppCluster brooklyn.config: wars.root: hello-db.war http.port: 8080+ java.sysprops: db.url: $brooklyn:component("db"). attributeWhenReady("database.url") policies: - type: AutoScaler sensor: webapp.reqs.sec range: [100,200] © 2014 Cloudsoft Corporation Multi-Tier Application — Blueprint YAML 12 - type: MySqlNode id: db brooklyn.config: creation.script: hello-db.sql
  • 13. name: MyWebCluster services: - type: WebAppCluster brooklyn.config: wars.root: hello-db.war http.port: 8080+ java.sysprops: db.url: $brooklyn:component("db"). attributeWhenReady("database.url") policies: - type: AutoScaler sensor: webapp.reqs.sec range: [100,200] © 2014 Cloudsoft Corporation Multi-Tier Application — Blueprint YAML 13 - type: MySqlNode id: db brooklyn.config: creation.script: hello-db.sql location: jclouds:cloudstack:http://10.4.88.16:9999/client/api
  • 14. © 2014 Cloudsoft Corporation More Blueprint YAML — Cassandra Cluster 14 name: cassandra-cluster-app ! services: - type: brooklyn.entity.nosql.cassandra.CassandraCluster name: Cassandra Cluster brooklyn.config: cluster.initial.size: 5 cluster.initial.quorumSize: 3 provisioning.properties: minCores: 4 minRam: 8192 ! location: softlayer:sjc01
  • 15. © 2014 Cloudsoft Corporation MyWebCluster 15 [targets] Auto Scaler Policy … MyWebCluster ControlledDynamicWebAppCluster DynamicWebAppCluster JBoss7Server NGINX MySQL JBoss7Server
  • 16. Define New Blueprint public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override public void init() { !!! // TODO build the application !! ! } } Type to enter text © 2014 Cloudsoft Corporation 16
  • 17. Create App Tier public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override public void init() { !!! JBoss7Server web = addChild( EntitySpecs.spec(JBoss7Server.class) Type to enter text .configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) ); ! ! } } Type to enter © 2014 Cloudsoft Corporation 17
  • 18. Configure App Tier Type to enter Type to enter text public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override public void init() { !!! JBoss7Server web = addChild( EntitySpecs.spec(JBoss7Server.class) .configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) .configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) ); ! } } © 2014 Cloudsoft Corporation 18
  • 19. © 2014 Cloudsoft Corporation Add DB Tier public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override public void init() { MySqlNode mysql = addChild( EntitySpecs.spec(MySqlNode.class) .configure(MySqlNode.CREATION_SCRIPT_URL, getConfig(DB_SETUP_SQL_URL)) ); ! JBoss7Server web = addChild( EntitySpecs.spec(JBoss7Server.class) .configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) .configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) ); ! } } Type to enter Type to enter text
  • 20. © 2014 Cloudsoft Corporation Wire up App and DB Tiers public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override public void init() { MySqlNode mysql = addChild( EntitySpecs.spec(MySqlNode.class) .configure(MySqlNode.CREATION_SCRIPT_URL, getConfig(DB_SETUP_SQL_URL)) ); ! JBoss7Server web = addChild( EntitySpecs.spec(JBoss7Server.class) .configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) .configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) .configure(JavaEntityMethods.javaSysProp("brooklyn.example.db.url"), formatString("jdbc:%s%s?user=%s&password=%s", attributeWhenReady(mysql, MySqlNode.MYSQL_URL), DB_TABLE, DB_USERNAME, DB_PASSWORD)) ); ! } } Type to enter Type to enter text
  • 21. © 2014 Cloudsoft Corporation Introduce Elasticity in App Tier public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override public void init() { MySqlNode mysql = addChild( EntitySpecs.spec(MySqlNode.class) .configure(MySqlNode.CREATION_SCRIPT_URL, getConfig(DB_SETUP_SQL_URL)) ); ! ControlledDynamicWebAppCluster web = addChild( EntitySpecs.spec(ControlledDynamicWebAppCluster.class) .configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) .configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) .configure(JavaEntityMethods.javaSysProp("brooklyn.example.db.url"), formatString("jdbc:%s%s?user=%s&password=%s", attributeWhenReady(mysql, MySqlNode.MYSQL_URL), DB_TABLE, DB_USERNAME, DB_PASSWORD)) ); ! } } Type to enter text Type to enter text Type to enter Type
  • 22. © 2014 Cloudsoft Corporation Customize Elasticity in App Tier public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override public void init() { MySqlNode mysql = addChild( EntitySpecs.spec(MySqlNode.class) .configure(MySqlNode.CREATION_SCRIPT_URL, getConfig(DB_SETUP_SQL_URL)) ); ! ControlledDynamicWebAppCluster web = addChild( EntitySpecs.spec(ControlledDynamicWebAppCluster.class) .configure(JavaWebAppService.ROOT_WAR, getConfig(WAR_PATH)) .configure(WebAppService.HTTP_PORT, PortRanges.fromString("8080+")) .configure(JavaEntityMethods.javaSysProp("brooklyn.example.db.url"), formatString("jdbc:%s%s?user=%s&password=%s", attributeWhenReady(mysql, MySqlNode.MYSQL_URL), DB_TABLE, DB_USERNAME, DB_PASSWORD)) .configure(DynamicCluster.INITIAL_SIZE, 2) ); } } Type to enter text Type to enter text Type to enter Type Type to enter
  • 23. © 2014 Cloudsoft Corporation Add Policies and KPI’s public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { @Override 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()); ! Type to enter text Type to enter text Type to enter Type Type to enter text Type to enter addEnricher(SensorPropagatingEnricher.newInstanceListeningTo(web, ROOT_URL, REQUESTS_PER_SECOND_IN_WINDOW, REQUEST_LATENCY_IN_SECONDS_IN_WINDOW)); } }
  • 24. © 2014 Cloudsoft Corporation Test New Blueprint 24