SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Otto Jongerius Build Engineering @ Atlassian
@xzu
Fireballs, Icebats and
1,000,000 Plugins
PuppetCamp Tokyo - May 2014
Continuous Delivery
(a refresher)
Develop => Build => Test => Release!
Continuous Delivery
(a refresher)
Develop => Build => Test => Release!
smaller change delta
more feedback
faster feedback
automated upgrade smaller magnitude of failure
Our happy path
0
200
400
600
800
2011 2012 2013 2014 2015
Deployments/year
quarterly fortnightly weekly
daily
many/day
A little bit of history…
A little bit of history…
0
12500
25000
37500
50000
October 2011 June 2012 January 2013 June 2013 April 2014
50.000
32.000
24.000
15.000
500
Approximate number of OnDemand instances
A little bit of history…
Atlassian Application
Application Core
Application
Bundled
Plugins
plugin1 plugin2
plugin3 plugin4
pluginN
A little bit of history…
Atlassian Application
Application Core
Application
Bundled
Plugins
plugin1 plugin2
plugin3 plugin4
pluginN
Alice
Bob
Charlie
Dave
Ed
Frank
Gerry
A little bit of history…
bash$ cat jira/pom.xml
…
<dependency>
<groupId>com.atlassian.jira</groupId>
<artifactId>jira-api</artifactId>
<version>${project.version}</version>
</dependency>
…
A little bit of history…
Atlassian Application
Application Core
Application
Bundled
Plugins
plugin1 plugin2
plugin3 plugin4
pluginN
Atlassian Application
Application Core
Application
Bundled
Plugins
plugin1 plugin2
plugin3 plugin4
pluginN
Atlassian Application
Application Core
Application
Bundled
Plugins
plugin1 plugin2
plugin3 plugin4
pluginN
Enter the fireball
Enter the fireball
bash$ cat fireball/pom.xml
…
<dependency>
<GroupId>${jira.group.id}</GroupId>
<artifactId>${jira.war.artifact.id}</artifactId>
<version>${jira.war.version}</version>
…
</dependency>
…
Launching the fireball
OpenVZ Container
Postgres
Apache
Confluence
JIRA
Bamboo
Crowd
CustomerInstance
NFS
Launching the fireball
Datacenter
Rack Rack Rack RackRack
Rack Rack Rack RackRack
Rack Rack Rack RackRack
Rack Rack Rack RackRack
Rack
Launching the fireball
bash$ sudo /path/to/new.version/install.sh
INSTALLED_SERVICES=“postgres jira bamboo confluence crowd apache”
for service in ${INSTALLED_SERVICES}; do
/path/to/new.version/$service/install.sh
done
…
OR
http://www.flickr.com/photos/64577732@N00/1414883135http://www.flickr.com/photos/44124473769@N01/292642699
Launching the fireball
Right?
A little bit of history…
jira/install.sh
postgres/install.sh
confluence/
install.sh
bamboo/
install.sh
crowd/install.sh
* (over) simplified model
A little bit of history…
jira/install.sh
postgres/install.sh
confluence/
install.sh
bamboo/
install.sh
crowd/install.sh
* (over) simplified model
A little bit of history…
jira/install.sh
postgres/install.sh
confluence/
install.sh
bamboo/
install.sh
crowd/install.sh
* (over) simplified model
http://www.flickr.com/photos/64577732@N00/1414883135
A little bit of history…
http://www.flickr.com/photos/7337467@N04/3051244623
Our happy path
0
200
400
600
800
2011 2012 2013 2014 2015
Deployments/year Progress
quarterly fortnightly weekly
daily
many/day
You are here
A little bit of history…
Atlassian Application
Application Core
Application
Bundled
Plugins
plugin1 plugin2
plugin3 plugin4
pluginN
Alice
Bob
Charlie
Dave
Ed
Frank
Gerry
Enter the icebat
Fire + Ball
Ice + Bat
Enter the icebat
j2ee-app
jira
postgres
crowd
confluence
bamboo
apache
j2ee-plugin
vendor plugin
Enter the icebat
j2ee-app
jira
postgres
crowd
confluence
bamboo
apache
j2ee-plugin
vendor plugin
Enter the icebat
j2ee-app
jira
postgres
crowd
confluence
bamboo
apache
j2ee-plugin
vendor plugin
Enter the icebat
j2ee-app
jira
postgres
crowd
confluence
bamboo
apache
j2ee-plugin
vendor plugin
Enter the icebat
j2ee-app
jira
postgres
crowd
confluence
bamboo
apache
j2ee-plugin
vendor plugin
postgres
Enter the icebat
j2ee-app
jira
postgres
crowd
confluence
bamboo
apache
j2ee-plugin
vendor plugin
postgres5.4
6.1
5.0
2.7.5
1.1
hiera-versions.yaml
Enter the icebat
Development
5.4m3
6.2-snapshot
5.1-m1
2.7.5-m6
1.2.1-snapshot
hiera-versions.yaml
Dogfooding Production
5.4m2.1
6.1m7
5.1
2.7.5-m5
1.2hiera-versions.yaml
5.4m2
6.1m6
5.0-m1
2.7.5-m2
1.1-m1
hiera-versions.yaml
Local overrides
global configuration
datacenter configuration
rack configuration
local configuration
http://www.flickr.com/photos/streamishmc/4936051/
Hard Labour
Jason ‘Mechanical Turk’ Birch
The Great Leap Forward
The Great Leap Forward
The Great Leap Forward
Applications
The Great Leap Forward
Plugins
The Great Leap Forward
Environments
The Great Leap Forward
Versions
The great leap forward
The great leap forward
“client”
The great leap forward
“client”
facter
environment
licensed products
The great leap forward
“client”
facter
environment
licensed products
manifesto
The great leap forward
“client”
facter
environment
licensed products
puppet
apply
manifesto
Our happy path
0
200
400
600
800
2011 2012 2013 2014-01 2014-12 2015
Deployments/year Progress
quarterly fortnightly weekly
many/week
many/day
You are here
twice daily
Next Steps
• Onboard everything into Manifesto, such that development teams control their own destinies
• Automated acceptance testing
• Fault tolerance for manifesto
• Dark feature (feature flags) control within Manifesto/icebat
Special thanks to…
Ryan Thomas
Jason Birch
Matt Moor
Thanks!
Dev OpsDevs who can OpOps who can Dev
We’re hiring!
atlassian.com/jobs
(or speak to me)

