SlideShare a Scribd company logo
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
public class MyWebCluster extends AbstractApplication
implements MyWebClusterConstants {

    // TODO build the application

}
public class MyWebCluster extends AbstractApplication
implements MyWebClusterConstants {

    def web = new JBoss7Server(this, war: WAR_PATH);

    {
        web.configure(httpPort: "8080+");
    }

}
public class MyWebCluster extends AbstractApplication
implements MyWebClusterConstants {

    def web = new JBoss7Server(this, war: WAR_PATH);
    MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL);

    {
        web.configure(httpPort: "8080+");
    }

}
public class MyWebCluster extends AbstractApplication
implements MyWebClusterConstants {

    def web = new JBoss7Server(this, war: WAR_PATH);
    MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL);

    {
        web.configure(httpPort: "8080+").
          configure(javaSysProp("brooklyn.example.db.url"),
            valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl));
    }

}
public class MyWebCluster extends AbstractApplication
implements MyWebClusterConstants {

    def web = new ControlledDynamicWebAppCluster(this, war: WAR_PATH);
    MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL);

    {
        web.factory.configure(httpPort: "8080+").
          configure(javaSysProp("brooklyn.example.db.url"),
            valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl));
    }

}
public class MyWebCluster extends AbstractApplication
implements MyWebClusterConstants {

    def web = new ControlledDynamicWebAppCluster(this, war: WAR_PATH);
    MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL);

    {
        web.factory.configure(httpPort: "8080+").
          configure(javaSysProp("brooklyn.example.db.url"),
            valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl));

        web.cluster.addPolicy(
          new AutoscalerPolicy(DynamicWebAppCluster.AVERAGE_REQUESTS_PER_SECOND).
            setSizeRange(1, 5).
            setMetricRange(10, 100));
    }

}
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control
Cloudcamp scotland - Using cloud without losing control

More Related Content

What's hot (20)

Do something in 5 with gas 7-email log
Do something in 5 with gas 7-email logDo something in 5 with gas 7-email log
Do something in 5 with gas 7-email log
Bruce McPherson
 
Adventures in Multithreaded Core Data
Adventures in Multithreaded Core DataAdventures in Multithreaded Core Data
Adventures in Multithreaded Core Data
Inferis
 
Bkbiet day2 & 3
Bkbiet day2 & 3Bkbiet day2 & 3
Bkbiet day2 & 3
mihirio
 
Do something in 5 with gas 8-copy between databases
Do something in 5 with gas 8-copy between databasesDo something in 5 with gas 8-copy between databases
Do something in 5 with gas 8-copy between databases
Bruce McPherson
 
Data backup
Data backupData backup
Data backup
Mu Chun Wang
 
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Bruce McPherson
 
End to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux SagaEnd to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux Saga
Babacar NIANG
 
Insight QUBE concept
Insight QUBE conceptInsight QUBE concept
Insight QUBE concept
Insight Technology, Inc.
 
Do something in 5 with apps scripts number 6 - fusion crossfilter
Do something in 5 with apps scripts number 6 - fusion crossfilterDo something in 5 with apps scripts number 6 - fusion crossfilter
Do something in 5 with apps scripts number 6 - fusion crossfilter
Bruce McPherson
 
The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...
The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...
The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...
Ben Teese
 
React nocojs
React nocojsReact nocojs
React nocojs
Mark Morris
 
Multi-threaded CoreData Done Right
Multi-threaded CoreData Done RightMulti-threaded CoreData Done Right
Multi-threaded CoreData Done Right
morrowa_de
 
Nestjs MasterClass Slides
Nestjs MasterClass SlidesNestjs MasterClass Slides
Nestjs MasterClass Slides
Nir Kaufman
 
Deploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in OpenshiftDeploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in Openshift
Alexander Rubin
 
Mule esb db component
Mule esb db componentMule esb db component
Mule esb db component
D.Rajesh Kumar
 
Grails Controllers
Grails ControllersGrails Controllers
Grails Controllers
NexThoughts Technologies
 
Do something in 5 with gas 9-copy between databases with oauth2
Do something in 5 with gas 9-copy between databases with oauth2Do something in 5 with gas 9-copy between databases with oauth2
Do something in 5 with gas 9-copy between databases with oauth2
Bruce McPherson
 
