ESTHER ASENJO • BAMBOO DEV • ATLASSIAN • @STHREO
Games of Codes, the CI battle
A view behind the Atlassian curtains
Who am I?
Who am I?
Who am I?
Who am I?
Who am I?
Who am I?
Who am I?
Who am I?
Who am I?
Agenda
CI ANATOMY
THE CI BATTLE, IN ATLASSIAN
CI CULTURE
CI INTRODUCTION
THE CD BATTLE, IN ATLASSIAN
CONCLUSION
Continuous Integration is a software development practice where
members of a team integrate their work frequently. Each integration
is verified by an automated build to detect integration errors as
quickly as possible. This leads to significantly reduced integration
problems and allows a team to develop cohesive software more
rapidly.
”
“
MARTIN FOWLER, THOUGHTWORKS
HARDER.work it
HARDER.
BETTER.
work it
make it
HARDER.
BETTER.
FASTER.
work it
make it
do it
HARDER.
BETTER.
FASTER.
STRONGER.
work it
make it
do it
make us
HARDER processes
HARDER
BETTER
processes
quality
HARDER
BETTER
FASTER
processes
quality
delivery
HARDER
BETTER
FASTER
STRONGER
processes
quality
delivery
teams
Agenda
CI ANATOMY
THE CI BATTLE, IN ATLASSIAN
CI CULTURE
CI INTRODUCTION
THE CD BATTLE, IN ATLASSIAN
CONCLUSION
Atlassian, a software company
Atlassian, a software company
782 R&D Staff
Atlassian, a software company
782 R&D Staff
451 developers
Atlassian, a software company
782 R&D Staff
Products
451 developers
Atlassian, a software company
782 R&D Staff
Products
451 developers
Atlassian, a software company
782 R&D Staff
Products
451 developers
Atlassian, a software company
782 R&D Staff
Products
451 developers
Atlassian, a software company
782 R&D Staff
Products Services
www.atlassian.com
my.atlassian.com
451 developers
Atlassian, a software company
782 R&D Staff
Products Services
www.atlassian.com
my.atlassian.com
Ecosystem
451 developers
Continuous Integration
is a battle.
The Continuous Integration battle,
IT DOES NOT COUNT UNTIL IT’S SHIPPED
When you play the Game of Codes,
you ship or you fail.
Agenda
CI ANATOMY
THE CI BATTLE, IN ATLASSIAN
CI CULTURE
CI INTRODUCTION
THE CD BATTLE, IN ATLASSIAN
CONCLUSION
Infrastructure
Tools
Processes
People
Build Infrastructure
Engineering
Build Infrastructure
Engineering Collaboration
Build Infrastructure
Engineering Collaboration JIRA family
Build Infrastructure
Engineering Collaboration JIRA family Dev Tools
Build Infrastructure
Engineering Collaboration JIRA family Dev Tools
Internal
Services
Build Infrastructure
EcosystemEngineering Collaboration JIRA family Dev Tools
Internal
Services
Build Engineering
Build Infrastructure
EcosystemEngineering Collaboration JIRA family Dev Tools
Internal
Services
Build Infrastructure
Remote agents
Elastic agents Build infrastructure
EcosystemEngineering Collaboration JIRA family Dev Tools
Internal
Services
Build Engineering
Maven repositories
Maven repositories
EcosystemEngineering
Build Infrastructure
Collaboration JIRA family Dev Tools
Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
Build Engineering
Build Engineering
Maven repositories
EcosystemEngineering
Build Infrastructure
Collaboration JIRA family Dev Tools
Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
900elastic agents 20 AMIs
150
remote agents
Build Engineering
Maven repositories
EcosystemEngineering
Build Infrastructure
Collaboration JIRA family Dev Tools
Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
900elastic agents 20 AMIs
150
remote agents
6Nexus instances
Maven repositories
EcosystemEngineering
Build Infrastructure
Collaboration JIRA family Dev Tools
Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
150
remote agents
6Nexus instances
20 AMIs
20k
build plans
Build Engineering
900elastic agents
Maven repositories
EcosystemEngineering
Build Infrastructure
Collaboration JIRA family Dev Tools
Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
150
remote agents
6Nexus instances
20 AMIs
20k
build plans
120kbranch build plans
Build Engineering
900elastic agents
Maven repositories
EcosystemEngineering
Build Infrastructure
Collaboration JIRA family Dev Tools
Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
150
remote agents
6Nexus instances
20 AMIs
20k
build plans
120kbranch build plans
Build Engineering
900elastic agents3 years ago:
21k
builds / month
Maven repositories
EcosystemEngineering
Build Infrastructure
Collaboration JIRA family Dev Tools
Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
150
remote agents
6Nexus instances
20 AMIs
20k
build plans
120kbranch build plans
Build Engineering
900elastic agents3 years ago:
21k
builds / month
Nowadays:
127k
builds / month
Infrastructure
Tools
Processes
People
Processes Tools : A pipeline anatomy
Developer
Developer Commit
!
Processes Tools : A pipeline anatomy
Developer Commit Build
!
Processes Tools : A pipeline anatomy
Developer TestCommit Build
!
Processes Tools : A pipeline anatomy
Developer Test DeliverCommit Build
!
Processes Tools : A pipeline anatomy
Developer Test DeliverCommit Build
!
Processes Tools : A pipeline anatomy
MIKE ROBERTS, THOUGHTWORKS
Continuous Integration is more often
than what you think.
”
“
Confluence pipeline
!
!
Confluence pipeline
!
Confluence pipeline
!
Confluence pipeline
!
Confluence pipeline
!
Confluence pipeline
!
!
!
!
!
!!
!
! !
!
!
!
!
!
!
!
Confluence pipeline
!
!
!
!
!
!!
!
! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Confluence pipeline
!
!
!
!
!
!!
!
! !
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Confluence pipeline
1,5 days
100
developers
420
commits/day
20,000
tests
435
build plans
Deliver
Confluence pipeline
I’m not slacking off,
my build plans are still running.
“
”
ME
I’m not slacking off,
my build plans are queued.
“
”
DANIEL KJELLIN
I’m not slacking off,
my build plans are
CI challenges our processes
Green production-ready master Build plan branching
Long running branches Dark features
Big&slow test suite Build grid
Quick feedback Build strategy
CI challenges our processes
Green production-ready master Build plan branching
Long running branches Dark features
Big&slow test suite Build grid
Quick feedback Build strategy
CI challenges our processes
Green production-ready master Build plan branching
Long running branches Dark features
Big&slow test suite Build grid
Quick feedback Build strategy
CI challenges our processes
Green production-ready master Build plan branching
Long running branches Dark features
Big&slow test suite Build grid
Quick feedback Build strategy
Confluence pipeline strategy
+ +++ =
+ +++ =
Confluence pipeline strategy
+ +++ =
Confluence pipeline strategy
Core
Test Suite
+ +++ =
30 min
Confluence pipeline strategy
Core
Test Suite
90 min
Cloud
Test Suite
30 min
+ +++ =
Confluence pipeline strategy
Core
Test Suite
Full Test Suite
Performance testing
Cross-Platform testing
Ecosystem testing
Acceptance testing
1,5 days
90 min
Cloud
Test Suite
30 min
+ +++ =
Confluence pipeline strategy
Core
Test Suite
Confluence team
dog fooding
Full Test Suite
Performance testing
Cross-Platform testing
Ecosystem testing
Acceptance testing
1,5 days
1 per day
90 min
Cloud
Test Suite
30 min
+ +++ =
Confluence pipeline strategy
Core
Test Suite
Confluence team
dog fooding
Full Test Suite
Performance testing
Cross-Platform testing
Ecosystem testing
Acceptance testing
1,5 days
1 per day
Cloud release
Every 2 weeks*
90 min
Cloud
Test Suite
30 min
+ +++ =
Confluence pipeline strategy
Core
Test Suite
Confluence team
dog fooding
Full Test Suite
Performance testing
Cross-Platform testing
Ecosystem testing
Acceptance testing
1,5 days
1 per day
1 per week*
Atlassian
dog fooding
Cloud release
Every 2 weeks*
90 min
Cloud
Test Suite
30 min
+ +++ =
Confluence pipeline strategy
Core
Test Suite
Confluence team
dog fooding
Full Test Suite
Performance testing
Cross-Platform testing
Ecosystem testing
Acceptance testing
1,5 days
1 per day
1 per week*
Atlassian
dog fooding
Cloud release
Every 2 weeks*
Monthly bug fixing
Server release
Quarterly release
90 min
Cloud
Test Suite
30 min
+ +++ =
Confluence pipeline strategy
CI challenges Atlassian processes
User acceptance testing Dog fooding
Monolithic applications Plugin development
Plugin development Cross-compatibility pipelines
Cloud integration Cloud delivery pipeline
CI challenges Atlassian processes
User acceptance testing Dog fooding
Monolithic applications Plugin development
Plugin development Cross-compatibility pipelines
Cloud integration Cloud delivery pipeline
CI challenges Atlassian processes
User acceptance testing Dog fooding
Monolithic applications Plugin development
Plugin development Cross-compatibility pipelines
Cloud integration Cloud delivery pipeline
CI challenges our processes
User acceptance testing Dog fooding
Monolithic applications Plugin development
Plugin development Cross-compatibility pipelines
Cloud integration Cloud delivery pipeline
817
quarantined tests
817
Infrastructure
Tools
Processes
People
CI is a practice, not a tool,
and requires discipline from the
development team.
“
”
CONTINUOUS DELIVERY, THE BOOK
The Culture of Green
powered by
Agenda
CI ANATOMY
THE CI BATTLE, IN ATLASSIAN
CI CULTURE
CI INTRODUCTION
THE CD BATTLE, IN ATLASSIAN
CONCLUSION
Culture is what happens when
the founders are not around.
The Build Master
The Build Breaker
Red is the new green.
Give feedback to people,
so it’s fed-back.
0
0quarantined tests
Agenda
CI ANATOMY
THE CI BATTLE, IN ATLASSIAN
CI CULTURE
CI INTRODUCTION
THE CD BATTLE, IN ATLASSIAN
CONCLUSION
! ! !!
A deployment pipeline
10:00
09:00 !
dev
! ! !!
10:00
16:15
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
10:00
16:15
dev staging prod
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
10:00
16:15
dev staging prod
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
10:00
16:15
!
dev
! ! !!
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
10:00
16:15
!
dev
! ! !!
dev staging prod
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
16:00 !stg
10:00
16:15
!
dev
! ! !!
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
16:00 !stg
10:00
16:15
!
dev
! ! !!
dev staging prod
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
16:00 !stg
10:00
16:15 !
!
dev
! ! !!
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
16:00 !stg
10:00
16:15 !
!
dev
! ! !!
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
16:00 !stg
10:00
16:15 !
!
dev
! ! !!
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
16:00 !stg
10:00
16:15 !
!
dev
! ! !!
Missing thumbs-up.
Purchasing deployment pipeline
10:00
09:00 !
dev
! ! !!
16:00 !stg
10:00
16:15 !
!prd
!
dev
! ! !!
Purchasing deployment pipeline
!
dev
! ! !!
!
dev
! ! !!
10:00
09:00
16:00 !stg
10:00
16:15 !
!prd
dev staging prod
Purchasing deployment pipeline
Free people to do
the interesting stuff,
and let Bamboo do the rest.
Agenda
CI ANATOMY
THE CI BATTLE, IN ATLASSIAN
CI CULTURE
CI INTRODUCTION
THE CD BATTLE, IN ATLASSIAN
CONCLUSION
Still not sure what this slide will be.

Maybe a mind map?
19
34
18
42
Do it, or do not.
There is no try. ”
“
Do it, or do not.
There is no try. ”
“
Do it,
with . ”
“
Thank you!
ESTHER ASENJO • BAMBOO DEV • ATLASSIAN • @STHREO
Game of Codes: the CI battle
Submit your feedback:
go.atlassian.com/accodes

AtlasCamp 2015: Game of Codes: The CI battle