let's release it - an intro to continuous delivery

Post on 02-Dec-2014

319 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

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

THE LAST MILEDoes this look familiar?

2

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

4

Test & Showcase

Delivery team

Customer

Constant flow of new features into production

PRINCIPLES OF CD

5

6

Decouple release from deployment

7

Done means released

8

Small releases

9

Build quality in

10

If it hurts, do it more often

11

Automate everything

BENEFITS OF CD

12

13

Clarity

14

Confidence

15

Less stress

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

16

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

17

18

Automated testing

19

Production-like environments

20

Automated deployments

21

Automated infrastructure

BUILD PIPELINEThe production gauntlet

22

23

24

Trigger the pipe on every change

25

Fast feedback

26

Build artefact

27

The go button

TRUNK BASED DEVELOPMENTHow to code when everything is in production

28

29

Put everyone’s changes together all the time

30

Small changes

31

User stories

32

Keep out of reach of users

33

Feature toggles

34

Toggling tips

not too many short lived talk about them

35

Branch by abstraction

WHAT GOES INThe other side of the pipe

36

37

Release decisions

38

Use feedback

39

Measure cycle time

RECAPOnce more with feeling

40

41

The last mile

Principles of CDBenefits

automate everything

build pipelinetrunk based dev

what goes in

How?

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

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

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