Openstack taskflow 簡介
Openstack taskflow 簡介Openstack taskflow 簡介
Openstack taskflow 簡介
kao kuo-tung
 
Fetch records from mysql using mule esb
Fetch records from mysql using mule esbFetch records from mysql using mule esb
Fetch records from mysql using mule esb
AnilKumar Etagowni
 
Fetch data from form
Fetch data from formFetch data from form
Fetch data from form
Shahriar Malik
 
Do something in 5 with gas 7-email log
Do something in 5 with gas 7-email logDo something in 5 with gas 7-email log
Do something in 5 with gas 7-email log
Bruce McPherson
 
Adventures in Multithreaded Core Data
Adventures in Multithreaded Core DataAdventures in Multithreaded Core Data
Adventures in Multithreaded Core Data
Inferis
 
Bkbiet day2 & 3
Bkbiet day2 & 3Bkbiet day2 & 3
Bkbiet day2 & 3
mihirio
 
Do something in 5 with gas 8-copy between databases
Do something in 5 with gas 8-copy between databasesDo something in 5 with gas 8-copy between databases
Do something in 5 with gas 8-copy between databases
Bruce McPherson
 
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Do something useful in Apps Script 5. Get your analytics pageviews to a sprea...
Bruce McPherson
 
End to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux SagaEnd to end todo list app with NestJs - Angular - Redux & Redux Saga
End to end todo list app with NestJs - Angular - Redux & Redux Saga
Babacar NIANG
 
Do something in 5 with apps scripts number 6 - fusion crossfilter
Do something in 5 with apps scripts number 6 - fusion crossfilterDo something in 5 with apps scripts number 6 - fusion crossfilter
Do something in 5 with apps scripts number 6 - fusion crossfilter
Bruce McPherson
 
The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...
The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...
The Return of JavaScript: 3 Open-Source Projects that are driving JavaScript'...
Ben Teese
 
Multi-threaded CoreData Done Right
Multi-threaded CoreData Done RightMulti-threaded CoreData Done Right
Multi-threaded CoreData Done Right
morrowa_de
 
Nestjs MasterClass Slides
Nestjs MasterClass SlidesNestjs MasterClass Slides
Nestjs MasterClass Slides
Nir Kaufman
 
Deploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in OpenshiftDeploying Percona XtraDB Cluster in Openshift
Deploying Percona XtraDB Cluster in Openshift
Alexander Rubin
 
Do something in 5 with gas 9-copy between databases with oauth2
Do something in 5 with gas 9-copy between databases with oauth2Do something in 5 with gas 9-copy between databases with oauth2
Do something in 5 with gas 9-copy between databases with oauth2
Bruce McPherson
 
Openstack taskflow 簡介
Openstack taskflow 簡介Openstack taskflow 簡介
Openstack taskflow 簡介
kao kuo-tung
 
Fetch records from mysql using mule esb
Fetch records from mysql using mule esbFetch records from mysql using mule esb
Fetch records from mysql using mule esb
AnilKumar Etagowni
 

Viewers also liked (14)

Quality control in a cloudy world
Quality control in a cloudy worldQuality control in a cloudy world
Quality control in a cloudy world
Duncan Johnston-Watt
 
C21st Alchemy - Spinning Clouds & Weaving Magic
C21st Alchemy - Spinning Clouds & Weaving MagicC21st Alchemy - Spinning Clouds & Weaving Magic
C21st Alchemy - Spinning Clouds & Weaving Magic
Duncan Johnston-Watt
 
Openstack Summit Paris - Clocker Lightning talk - Nov 3
Openstack Summit Paris - Clocker Lightning talk - Nov 3Openstack Summit Paris - Clocker Lightning talk - Nov 3
Openstack Summit Paris - Clocker Lightning talk - Nov 3
Duncan Johnston-Watt
 
From Plaything to Production - Cloud Foundry Summit Shanghai 2015
From Plaything to Production - Cloud Foundry Summit Shanghai 2015From Plaything to Production - Cloud Foundry Summit Shanghai 2015
From Plaything to Production - Cloud Foundry Summit Shanghai 2015
Duncan Johnston-Watt
 
