Continuous integration is the lifeblood of any software house and extremely important in a fast-growing organisation like Atlassian. You'll hear about how the build engineering team have scaled their team, infrastructure and Bamboo over their four-year journey of continuous improvement to provide a build platform and services used internally within the organization. You'll hear about how the team has grown from three engineers servicing 300 Atlassians to 12 engineers handling over 1300 Atlassians, handling challenges such as balancing firefighting and project work. You'll hear how we've come from infrastructure that was a group of pets, to cattle, then to stateless machines; how we manage our internal Bamboo instances, balancing dogfooding new milestones and providing a critical service to the organization.
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
21. 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
48. • Coding on Puppet Master
• Culture of manually modifying production - Configuration Drift
• Impact on Builds
Using Staging for Development
puppetmaster
build agents
staging puppet environment
54. 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
58. • 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
62. • 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
82. 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
87. 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.
https://marketplace.atlassian.com/plugins/com.atlassian.bamboo.plugin.bamboo-monitoring-plugin
94. 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
95. 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