Peter Leschev presented on how the Build Engineering team at Atlassian scaled their continuous integration infrastructure to handle a massive increase in builds from 21k per month to over 150k per month. Some key things they did were adopting infrastructure as code practices with Puppet, building stateless build agents, monitoring Bamboo servers, and using tools like Packer, Terraform, and self-service portals to improve reliability and developer experience at scale.
16. Disturbed role
Knowledge Transfer
when switching between project /
disturbed roles is difficult
More project work
Non-disturbed can focus on larger tasks
Context switching
Reduction in duplication of effort,
promotes collaboration within the team
2 week rotation
20. Disturbed for
Dev & Infra
Too interrupt driven
To encourage knowledge transfer
between infra & dev
Staggered changeovers
Minimising disruption due to context
switching
Disturbed pairing
Couldn’t handle smaller customer
raised requests & interrupt driven
work
47. • Coding on Puppet Master
• Culture of manually modifying production - Configuration Drift
• Impact on Builds
Using Staging for Development
puppetmaster
build agents
staging puppet environment
53. The Pets: you give nice names, you stroke
them, and when they get ill, you nurse them
back to health, taking a long time over it.
“
”
The Cattle: you give them numbers. When
they get ill, you shoot them TIM BELL, CERN
57. • Faster local provisioning
• Different class of problems found
• Closer to production
Delta Provisioning
‘from scratch’ provision ‘delta’ provision
provisionVM
exportVM fileshare
importVM box
provisionVM
on success
61. • Puppet runs impacted running builds
• Disabling all the build agents
• Manually performing the roll out
• git clone / librarian-puppet / symlink update on puppetmaster
• Kick off puppet on all the build agents
• Enabling all the build agents
• Set of Puppet environments for every Bamboo server
Painful Puppet Rollouts
81. Plan
Templates
Checked into SCM
Bamboo Plugin:
Reusable snippets
changes can be code reviewed
Export plans for backup, or move to
another Bamboo instance easily
Bulk changes
Export existing plans
Update 100s of job requirements with
a single commit
86. Bamboo
Monitoring
Plugin
Metrics to graphite
Bamboo Plugin:
Bamboo Health
ActiveMQ, Database connections,
Tomcat, JVM Memory usage.
Background thread workers. Number
of plans / plan branches, plans / plan
branches for deletion.
93. Bamboo Plugins
‘Continuous Plugin Deployment’ Task
This text box is not intended to
contain a bunch of copy.
1-click upgrades of
Available agents
Available agents Destination server
TASK 1
TASK 2
Task list Available agentsTask list
Task list
Production
Available agents Destination server
TASK 1
TASK 2
Task list
How artifacts work
1.3
1.0
1.31.3
Produc
Developm
1.31.3
Development
Release notes
Repository Build artifacts Release
How artifacts work
1.3
Build results
(Artifacts)
Release Environments
1.0
1.31.3
Production
Development
1.31.3
Development
Release notes
Repository Build artifacts Release
How artifacts work
1.3
1.0
1.31.3
Production
Development
1.31.3
Development
Artifacts
Ve
Test &
Build
JIRA
issue
Commit TriggerCode
Release notes
Repository Build artifacts Release
All Bamboo Servers
How artifacts work
1.3
Build results
(Artifacts)
Release Environments
1.0
1.31.3
Production
Development
1.31.3
Development
Repository Build artifacts Release
build
Deploy
How artifacts work
1.3
1.0
1.31.3
Production
Developmen
1.31.3
Development
Repository Build artifacts Release
build & test AMIs
Build
https://marketplace.atlassian.com/plugins/com.atlassian.bamboo.plugins.deploy.continuous-plugin-deployment
94. Bamboo Servers
1-click upgrades of
Using scp / ssh & puppet
Available agents
Available agents Destination server
TASK 1
TASK 2
TASK 1
TASK 2
Task list Available agents
TASK 1
TASK 2
Task list
Task list
Production
Available agents Destination server
TASK 1
TASK 2
Task list
How artifacts work
1.3
Build results
(Artifacts)
Release Environments
De
1.0
1.31.3
Production
Development
1.31.3
Development
Repository Build artifacts Release
How artifacts work
1.3
1.3
1.3
Build results
(Artifacts)
Release Environments
Development
1.0
1.31.3
Production
Development
1.31.3
Development
Release notes
Repository Build artifacts Release
How artifacts work
1.3
1.0
1.31.3
Production
Development
1.31.3
Development
Artifacts
Versio
Test &JIRA
Release notes
Repository Build artifacts Release
How artifacts work
1
1.3
1.3
Build results
(Artifacts)
Release Environments
Development
1.0
1.31.3
Production
Development
1.31.3
Development
Repository Build artifacts Release
Upgrade Bamboo
1.3
1.0
1.31.3
Production
Development
1.31.3
Development
Repository Build artifacts Release
Build Bamboo
1.3
Build results
(Artifacts)
Release Environm
D
Repository Build artifacts
1.0
1.3
1.3
1.3
Build results
(Artifacts)
Release Environments
Production
Development
Repository Build artifacts Release
jira-bamboo
servicedesk-bamboo