Más contenido relacionado

Similar a Puppet Camp Tokyo 2014: Fireballs, ice bats and 1,000,000 plugins: a story of continuous delivery

Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013
Aaron Blythe
 

Similar a Puppet Camp Tokyo 2014: Fireballs, ice bats and 1,000,000 plugins: a story of continuous delivery (20)

Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013
 
Joomla Day Austin Part 4
Joomla Day Austin Part 4Joomla Day Austin Part 4
Joomla Day Austin Part 4
 
DevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as CodeDevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as Code
 
[Rakuten TechConf2014] [Fukuoka] Security checking which is as a part of Cont...
[Rakuten TechConf2014] [Fukuoka] Security checking which is as a part of Cont...[Rakuten TechConf2014] [Fukuoka] Security checking which is as a part of Cont...
[Rakuten TechConf2014] [Fukuoka] Security checking which is as a part of Cont...
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
Eclipse platform news and how to contribute to the Eclipse Open Source project
Eclipse platform news and how to contribute to the Eclipse Open Source projectEclipse platform news and how to contribute to the Eclipse Open Source project
Eclipse platform news and how to contribute to the Eclipse Open Source project
 
Basic architecuture and operation concept of Backlog and Cacoo
Basic architecuture and operation concept of Backlog and CacooBasic architecuture and operation concept of Backlog and Cacoo
Basic architecuture and operation concept of Backlog and Cacoo
 
DevOps Note 20120224
DevOps Note 20120224DevOps Note 20120224
DevOps Note 20120224
 
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at OoyalaCassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
Cassandra Meetup: Real-time Analytics using Cassandra, Spark and Shark at Ooyala
 
Reark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJavaReark : a Reference Architecture for Android using RxJava
Reark : a Reference Architecture for Android using RxJava
 
Introducing to node.js
Introducing to node.jsIntroducing to node.js
Introducing to node.js
 
Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020Adopt openjdk and how it impacts you in 2020
Adopt openjdk and how it impacts you in 2020
 
クリエイティブの視点から挑戦するPWA
クリエイティブの視点から挑戦するPWAクリエイティブの視点から挑戦するPWA
クリエイティブの視点から挑戦するPWA
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
Io 2018
Io 2018Io 2018
Io 2018
 
Drupalcampatl d7
Drupalcampatl d7Drupalcampatl d7
Drupalcampatl d7
 
Titanium Alloy Tutorial
Titanium Alloy TutorialTitanium Alloy Tutorial
Titanium Alloy Tutorial
 

Más de Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 

Más de Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Puppet Camp Tokyo 2014: Fireballs, ice bats and 1,000,000 plugins: a story of continuous delivery