SlideShare a Scribd company logo
1 of 47
Download to read offline
apache brooklyn 
What it is and why you 
might use it 
Richard Downer 
richard@apache.org 
Presented at ApacheCon Europe 2014
apache brooklyn 
A brief history of Brooklyn 
• Brooklyn was started by Cloudsoft (my employer) 
• Open sourced in April 2012 (Apache 2 license) 
• Joined the Apache Incubator in May 2014
apache brooklyn The only slide about 
the company 
• Cloudsoft use Apache Brooklyn was the base for 
AMP: Application Management Platform 
• Provide commercial support and special integrations 
for Brooklyn 
• Brooklyn is not “open core”: Cloudsoft is committed to a 
comprehensive and expanding Apache Brooklyn 
feature list and codebase 
…but we won’t talk about Cloudsoft any more
apache brooklyn 
The problem with Brooklyn: 
How to 
describe it 
in one 
sentence
apache brooklyn 
Application modelling, 
monitoring and management
apache brooklyn 
BLUEPRINT FOR SUCCESS! 
Model, monitor and manage your applications 
with policy-based automation
apache brooklyn 
These taglines 
• Are accurate 
• Are short (mostly) 
• Fail to provide any useful insight into 
what Brooklyn actually does
apache brooklyn 
Let’s describe by example 
• A simple web application: 
• JBoss web app container 
• MySQL database 
JBoss 
MySQL
apache brooklyn 
In development… 
• You could set up your JBoss and MySQL: 
• Run them on localhost 
• Use Vagrant to start to two virtual machines 
• Provision a couple of cloud instances 
• JBoss needs to locate MySQL 
• Easy enough to configure this by hand
apache brooklynBut what about 
QA and production? 
• A single web server and a single 
database is not a production 
grade configuration! 
• It’s not scalable: it can’t handle 
heavy load 
• It’s not resilient: it can’t handle 
failures 
• So we add multiple JBosses 
• …and a load balancer 
• …and a MySQL standby node 
Load 
Balancer 
JBoss JBoss 
JBoss 
MySQL 
MySQL 
Hot Standby
apache brooklyn 
But wait, there’s still more 
• This is just for a simple application of a web server and 
a database! 
• What about something with: 
• Multiple tiers and services 
• Connected by a message queue 
• With multiple types of database backend - 
SQL and NoSQL
apache brooklyn 
More complexity 
JBoss JBoss 
JBoss 
Service B 
MySQL 
Load 
Balancer 
MySQL 
Hot Standby 
Service A 
NoSQL store 
shard 
NoSQL store 
shard 
NoSQL store 
shard 
Message 
Broker
apache brooklyn 
The first problem 
• How do you deploy an app with multiple components? 
• How do you get the servers to deploy onto? 
• How do you get the software onto servers? 
• How do you configure the software pieces to talk to each 
other? 
• How do you make this process fast, easy and automatable? 
With apache brooklyn, of course!
apache brooklyn 
The First Pillar of Brooklyn 
Deployment and wiring
apache brooklyn 
Obligatory page full of logos
apache brooklyn Blueprints: 
how to deploy with Brooklyn 
• Describe your application to Brooklyn - 
make a blueprint 
• Describe the components you are using 
• Describe how they must be configured 
• Describe how they relate to each other 
• Describe where they are to be deployed
apache brooklyn Blueprint for our 
simple example 
name: My Web Application 
location: AWS_eu-west-1 
services: 
- serviceType: brooklyn.entity.database.mysql.MySqlNode 
id: db 
name: My DB 
brooklyn.config: 
creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script 
- serviceType: brooklyn.entity.webapp.jboss.JBoss7Server 
name: My Web 
brooklyn.config: 
wars.root: http://bit.ly/brooklyn-example-helloworld-war 
java.sysprops: 
brooklyn.example.db.url: > 
$brooklyn:formatString("jdbc:%s%s?user=%s&password=%s", 
component("db").attributeWhenReady("datastore.url"), 
"visitors", "brooklyn", "br00k11n")
apache brooklyn A demonstration 
of deployment 
Watching at home? Go to: 
http://youtu.be/0iJ18tlaOQk
apache brooklyn 
Anatomy of an application 
Application 
Entity
apache brooklyn 
Anatomy of an entity
apache brooklyn 
Anatomy of an entity
apache brooklyn 
Anatomy of an entity
apache brooklyn 
Anatomy of an entity
apache brooklyn 
Anatomy of an entity
apache brooklyn 
Anatomy of an entity
apache brooklyn Make it a load-balanced 
web cluster 
name: My Web Application 
location: AWS_eu-west-1 
services: 
- serviceType: brooklyn.entity.database.mysql.MySqlNode 
id: db 
name: My DB 
brooklyn.config: 
creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script 
- serviceType: brooklyn.entity.webapp.jboss.JBoss7Server 
name: My Web 
brooklyn.config: 
ControlledDynamicWebAppCluster 
wars.root: http://bit.ly/brooklyn-example-helloworld-war 
java.sysprops: 
brooklyn.example.db.url: > 
$brooklyn:formatString("jdbc:%s%s?user=%s&password=%s", 
component("db").attributeWhenReady("datastore.url"), 
"visitors", "brooklyn", "br00k11n")
apache brooklyn Make it a load-balanced 
web cluster
apache brooklyn 
Locations 
• Fully “cloud aware” using 
Apache jclouds 
• Amazon EC2, CloudStack, OpenStack, SoftLayer, Google GCE, … 
• Provisions instances on demand, installs and 
customises; de-provisions when no longer required 
• Or use “BYON” - bring your own nodes 
• Or, for testing, deploy to localhost
apache brooklyn 
Locations 
• Multiple locations 
• Multi-geography deployments reduce latency to 
International users 
• “Fabrics” replicate an application topology into different 
regions 
• Geography-aware DNS routes visitors to closest server 
• Availability zone awareness 
• Clusters can distribute their members across 
availability zones
apache brooklyn 
The Second Pillar of Brooklyn 
Deployment and wiring Runtime management
apache brooklyn What is 
runtime management? 
• Deployment is merely the opening move in the game 
• Runtime management is… 
• Instructions to change the deployed application 
• Monitor the health of all the components and react to 
failures 
• Monitor the load on the components and react to 
rising and falling demand 
• Optimise for cost, responsiveness, and more
apache brooklyn 
Policies 
• Something that will make changes to the application 
without requiring operator intervention 
• Policies are attached to an entity 
• Monitor the entity’s sensor data and other information 
• Makes changes to the application by invoking effectors 
on the entity
apache brooklyn Demonstration and 
descriptions of some policies 
Watching at home? Go to: 
http://youtu.be/-WdbiDpZ8-g
apache brooklyn 
Blueprint for a policy 
brooklyn.policies: 
- type: brooklyn.policy.ha.ServiceReplacer 
- type: brooklyn.policy.autoscaling.AutoScalerPolicy 
brooklyn.config: 
metric: $brooklyn:sensor("brooklyn.entity.webapp.ControlledDynamicWebAppCluster", 
"webapp.reqs.perSec.windowed") 
metricLowerBound: 10 
metricLowerBound: 100 
minPoolSize: 2 
maxPoolSize: 5 
dynamiccluster.zone.enable: true 
dynamiccluster.numAvailabilityZones: 2 
memberSpec: 
$brooklyn:entitySpec: 
type: brooklyn.entity.webapp.jboss.JBoss7Server 
brooklyn.enrichers: 
- type: brooklyn.policy.ha.ServiceFailureDetector 
brooklyn.policies: 
- type: brooklyn.policy.ha.ServiceRestarter 
brooklyn.config: 
failOnRecurringFailuresInThisDuration: 30 minutes
apache brooklyn 
More policies 
• Optimise to minimise latency to the users: 
entities are moved to locations close to the users on 
the network (“follow the sun”) 
• Optimise to minimise costs: 
entities are moved to locations offering the lowest 
prices (“follow the moon”) 
• Policies can be based on anything measurable!
apache brooklyn 
The Foundation of Brooklyn 
Deployment and wiring Runtime management 
Autonomic computing
apache brooklyn 
Autonomic computing refers to the self-managing characteristics of 
distributed computing resources, adapting to unpredictable changes while 
hiding intrinsic complexity to operators and users […] The system makes 
decisions on its own, using high-level policies; it will constantly check and 
optimize its status and automatically adapt itself to changing conditions. An 
autonomic computing framework is composed of autonomic components 
(AC) interacting with each other […] with sensors (for self-monitoring), 
effectors (for self-adjustment), knowledge and planner/adapter for 
exploiting policies based on self- and environment awareness. 
https://en.wikipedia.org/wiki/Autonomic_computing
apache brooklyn 
The bluffer’s guide to autonomic 
computing in Brooklyn 
• The autonomic components are the entities 
• Entities have: 
• Sensors, which provide data to the external world 
• Effectors, which cause the entity to change in some way 
• Sensor data drives policies; 
policies drive effectors to make changes; 
a continually-adapting feedback loop 
• Management can happen locally at the entity; 
or be escalated up the tree to be managed there
apache brooklyn 
The status of 
Apache Brooklyn
apache brooklyn 
Status update 
• Version 0.7.0-M1 last before incubation 
• Entered Apache Incubator in May 2014 
• Version 0.7.0-M2-incubating expected imminently 
• Final 0.7.0 expected by year end 
• Code is still in rapid development pre-1.0
apache brooklyn 
Status update 
• 6 committers/PPMC members 
• 10 mentors 
• A number of additional developers 
• A number of commercial customers (via Cloudsoft) 
• A number of academic users 
• but we are still a small community
apache brooklyn 
How to help 
• We need a bigger and more diverse community 
• …so please join us! 
• Download and run, try out deployments 
• Share your experiences on the mailing list 
• Bug reports, code contributions, documentation 
contributions 
• Tell us how to make it better!
apache brooklyn 
Where to find us 
• Official website: https://brooklyn.incubator.apache.org 
• Mailing list: 
dev-subscribe@brooklyn.incubator.apache.org 
https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/ 
• Source code: 
https://github.com/apache/incubator-brooklyn 
or https://git-wip-us.apache.org/repos/asf?p=incubator-brooklyn.git 
• IRC channel: #brooklyncentral on Freenode
apache brooklyn 
Questions
apache brooklyn 
We are hiring! 
• Cloudsoft are looking for great software engineers 
• To work on Apache Brooklyn and other open source projects, 
and with our commercial clients who are putting it into 
production 
• Brooklyn is written in Java with a JavaScript front-end, but 
Java/JavaScript experience not an issue - because we know 
that great software engineers can adapt and learn 
• Location not an issue - we have a distributed team 
jobs@cloudsoft.io
apache brooklyn 
Stay tuned for: 
Clocker: 
Migrating Complex Applications To Docker 
With Apache Brooklyn 
Presented by Andrew Kennedy, Cloudsoft 
Next presentation in this room
apache brooklyn 
Thank you! 
Richard Downer 
richard@apache.org - richard@cloudsoft.io 
Twitter: @FrontierTown

