Upload
atlassian
View
255
Download
0
Tags:
Embed Size (px)
Citation preview
ESTHER ASENJO • BAMBOO DEV • ATLASSIAN • @STHREO
Games of Codes, the CI battleA 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
C I A N ATO M Y
T H E C I B AT T L E , I N AT L A S S I A N
C I C U LT U R E
C I I N T R O D U C T I O N
T H E C D B AT T L E , I N AT L A S S I A N
C O N C L U S I O N
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.”
“
M A R T I N F O W L E R , T H O U G H T W O R K S
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
C I A N ATO M Y
T H E C I B AT T L E , I N AT L A S S I A N
C I C U LT U R E
C I I N T R O D U C T I O N
T H E C D B AT T L E , I N AT L A S S I A N
C O N C L U S I O N
Atlassian, a software company
Atlassian, a software company
782 R&D Staff
Atlassian, a software company
782 R&D Staff451 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
C I A N ATO M Y
T H E C I B AT T L E , I N AT L A S S I A N
C I C U LT U R E
C I I N T R O D U C T I O N
T H E C D B AT T L E , I N AT L A S S I A N
C O N C L U S I O N
Infrastructure
Tools
Processes
People
Build InfrastructureEngineering
Build InfrastructureEngineering Collaboration
Build InfrastructureEngineering Collaboration JIRA family
Build InfrastructureEngineering Collaboration JIRA family Dev Tools
Build InfrastructureEngineering Collaboration JIRA family Dev Tools Internal
Services
Build InfrastructureEcosystemEngineering Collaboration JIRA family Dev Tools Internal
Services
Build Engineering
Build InfrastructureEcosystemEngineering 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 InfrastructureCollaboration JIRA family Dev Tools Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
Build Engineering
Build Engineering
Maven repositories
EcosystemEngineering
Build InfrastructureCollaboration JIRA family Dev Tools Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
900 elastic agents 20 AMIs
150
remote agents
Build Engineering
Maven repositories
EcosystemEngineering
Build InfrastructureCollaboration JIRA family Dev Tools Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
900 elastic agents 20 AMIs
150
remote agents6 Nexus instances
Maven repositories
EcosystemEngineering
Build InfrastructureCollaboration JIRA family Dev Tools Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
150
remote agents6 Nexus instances
20 AMIs
20k
build plans
Build Engineering
900 elastic agents
Maven repositories
EcosystemEngineering
Build InfrastructureCollaboration JIRA family Dev Tools Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
150
remote agents6 Nexus instances
20 AMIs
20k
build plans
120k branch build plans
Build Engineering
900 elastic agents
Maven repositories
EcosystemEngineering
Build InfrastructureCollaboration JIRA family Dev Tools Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
150
remote agents6 Nexus instances
20 AMIs
20k
build plans
120k branch build plans
Build Engineering
900 elastic agents3 years ago:
21k
builds / month
Maven repositories
EcosystemEngineering
Build InfrastructureCollaboration JIRA family Dev Tools Internal
Services
Remote agents
Elastic agents Build infrastructure
11
Bamboo instances
150
remote agents6 Nexus instances
20 AMIs
20k
build plans
120k branch build plans
Build Engineering
900 elastic 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
M I K E R O B E R T S , T H O U G H T W O R K S
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.
“”
M E
I’m not slacking off, my build plans are queued.
“”
D A N I E L K J E L L I N
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 tests817
Infrastructure
Tools
Processes
People
CI is a practice, not a tool, and requires discipline from the development team.
“”
C O N T I N U O U S D E L I V E RY, T H E B O O K
The Culture of Green powered by
Agenda
C I A N ATO M Y
T H E C I B AT T L E , I N AT L A S S I A N
C I C U LT U R E
C I I N T R O D U C T I O N
T H E C D B AT T L E , I N AT L A S S I A N
C O N C L U S I O N
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
C I A N ATO M Y
T H E C I B AT T L E , I N AT L A S S I A N
C I C U LT U R E
C I I N T R O D U C T I O N
T H E C D B AT T L E , I N AT L A S S I A N
C O N C L U S I O N
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
C I A N ATO M Y
T H E C I B AT T L E , I N AT L A S S I A N
C I C U LT U R E
C I I N T R O D U C T I O N
T H E C D B AT T L E , I N AT L A S S I A N
C O N C L U S I O N
Still not sure what this slide will be.
Maybe a mind map?
1934
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