Working together - Cloud Foundry Unconference Lightning Talk
Working together - Cloud Foundry Unconference Lightning TalkWorking together - Cloud Foundry Unconference Lightning Talk
Working together - Cloud Foundry Unconference Lightning Talk
Duncan Johnston-Watt
 
From Plaything to Production - Defrag 2015
From Plaything to Production - Defrag 2015From Plaything to Production - Defrag 2015
From Plaything to Production - Defrag 2015
Duncan Johnston-Watt
 
ApacheCon NA 2015: Warning! May Contain Clouds
ApacheCon NA 2015: Warning! May Contain CloudsApacheCon NA 2015: Warning! May Contain Clouds
ApacheCon NA 2015: Warning! May Contain Clouds
Duncan Johnston-Watt
 
LinuxCon 2015 Keynote: Warning - May contain clouds!
LinuxCon 2015 Keynote: Warning - May contain clouds!LinuxCon 2015 Keynote: Warning - May contain clouds!
LinuxCon 2015 Keynote: Warning - May contain clouds!
Duncan Johnston-Watt
 
Enterprise Cloud Forum - Monaco - #DCE2014 - Keynote
Enterprise Cloud Forum - Monaco - #DCE2014 - KeynoteEnterprise Cloud Forum - Monaco - #DCE2014 - Keynote
Enterprise Cloud Forum - Monaco - #DCE2014 - Keynote
Duncan Johnston-Watt
 
RICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
RICON 2014 Running Riak in a Docker Cloud using Apache BrooklynRICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
RICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
Duncan Johnston-Watt
 
Modeling, Deploying & Managing Applications on IBM Blue Box with Cloudsoft AMP
Modeling, Deploying & Managing Applications on IBM Blue Box with Cloudsoft AMPModeling, Deploying & Managing Applications on IBM Blue Box with Cloudsoft AMP
Modeling, Deploying & Managing Applications on IBM Blue Box with Cloudsoft AMP
Duncan Johnston-Watt
 
从玩具到生产 - Cloud Foundry 上海峰会2015年
从玩具到生产 - Cloud Foundry 上海峰会2015年从玩具到生产 - Cloud Foundry 上海峰会2015年
从玩具到生产 - Cloud Foundry 上海峰会2015年
Duncan Johnston-Watt
 
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Gluecon 2016 Keynote: Deploying and Managing Blockchain ApplicationsGluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Duncan Johnston-Watt
 
Defrag X Keynote: Deploying and managing Global Blockchain Network
Defrag X Keynote: Deploying and managing Global Blockchain NetworkDefrag X Keynote: Deploying and managing Global Blockchain Network
Defrag X Keynote: Deploying and managing Global Blockchain Network
Duncan Johnston-Watt
 
C21st Alchemy - Spinning Clouds & Weaving Magic
C21st Alchemy - Spinning Clouds & Weaving MagicC21st Alchemy - Spinning Clouds & Weaving Magic
C21st Alchemy - Spinning Clouds & Weaving Magic
Duncan Johnston-Watt
 
Openstack Summit Paris - Clocker Lightning talk - Nov 3
Openstack Summit Paris - Clocker Lightning talk - Nov 3Openstack Summit Paris - Clocker Lightning talk - Nov 3
Openstack Summit Paris - Clocker Lightning talk - Nov 3
Duncan Johnston-Watt
 
From Plaything to Production - Cloud Foundry Summit Shanghai 2015
From Plaything to Production - Cloud Foundry Summit Shanghai 2015From Plaything to Production - Cloud Foundry Summit Shanghai 2015
From Plaything to Production - Cloud Foundry Summit Shanghai 2015
Duncan Johnston-Watt
 
Working together - Cloud Foundry Unconference Lightning Talk
Working together - Cloud Foundry Unconference Lightning TalkWorking together - Cloud Foundry Unconference Lightning Talk
Working together - Cloud Foundry Unconference Lightning Talk
Duncan Johnston-Watt
 
From Plaything to Production - Defrag 2015
From Plaything to Production - Defrag 2015From Plaything to Production - Defrag 2015
From Plaything to Production - Defrag 2015
Duncan Johnston-Watt
 
ApacheCon NA 2015: Warning! May Contain Clouds
ApacheCon NA 2015: Warning! May Contain CloudsApacheCon NA 2015: Warning! May Contain Clouds
ApacheCon NA 2015: Warning! May Contain Clouds
Duncan Johnston-Watt
 
