142
ESTHER ASENJO BAMBOO DEV ATLASSIAN @STHREO Games of Codes, the CI battle A view behind the Atlassian curtains

AtlasCamp 2015: Game of Codes: The CI battle

Embed Size (px)

Citation preview

Page 1: AtlasCamp 2015: Game of Codes: The CI battle

ESTHER ASENJO • BAMBOO DEV • ATLASSIAN • @STHREO

Games of Codes, the CI battleA view behind the Atlassian curtains

Page 2: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 3: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 4: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 5: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 6: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 7: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 8: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 9: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 10: AtlasCamp 2015: Game of Codes: The CI battle

Who am I?

Page 11: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 12: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 13: AtlasCamp 2015: Game of Codes: The CI battle

HARDER. work it

Page 14: AtlasCamp 2015: Game of Codes: The CI battle

HARDER. BETTER.

work it make it

Page 15: AtlasCamp 2015: Game of Codes: The CI battle

HARDER. BETTER. FASTER.

work it make it

do it

Page 16: AtlasCamp 2015: Game of Codes: The CI battle

HARDER. BETTER. FASTER. STRONGER.

work it make it

do it make us

Page 17: AtlasCamp 2015: Game of Codes: The CI battle

HARDER processes

Page 18: AtlasCamp 2015: Game of Codes: The CI battle

HARDER BETTER

processes quality

Page 19: AtlasCamp 2015: Game of Codes: The CI battle

HARDER BETTER FASTER

processes quality delivery

Page 20: AtlasCamp 2015: Game of Codes: The CI battle

HARDER BETTER FASTER

STRONGER

processes quality delivery teams

Page 21: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 22: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

Page 23: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

782 R&D Staff

Page 24: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

782 R&D Staff451 developers

Page 25: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

782 R&D Staff

Products

451 developers

Page 26: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

782 R&D Staff

Products

451 developers

Page 27: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

782 R&D Staff

Products

451 developers

Page 28: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

782 R&D Staff

Products

451 developers

Page 29: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

782 R&D Staff

Products Services

www.atlassian.com

my.atlassian.com

451 developers

Page 30: AtlasCamp 2015: Game of Codes: The CI battle

Atlassian, a software company

782 R&D Staff

Products Services

www.atlassian.com

my.atlassian.com

Ecosystem

451 developers

Page 31: AtlasCamp 2015: Game of Codes: The CI battle

Continuous Integration is a battle.

Page 32: AtlasCamp 2015: Game of Codes: The CI battle
Page 33: AtlasCamp 2015: Game of Codes: The CI battle
Page 34: AtlasCamp 2015: Game of Codes: The CI battle
Page 35: AtlasCamp 2015: Game of Codes: The CI battle
Page 36: AtlasCamp 2015: Game of Codes: The CI battle

The Continuous Integration battle, IT DOES NOT COUNT UNTIL IT’S SHIPPED

Page 37: AtlasCamp 2015: Game of Codes: The CI battle

When you play the Game of Codes, you ship or you fail.

Page 38: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 39: AtlasCamp 2015: Game of Codes: The CI battle

Infrastructure

Tools

Processes

People

Page 40: AtlasCamp 2015: Game of Codes: The CI battle

Build InfrastructureEngineering

Page 41: AtlasCamp 2015: Game of Codes: The CI battle

Build InfrastructureEngineering Collaboration

Page 42: AtlasCamp 2015: Game of Codes: The CI battle

Build InfrastructureEngineering Collaboration JIRA family

Page 43: AtlasCamp 2015: Game of Codes: The CI battle

Build InfrastructureEngineering Collaboration JIRA family Dev Tools

Page 44: AtlasCamp 2015: Game of Codes: The CI battle

Build InfrastructureEngineering Collaboration JIRA family Dev Tools Internal

Services

Page 45: AtlasCamp 2015: Game of Codes: The CI battle

Build InfrastructureEcosystemEngineering Collaboration JIRA family Dev Tools Internal

Services

Page 46: AtlasCamp 2015: Game of Codes: The CI battle

Build Engineering

Build InfrastructureEcosystemEngineering Collaboration JIRA family Dev Tools Internal

Services

Page 47: AtlasCamp 2015: Game of Codes: The CI battle

Build Infrastructure