More Related Content

Recently uploaded

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Recently uploaded (20)

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Featured

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

Featured (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Apache Brooklyn - what it is and why you might use it

  • 1. apache brooklyn What it is and why you might use it Richard Downer richard@apache.org Presented at ApacheCon Europe 2014
  • 2. apache brooklyn A brief history of Brooklyn • Brooklyn was started by Cloudsoft (my employer) • Open sourced in April 2012 (Apache 2 license) • Joined the Apache Incubator in May 2014
  • 3. apache brooklyn The only slide about the company • Cloudsoft use Apache Brooklyn was the base for AMP: Application Management Platform • Provide commercial support and special integrations for Brooklyn • Brooklyn is not “open core”: Cloudsoft is committed to a comprehensive and expanding Apache Brooklyn feature list and codebase …but we won’t talk about Cloudsoft any more
  • 4. apache brooklyn The problem with Brooklyn: How to describe it in one sentence
  • 5. apache brooklyn Application modelling, monitoring and management
  • 6. apache brooklyn BLUEPRINT FOR SUCCESS! Model, monitor and manage your applications with policy-based automation
  • 7. apache brooklyn These taglines • Are accurate • Are short (mostly) • Fail to provide any useful insight into what Brooklyn actually does
  • 8. apache brooklyn Let’s describe by example • A simple web application: • JBoss web app container • MySQL database JBoss MySQL
  • 9. apache brooklyn In development… • You could set up your JBoss and MySQL: • Run them on localhost • Use Vagrant to start to two virtual machines • Provision a couple of cloud instances • JBoss needs to locate MySQL • Easy enough to configure this by hand
  • 10. apache brooklynBut what about QA and production? • A single web server and a single database is not a production grade configuration! • It’s not scalable: it can’t handle heavy load • It’s not resilient: it can’t handle failures • So we add multiple JBosses • …and a load balancer • …and a MySQL standby node Load Balancer JBoss JBoss JBoss MySQL MySQL Hot Standby
  • 11. apache brooklyn But wait, there’s still more • This is just for a simple application of a web server and a database! • What about something with: • Multiple tiers and services • Connected by a message queue • With multiple types of database backend - SQL and NoSQL
  • 12. apache brooklyn More complexity JBoss JBoss JBoss Service B MySQL Load Balancer MySQL Hot Standby Service A NoSQL store shard NoSQL store shard NoSQL store shard Message Broker
  • 13. apache brooklyn The first problem • How do you deploy an app with multiple components? • How do you get the servers to deploy onto? • How do you get the software onto servers? • How do you configure the software pieces to talk to each other? • How do you make this process fast, easy and automatable? With apache brooklyn, of course!
  • 14. apache brooklyn The First Pillar of Brooklyn Deployment and wiring
  • 15. apache brooklyn Obligatory page full of logos
  • 16. apache brooklyn Blueprints: how to deploy with Brooklyn • Describe your application to Brooklyn - make a blueprint • Describe the components you are using • Describe how they must be configured • Describe how they relate to each other • Describe where they are to be deployed
  • 17. apache brooklyn Blueprint for our simple example name: My Web Application location: AWS_eu-west-1 services: - serviceType: brooklyn.entity.database.mysql.MySqlNode id: db name: My DB brooklyn.config: creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script - serviceType: brooklyn.entity.webapp.jboss.JBoss7Server name: My Web brooklyn.config: wars.root: http://bit.ly/brooklyn-example-helloworld-war java.sysprops: brooklyn.example.db.url: > $brooklyn:formatString("jdbc:%s%s?user=%s&password=%s", component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
  • 18. apache brooklyn A demonstration of deployment Watching at home? Go to: http://youtu.be/0iJ18tlaOQk
  • 19. apache brooklyn Anatomy of an application Application Entity
  • 20. apache brooklyn Anatomy of an entity
  • 21. apache brooklyn Anatomy of an entity
  • 22. apache brooklyn Anatomy of an entity
  • 23. apache brooklyn Anatomy of an entity
  • 24. apache brooklyn Anatomy of an entity
  • 25. apache brooklyn Anatomy of an entity
  • 26. apache brooklyn Make it a load-balanced web cluster name: My Web Application location: AWS_eu-west-1 services: - serviceType: brooklyn.entity.database.mysql.MySqlNode id: db name: My DB brooklyn.config: creationScriptUrl: https://bit.ly/brooklyn-visitors-creation-script - serviceType: brooklyn.entity.webapp.jboss.JBoss7Server name: My Web brooklyn.config: ControlledDynamicWebAppCluster wars.root: http://bit.ly/brooklyn-example-helloworld-war java.sysprops: brooklyn.example.db.url: > $brooklyn:formatString("jdbc:%s%s?user=%s&password=%s", component("db").attributeWhenReady("datastore.url"), "visitors", "brooklyn", "br00k11n")
  • 27. apache brooklyn Make it a load-balanced web cluster
  • 28. apache brooklyn Locations • Fully “cloud aware” using Apache jclouds • Amazon EC2, CloudStack, OpenStack, SoftLayer, Google GCE, … • Provisions instances on demand, installs and customises; de-provisions when no longer required • Or use “BYON” - bring your own nodes • Or, for testing, deploy to localhost
  • 29. apache brooklyn Locations • Multiple locations • Multi-geography deployments reduce latency to International users • “Fabrics” replicate an application topology into different regions • Geography-aware DNS routes visitors to closest server • Availability zone awareness • Clusters can distribute their members across availability zones
  • 30. apache brooklyn The Second Pillar of Brooklyn Deployment and wiring Runtime management
  • 31. apache brooklyn What is runtime management? • Deployment is merely the opening move in the game • Runtime management is… • Instructions to change the deployed application • Monitor the health of all the components and react to failures • Monitor the load on the components and react to rising and falling demand • Optimise for cost, responsiveness, and more
  • 32. apache brooklyn Policies • Something that will make changes to the application without requiring operator intervention • Policies are attached to an entity • Monitor the entity’s sensor data and other information • Makes changes to the application by invoking effectors on the entity
  • 33. apache brooklyn Demonstration and descriptions of some policies Watching at home? Go to: http://youtu.be/-WdbiDpZ8-g
  • 34. apache brooklyn Blueprint for a policy brooklyn.policies: - type: brooklyn.policy.ha.ServiceReplacer - type: brooklyn.policy.autoscaling.AutoScalerPolicy brooklyn.config: metric: $brooklyn:sensor("brooklyn.entity.webapp.ControlledDynamicWebAppCluster", "webapp.reqs.perSec.windowed") metricLowerBound: 10 metricLowerBound: 100 minPoolSize: 2 maxPoolSize: 5 dynamiccluster.zone.enable: true dynamiccluster.numAvailabilityZones: 2 memberSpec: $brooklyn:entitySpec: type: brooklyn.entity.webapp.jboss.JBoss7Server brooklyn.enrichers: - type: brooklyn.policy.ha.ServiceFailureDetector brooklyn.policies: - type: brooklyn.policy.ha.ServiceRestarter brooklyn.config: failOnRecurringFailuresInThisDuration: 30 minutes
  • 35. apache brooklyn More policies • Optimise to minimise latency to the users: entities are moved to locations close to the users on the network (“follow the sun”) • Optimise to minimise costs: entities are moved to locations offering the lowest prices (“follow the moon”) • Policies can be based on anything measurable!
  • 36. apache brooklyn The Foundation of Brooklyn Deployment and wiring Runtime management Autonomic computing
  • 37. apache brooklyn Autonomic computing refers to the self-managing characteristics of distributed computing resources, adapting to unpredictable changes while hiding intrinsic complexity to operators and users […] The system makes decisions on its own, using high-level policies; it will constantly check and optimize its status and automatically adapt itself to changing conditions. An autonomic computing framework is composed of autonomic components (AC) interacting with each other […] with sensors (for self-monitoring), effectors (for self-adjustment), knowledge and planner/adapter for exploiting policies based on self- and environment awareness. https://en.wikipedia.org/wiki/Autonomic_computing
  • 38. apache brooklyn The bluffer’s guide to autonomic computing in Brooklyn • The autonomic components are the entities • Entities have: • Sensors, which provide data to the external world • Effectors, which cause the entity to change in some way • Sensor data drives policies; policies drive effectors to make changes; a continually-adapting feedback loop • Management can happen locally at the entity; or be escalated up the tree to be managed there
  • 39. apache brooklyn The status of Apache Brooklyn
  • 40. apache brooklyn Status update • Version 0.7.0-M1 last before incubation • Entered Apache Incubator in May 2014 • Version 0.7.0-M2-incubating expected imminently • Final 0.7.0 expected by year end • Code is still in rapid development pre-1.0
  • 41. apache brooklyn Status update • 6 committers/PPMC members • 10 mentors • A number of additional developers • A number of commercial customers (via Cloudsoft) • A number of academic users • but we are still a small community
  • 42. apache brooklyn How to help • We need a bigger and more diverse community • …so please join us! • Download and run, try out deployments • Share your experiences on the mailing list • Bug reports, code contributions, documentation contributions • Tell us how to make it better!
  • 43. apache brooklyn Where to find us • Official website: https://brooklyn.incubator.apache.org • Mailing list: dev-subscribe@brooklyn.incubator.apache.org https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/ • Source code: https://github.com/apache/incubator-brooklyn or https://git-wip-us.apache.org/repos/asf?p=incubator-brooklyn.git • IRC channel: #brooklyncentral on Freenode
  • 45. apache brooklyn We are hiring! • Cloudsoft are looking for great software engineers • To work on Apache Brooklyn and other open source projects, and with our commercial clients who are putting it into production • Brooklyn is written in Java with a JavaScript front-end, but Java/JavaScript experience not an issue - because we know that great software engineers can adapt and learn • Location not an issue - we have a distributed team jobs@cloudsoft.io
  • 46. apache brooklyn Stay tuned for: Clocker: Migrating Complex Applications To Docker With Apache Brooklyn Presented by Andrew Kennedy, Cloudsoft Next presentation in this room
  • 47. apache brooklyn Thank you! Richard Downer richard@apache.org - richard@cloudsoft.io Twitter: @FrontierTown