LinuxCon 2015 Keynote: Warning - May contain clouds!
LinuxCon 2015 Keynote: Warning - May contain clouds!LinuxCon 2015 Keynote: Warning - May contain clouds!
LinuxCon 2015 Keynote: Warning - May contain clouds!
Duncan Johnston-Watt
 
Enterprise Cloud Forum - Monaco - #DCE2014 - Keynote
Enterprise Cloud Forum - Monaco - #DCE2014 - KeynoteEnterprise Cloud Forum - Monaco - #DCE2014 - Keynote
Enterprise Cloud Forum - Monaco - #DCE2014 - Keynote
Duncan Johnston-Watt
 
RICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
RICON 2014 Running Riak in a Docker Cloud using Apache BrooklynRICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
RICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
Duncan Johnston-Watt
 
Modeling, Deploying & Managing Applications on IBM Blue Box with Cloudsoft AMP
Modeling, Deploying & Managing Applications on IBM Blue Box with Cloudsoft AMPModeling, Deploying & Managing Applications on IBM Blue Box with Cloudsoft AMP
Modeling, Deploying & Managing Applications on IBM Blue Box with Cloudsoft AMP
Duncan Johnston-Watt
 
从玩具到生产 - Cloud Foundry 上海峰会2015年
从玩具到生产 - Cloud Foundry 上海峰会2015年从玩具到生产 - Cloud Foundry 上海峰会2015年
从玩具到生产 - Cloud Foundry 上海峰会2015年
Duncan Johnston-Watt
 
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Gluecon 2016 Keynote: Deploying and Managing Blockchain ApplicationsGluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Gluecon 2016 Keynote: Deploying and Managing Blockchain Applications
Duncan Johnston-Watt
 
Defrag X Keynote: Deploying and managing Global Blockchain Network
Defrag X Keynote: Deploying and managing Global Blockchain NetworkDefrag X Keynote: Deploying and managing Global Blockchain Network
Defrag X Keynote: Deploying and managing Global Blockchain Network
Duncan Johnston-Watt
 

Similar to Cloudcamp scotland - Using cloud without losing control (20)

Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex HenevaldCloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
buildacloud
 
Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6
Michael Plöd
 
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
Ayman Mahfouz
 
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code ExampleMaven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
Nikhil Bhalwankar
 
Demystifying AJAX Callback Commands in Drupal 8
Demystifying AJAX Callback Commands in Drupal 8Demystifying AJAX Callback Commands in Drupal 8
Demystifying AJAX Callback Commands in Drupal 8
Michael Miles
 
Spring data iii
Spring data iiiSpring data iii
Spring data iii
명철 강
 
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
DK Lee
 
Serverless archtiectures
Serverless archtiecturesServerless archtiectures
Serverless archtiectures
Iegor Fadieiev
 
Mobile Day - React Native
Mobile Day - React NativeMobile Day - React Native
Mobile Day - React Native
Software Guru
 
Drupal8Day: Demystifying Drupal 8 Ajax Callback commands
Drupal8Day: Demystifying Drupal 8 Ajax Callback commandsDrupal8Day: Demystifying Drupal 8 Ajax Callback commands
Drupal8Day: Demystifying Drupal 8 Ajax Callback commands
Michael Miles
 
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 201910 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 2019
Matt Raible
 
How to replace rails asset pipeline with webpack?
How to replace rails asset pipeline with webpack?How to replace rails asset pipeline with webpack?
How to replace rails asset pipeline with webpack?
Tomasz Bak
 
Scala based Lift Framework
Scala based Lift FrameworkScala based Lift Framework
Scala based Lift Framework
vhazrati
 
Overview Of Lift Framework
Overview Of Lift FrameworkOverview Of Lift Framework
Overview Of Lift Framework
Xebia IT Architects
 
Overview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web FrameworkOverview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web Framework
IndicThreads
 
Backbone js
Backbone jsBackbone js
Backbone js
Rohan Chandane
 
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays
 
Spring 3: What's New
Spring 3: What's NewSpring 3: What's New
Spring 3: What's New
Ted Pennings
 