Remote agents

Elastic agents Build infrastructure

EcosystemEngineering Collaboration JIRA family Dev Tools Internal Services

Build Engineering

Maven repositories

Page 48: AtlasCamp 2015: Game of Codes: The CI battle

Maven repositories

EcosystemEngineering

Build InfrastructureCollaboration JIRA family Dev Tools Internal

Services

Remote agents

Elastic agents Build infrastructure

11

Bamboo instances

Build Engineering

Page 49: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 50: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 51: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 52: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 53: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 54: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 55: AtlasCamp 2015: Game of Codes: The CI battle

Infrastructure

Tools

Processes

People

Page 56: AtlasCamp 2015: Game of Codes: The CI battle

Processes Tools : A pipeline anatomy

Developer

Page 57: AtlasCamp 2015: Game of Codes: The CI battle

Developer Commit

Processes Tools : A pipeline anatomy

Page 58: AtlasCamp 2015: Game of Codes: The CI battle

Developer Commit Build

Processes Tools : A pipeline anatomy

Page 59: AtlasCamp 2015: Game of Codes: The CI battle

Developer TestCommit Build

Processes Tools : A pipeline anatomy

Page 60: AtlasCamp 2015: Game of Codes: The CI battle

Developer Test DeliverCommit Build

Processes Tools : A pipeline anatomy

Page 61: AtlasCamp 2015: Game of Codes: The CI battle

Developer Test DeliverCommit Build

Processes Tools : A pipeline anatomy

Page 62: AtlasCamp 2015: Game of Codes: The CI battle

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.”

Page 63: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 64: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 65: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 66: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 67: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 68: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 69: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 70: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 71: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline

Page 72: AtlasCamp 2015: Game of Codes: The CI battle

1,5 days

100 developers

420 commits/day

20,000 tests

435 build plans Deliver

Confluence pipeline

Page 73: AtlasCamp 2015: Game of Codes: The CI battle

I’m not slacking off, my build plans are still running.

“”

M E

Page 74: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 75: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 76: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 77: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 78: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 79: AtlasCamp 2015: Game of Codes: The CI battle

Confluence pipeline strategy

+ +++ =

Page 80: AtlasCamp 2015: Game of Codes: The CI battle

+ +++ =

Confluence pipeline strategy

Page 81: AtlasCamp 2015: Game of Codes: The CI battle

+ +++ =

Confluence pipeline strategy

Page 82: AtlasCamp 2015: Game of Codes: The CI battle

Core Test Suite

+ +++ =

30 min

Confluence pipeline strategy

Page 83: AtlasCamp 2015: Game of Codes: The CI battle

Core Test Suite

90 min

Cloud Test Suite

30 min

+ +++ =

Confluence pipeline strategy

Page 84: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 85: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 86: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 87: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 88: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 89: AtlasCamp 2015: Game of Codes: The CI battle

CI challenges Atlassian processes

User acceptance testing Dog fooding

Monolithic applications Plugin development

Plugin development Cross-compatibility pipelines

Cloud integration Cloud delivery pipeline

Page 90: AtlasCamp 2015: Game of Codes: The CI battle

CI challenges Atlassian processes

User acceptance testing Dog fooding

Monolithic applications Plugin development

Plugin development Cross-compatibility pipelines

Cloud integration Cloud delivery pipeline

Page 91: AtlasCamp 2015: Game of Codes: The CI battle

CI challenges Atlassian processes

User acceptance testing Dog fooding

Monolithic applications Plugin development

Plugin development Cross-compatibility pipelines

Cloud integration Cloud delivery pipeline

Page 92: AtlasCamp 2015: Game of Codes: The CI battle

CI challenges our processes

User acceptance testing Dog fooding

Monolithic applications Plugin development

Plugin development Cross-compatibility pipelines

Cloud integration Cloud delivery pipeline

Page 93: AtlasCamp 2015: Game of Codes: The CI battle

817

Page 94: AtlasCamp 2015: Game of Codes: The CI battle

quarantined tests817

Page 95: AtlasCamp 2015: Game of Codes: The CI battle

Infrastructure

Tools

Processes

People

Page 96: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 97: AtlasCamp 2015: Game of Codes: The CI battle

The Culture of Green powered by

