Transcript
Page 1: Let's release it - an intro to Continuous Delivery

a n i n t r o t o c o n t i n u o u s d e l i v e r y

LET’S RELEASE IT

Rouan Wilsenach @rouanw

thoughtworks.com

Page 2: Let's release it - an intro to Continuous Delivery

THE LAST MILEDoes this look familiar?

2

Page 3: Let's release it - an intro to Continuous Delivery

Analysis & Design

Development

Test & Showcase

Release & Operations

‘Agile’ team

Centralised QA IT Operations

Integration & QA

Customer

The ‘last mile’Iteration 0 - 1 - 2 - 3 - n

3

Page 4: Let's release it - an intro to Continuous Delivery

4

Test & Showcase

Delivery team

Customer

Constant flow of new features into production

Page 5: Let's release it - an intro to Continuous Delivery

PRINCIPLES OF CD

5

Page 6: Let's release it - an intro to Continuous Delivery

6

Decouple release from deployment

Page 7: Let's release it - an intro to Continuous Delivery

7

Done means released

Page 8: Let's release it - an intro to Continuous Delivery

8

Small releases

Page 9: Let's release it - an intro to Continuous Delivery

9

Build quality in

Page 10: Let's release it - an intro to Continuous Delivery

10

If it hurts, do it more often

Page 11: Let's release it - an intro to Continuous Delivery

11

Automate everything

Page 12: Let's release it - an intro to Continuous Delivery

BENEFITS OF CD

12

Page 13: Let's release it - an intro to Continuous Delivery

13

Clarity

Page 14: Let's release it - an intro to Continuous Delivery

14

Confidence

Page 15: Let's release it - an intro to Continuous Delivery

15

Less stress

Page 16: Let's release it - an intro to Continuous Delivery

SHOW ME HOWBlah blah blah. How do we actually do this?

16

Page 17: Let's release it - an intro to Continuous Delivery

AUTOMATE EVERYTHINGThe machinery to put code in production. All the time.

17

Page 18: Let's release it - an intro to Continuous Delivery

18

Automated testing

Page 19: Let's release it - an intro to Continuous Delivery

19

Production-like environments

Page 20: Let's release it - an intro to Continuous Delivery

20

Automated deployments

Page 21: Let's release it - an intro to Continuous Delivery

21

Automated infrastructure

Page 22: Let's release it - an intro to Continuous Delivery

BUILD PIPELINEThe production gauntlet

22

Page 23: Let's release it - an intro to Continuous Delivery

23

Page 24: Let's release it - an intro to Continuous Delivery

24

Trigger the pipe on every change

Page 25: Let's release it - an intro to Continuous Delivery

25

Fast feedback

Page 26: Let's release it - an intro to Continuous Delivery

26

Build artefact

Page 27: Let's release it - an intro to Continuous Delivery

27

The go button

Page 28: Let's release it - an intro to Continuous Delivery

TRUNK BASED DEVELOPMENTHow to code when everything is in production

28

Page 29: Let's release it - an intro to Continuous Delivery

29

Put everyone’s changes together all the time

Page 30: Let's release it - an intro to Continuous Delivery

30

Small changes

Page 31: Let's release it - an intro to Continuous Delivery

31

User stories

Page 32: Let's release it - an intro to Continuous Delivery

32

Keep out of reach of users

Page 33: Let's release it - an intro to Continuous Delivery

33

Feature toggles

Page 34: Let's release it - an intro to Continuous Delivery

34

Toggling tips

not too many short lived talk about them

Page 35: Let's release it - an intro to Continuous Delivery

35

Branch by abstraction

Page 36: Let's release it - an intro to Continuous Delivery

WHAT GOES INThe other side of the pipe

36

Page 37: Let's release it - an intro to Continuous Delivery

37

Release decisions

Page 38: Let's release it - an intro to Continuous Delivery

38

Use feedback

Page 39: Let's release it - an intro to Continuous Delivery

39

Measure cycle time

Page 40: Let's release it - an intro to Continuous Delivery

RECAPOnce more with feeling

40

Page 41: Let's release it - an intro to Continuous Delivery

41

The last mile

Principles of CDBenefits

automate everything

build pipelinetrunk based dev

what goes in

How?

Page 42: Let's release it - an intro to Continuous Delivery

SOME RESOURCES

Continuous Integration:

• www.martinfowler.com/articles/continuousIntegration.html

• http://martinfowler.com/bliki/FeatureBranch.html

Trunk based development:

• http://martinfowler.com/bliki/FeatureToggle.html

• http://martinfowler.com/bliki/BranchByAbstraction.html

• http://continuousdelivery.com/wp-content/uploads/2011/05/branch_by_abstraction.png

Continuous Delivery

• http://www.thoughtworks.com/continuous-delivery

• http://martinfowler.com/bliki/ContinuousDelivery.html

• http://go.cd

42

Page 43: Let's release it - an intro to Continuous Delivery

SOME RESOURCES

Jez Humble (@jezhumble)

• continuousdelivery.com

• CD Book: http://martinfowler.com/books/continuousDelivery.html

• Video on adopting CD: http://www.infoq.com/presentations/Adopting-Continuous-Delivery

43

Page 44: Let's release it - an intro to Continuous Delivery

a n i n t r o t o c o n t i n u o u s d e l i v e r y

LET’S RELEASE IT

Rouan Wilsenach @rouanw

thoughtworks.com


Top Related