Introduction to hexagonal architecture
Introduction to hexagonal architectureIntroduction to hexagonal architecture
Introduction to hexagonal architecture
Manel Sellés
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
Vincenzo Barone
 
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex HenevaldCloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
buildacloud
 
Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6Integrating Wicket with Java EE 6
Integrating Wicket with Java EE 6
Michael Plöd
 
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
Ayman Mahfouz
 
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code ExampleMaven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
Maven + Jsf + Richfaces + Jxl + Jdbc - Complete Code Example
Nikhil Bhalwankar
 
Demystifying AJAX Callback Commands in Drupal 8
Demystifying AJAX Callback Commands in Drupal 8Demystifying AJAX Callback Commands in Drupal 8
Demystifying AJAX Callback Commands in Drupal 8
Michael Miles
 
Spring data iii
Spring data iiiSpring data iii
Spring data iii
명철 강
 
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
자바 웹 개발 시작하기 (1주차 : 웹 어플리케이션 체험 실습)
DK Lee
 
Serverless archtiectures
Serverless archtiecturesServerless archtiectures
Serverless archtiectures
Iegor Fadieiev
 
Mobile Day - React Native
Mobile Day - React NativeMobile Day - React Native
Mobile Day - React Native
Software Guru
 
Drupal8Day: Demystifying Drupal 8 Ajax Callback commands
Drupal8Day: Demystifying Drupal 8 Ajax Callback commandsDrupal8Day: Demystifying Drupal 8 Ajax Callback commands
Drupal8Day: Demystifying Drupal 8 Ajax Callback commands
Michael Miles
 
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 201910 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 2019
10 Excellent Ways to Secure Your Spring Boot Application - Devoxx Morocco 2019
Matt Raible
 
How to replace rails asset pipeline with webpack?
How to replace rails asset pipeline with webpack?How to replace rails asset pipeline with webpack?
How to replace rails asset pipeline with webpack?
Tomasz Bak
 
Scala based Lift Framework
Scala based Lift FrameworkScala based Lift Framework
Scala based Lift Framework
vhazrati
 
Overview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web FrameworkOverview of The Scala Based Lift Web Framework
Overview of The Scala Based Lift Web Framework
IndicThreads
 
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays LIVE Australia 2020 - Building distributed systems on the shoulders o...
apidays
 
Spring 3: What's New
Spring 3: What's NewSpring 3: What's New
Spring 3: What's New
Ted Pennings
 
Introduction to hexagonal architecture
Introduction to hexagonal architectureIntroduction to hexagonal architecture
Introduction to hexagonal architecture
Manel Sellés
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
Vincenzo Barone
 

More from Duncan Johnston-Watt (6)

Running Hyperledger Sawtooth in Production - Hyperledger Global Forum 2018
Running Hyperledger Sawtooth in Production - Hyperledger Global Forum 2018Running Hyperledger Sawtooth in Production - Hyperledger Global Forum 2018
Running Hyperledger Sawtooth in Production - Hyperledger Global Forum 2018
Duncan Johnston-Watt
 
ScotChain18 - C21st Alchemy - Blockchain & Open Source
ScotChain18  - C21st Alchemy - Blockchain & Open SourceScotChain18  - C21st Alchemy - Blockchain & Open Source
ScotChain18 - C21st Alchemy - Blockchain & Open Source
Duncan Johnston-Watt
 
Delivering a packaged Blockchain platform for developers using Hyperledger Sa...
Delivering a packaged Blockchain platform for developers using Hyperledger Sa...Delivering a packaged Blockchain platform for developers using Hyperledger Sa...
Delivering a packaged Blockchain platform for developers using Hyperledger Sa...
Duncan Johnston-Watt
 
OpenStack Summit: How companies of all sizes leverage OpenStack based private...
OpenStack Summit: How companies of all sizes leverage OpenStack based private...OpenStack Summit: How companies of all sizes leverage OpenStack based private...
OpenStack Summit: How companies of all sizes leverage OpenStack based private...
Duncan Johnston-Watt
 
Deploying and Managing Global Blockchain Networks
Deploying and Managing Global Blockchain Networks Deploying and Managing Global Blockchain Networks
Deploying and Managing Global Blockchain Networks
Duncan Johnston-Watt
 