Page 98: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 99: AtlasCamp 2015: Game of Codes: The CI battle

Culture is what happens when the founders are not around.

Page 100: AtlasCamp 2015: Game of Codes: The CI battle

The Build Master

Page 101: AtlasCamp 2015: Game of Codes: The CI battle

The Build Breaker

Page 102: AtlasCamp 2015: Game of Codes: The CI battle

Red is the new green.

Page 103: AtlasCamp 2015: Game of Codes: The CI battle

Give feedback to people, so it’s fed-back.

Page 104: AtlasCamp 2015: Game of Codes: The CI battle
Page 105: AtlasCamp 2015: Game of Codes: The CI battle
Page 106: AtlasCamp 2015: Game of Codes: The CI battle
Page 107: AtlasCamp 2015: Game of Codes: The CI battle
Page 108: AtlasCamp 2015: Game of Codes: The CI battle
Page 109: AtlasCamp 2015: Game of Codes: The CI battle
Page 110: AtlasCamp 2015: Game of Codes: The CI battle
Page 111: AtlasCamp 2015: Game of Codes: The CI battle
Page 112: AtlasCamp 2015: Game of Codes: The CI battle
Page 113: AtlasCamp 2015: Game of Codes: The CI battle
Page 114: AtlasCamp 2015: Game of Codes: The CI battle
Page 115: AtlasCamp 2015: Game of Codes: The CI battle
Page 116: AtlasCamp 2015: Game of Codes: The CI battle
Page 117: AtlasCamp 2015: Game of Codes: The CI battle

0

Page 118: AtlasCamp 2015: Game of Codes: The CI battle

0quarantined tests

Page 119: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 120: AtlasCamp 2015: Game of Codes: The CI battle

A deployment pipeline

Page 121: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

10:00

16:15

Purchasing deployment pipeline

Page 122: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

10:00

16:15

dev staging prod

Purchasing deployment pipeline

Page 123: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

10:00

16:15

dev staging prod

Purchasing deployment pipeline

Page 124: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

10:00

16:15

dev

Purchasing deployment pipeline

Page 125: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

10:00

16:15

dev

dev staging prod

Purchasing deployment pipeline

Page 126: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

16:00 stg

10:00

16:15

dev

Purchasing deployment pipeline

Page 127: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

16:00 stg

10:00

16:15

dev

dev staging prod

Purchasing deployment pipeline

Page 128: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

16:00 stg

10:00

16:15

dev

Purchasing deployment pipeline

Page 129: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

16:00 stg

10:00

16:15

dev

Purchasing deployment pipeline

Page 130: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

16:00 stg

10:00

16:15

dev

Purchasing deployment pipeline

Page 131: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

16:00 stg

10:00

16:15

dev

Missing thumbs-up.

Purchasing deployment pipeline

Page 132: AtlasCamp 2015: Game of Codes: The CI battle

10:00

09:00 dev

16:00 stg

10:00

16:15

prd

dev

Purchasing deployment pipeline

Page 133: AtlasCamp 2015: Game of Codes: The CI battle

dev

dev

10:00

09:00

16:00 stg

10:00

16:15

prd

dev staging prod

Purchasing deployment pipeline

Page 134: AtlasCamp 2015: Game of Codes: The CI battle

Free people to do the interesting stuff,

and let Bamboo do the rest.

Page 135: AtlasCamp 2015: Game of Codes: The CI battle

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

Page 136: AtlasCamp 2015: Game of Codes: The CI battle

Still not sure what this slide will be.

Maybe a mind map?

Page 137: AtlasCamp 2015: Game of Codes: The CI battle

1934

18

42

Page 138: AtlasCamp 2015: Game of Codes: The CI battle

Do it, or do not. There is no try. ”

Page 139: AtlasCamp 2015: Game of Codes: The CI battle

Do it, or do not. There is no try. ”

Page 140: AtlasCamp 2015: Game of Codes: The CI battle

Do it, with . ”

Page 141: AtlasCamp 2015: Game of Codes: The CI battle

Thank you!

ESTHER ASENJO • BAMBOO DEV • ATLASSIAN • @STHREO

Page 142: AtlasCamp 2015: Game of Codes: The CI battle

Game of Codes: the CI battle

Submit your feedback: go.atlassian.com/accodes