44
an intro to continuous delivery LET’S RELEASE IT Rouan Wilsenach @rouanw thoughtworks.com

Let's release it - an intro to Continuous Delivery

  • Upload
    rouanw

  • View
    319

  • Download
    0

Embed Size (px)

DESCRIPTION

Imagine being able to ship new features with confidence. Imagine decoupling the process of putting new code in production from the decision to release new features to users. Push to production every day and release features when you’re ready. Continuous Delivery describes a set of practices that can make this happen. Rouan gives you an introduction to the concept of Continuous Delivery and some of the main practices that underpin it. He talks about automated testing, deployment and version control. He explains what it means for your approach to user stories and your definition of done and about the difference it will make in the life of your product owner. He’ll cover the concept of building quality into the delivery process and the power this gives you.

Citation preview

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