Deploying and Managing a Global Blockchain Network
Deploying and Managing a Global Blockchain NetworkDeploying and Managing a Global Blockchain Network
Deploying and Managing a Global Blockchain Network
Duncan Johnston-Watt
 
Running Hyperledger Sawtooth in Production - Hyperledger Global Forum 2018
Running Hyperledger Sawtooth in Production - Hyperledger Global Forum 2018Running Hyperledger Sawtooth in Production - Hyperledger Global Forum 2018
Running Hyperledger Sawtooth in Production - Hyperledger Global Forum 2018
Duncan Johnston-Watt
 
ScotChain18 - C21st Alchemy - Blockchain & Open Source
ScotChain18  - C21st Alchemy - Blockchain & Open SourceScotChain18  - C21st Alchemy - Blockchain & Open Source
ScotChain18 - C21st Alchemy - Blockchain & Open Source
Duncan Johnston-Watt
 
Delivering a packaged Blockchain platform for developers using Hyperledger Sa...
Delivering a packaged Blockchain platform for developers using Hyperledger Sa...Delivering a packaged Blockchain platform for developers using Hyperledger Sa...
Delivering a packaged Blockchain platform for developers using Hyperledger Sa...
Duncan Johnston-Watt
 
OpenStack Summit: How companies of all sizes leverage OpenStack based private...
OpenStack Summit: How companies of all sizes leverage OpenStack based private...OpenStack Summit: How companies of all sizes leverage OpenStack based private...
OpenStack Summit: How companies of all sizes leverage OpenStack based private...
Duncan Johnston-Watt
 
Deploying and Managing Global Blockchain Networks
Deploying and Managing Global Blockchain Networks Deploying and Managing Global Blockchain Networks
Deploying and Managing Global Blockchain Networks
Duncan Johnston-Watt
 
Deploying and Managing a Global Blockchain Network
Deploying and Managing a Global Blockchain NetworkDeploying and Managing a Global Blockchain Network
Deploying and Managing a Global Blockchain Network
Duncan Johnston-Watt
 

Cloudcamp scotland - Using cloud without losing control

  • 15. public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { // TODO build the application }
  • 16. public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new JBoss7Server(this, war: WAR_PATH); { web.configure(httpPort: "8080+"); } }
  • 17. public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new JBoss7Server(this, war: WAR_PATH); MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL); { web.configure(httpPort: "8080+"); } }
  • 18. public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new JBoss7Server(this, war: WAR_PATH); MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL); { web.configure(httpPort: "8080+"). configure(javaSysProp("brooklyn.example.db.url"), valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl)); } }
  • 19. public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new ControlledDynamicWebAppCluster(this, war: WAR_PATH); MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL); { web.factory.configure(httpPort: "8080+"). configure(javaSysProp("brooklyn.example.db.url"), valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl)); } }
  • 20. public class MyWebCluster extends AbstractApplication implements MyWebClusterConstants { def web = new ControlledDynamicWebAppCluster(this, war: WAR_PATH); MySqlNode mysql = new MySqlNode(this, creationScriptUrl: DB_SETUP_SQL_URL); { web.factory.configure(httpPort: "8080+"). configure(javaSysProp("brooklyn.example.db.url"), valueWhenAttributeReady(mysql, MySqlNode.MYSQL_URL, this.&makeJdbcUrl)); web.cluster.addPolicy( new AutoscalerPolicy(DynamicWebAppCluster.AVERAGE_REQUESTS_PER_SECOND). setSizeRange(1, 5). setMetricRange(10, 100)); } }

Editor's Notes

  • #6: Entities/Managed ElementsConcrete – AMP wrapper for component e.g. JBoss7Server, MySQLAbstract – AMP specific construct e.g. Cluster, FabricTopologyGrouping – clusters, fabrics etc
  • #9: Typically a multi-tier application like this is managed using scripts. These operate at three different levels – Cluster; Load Balanced Cluster and Multi-Tier Application itself. The challenge with this approach is figuring out the relationships between these (and how to phase them) so that in a dynamic environment the Cluster knows about the MySql instance which is part of the overall Application and NGINX knows about the Cluster and so on.In AMP we recognize this hierarchy explicitly but instead of scripting/phasing we create a model or blueprint for the application.
  • #23: Launch localhost demo at this point