Slide 1

Slide 1 text

Ship it! @patrickhamann - re:develop – August 2014 A story of continuous delivery at theguardian.com

Slide 2

Slide 2 text

theguardian.com

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

! 1821 " 1959 # 1995 2014 # $ %

Slide 6

Slide 6 text

100million & 1million & 1999 2014

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

next.theguardian.com

Slide 9

Slide 9 text

Continuous delivery

Slide 10

Slide 10 text

1. Your software is deployable throughout its lifecycle 2. Your team prioritises keeping the software deployable over working on new features 3. Fast, automated feedback on the production readiness of your system any time somebody makes a change 4. You can perform push-button deployments of any version of the software to any environment on demand Source: Continuous Delivery - Martin Fowler - May 2013 1. Your software is deployable throughout its lifecycle 2. Your team prioritises keeping the software deployable over working on new features 3. Fast, automated feedback on the production readiness of your system any time somebody makes a change 4. You can perform push-button deployments of any version of the software to any environment on demand 1. Your software is deployable throughout its lifecycle 2. Your team prioritises keeping the software deployable over working on new features 3. Fast, automated feedback on the production readiness of your system any time somebody makes a change 4. You can perform push-button deployments of any version of the software to any environment on demand 1. Your software is deployable throughout its lifecycle 2. Your team prioritises keeping the software deployable over working on new features 3. Fast, automated feedback on the production readiness of your system any time somebody makes a change 4. You can perform push-button deployments of any version of the software to any environment on demand

Slide 11

Slide 11 text

' 1996 ! Manual ( 2004 ! Bash Script ( 2006 ! More Bash Scripts ) 2010 ! Python ) 2012 ! Scala * 2013 ! Riff-Raff 2 25 300 10,000 Deploys per year

Slide 12

Slide 12 text

Traditional scrum-erfall delivery PLANNING DEVELOPMENT SYSTEM TEST REGRESSION TEST DEPLOY 2 Week sprint

Slide 13

Slide 13 text

Continuous delivery DEVELOP TEST DEVELOP TEST DEVELOP TEST DEVELOP TEST DEPLOY DEPLOY DEPLOY Average day

Slide 14

Slide 14 text

Our team uses waterfall DSDM lean XP agile scrum BDD Kanban TDD

Slide 15

Slide 15 text

Our team uses waterfall DSDM lean XP what works for us. scrum BDD Kanban TDD

Slide 16

Slide 16 text

What works for us

Slide 17

Slide 17 text

1. Ownership 2. Deployment 3. Monitoring 4. Feature switching

Slide 18

Slide 18 text

1. Ownership 2. Deployment 3. Monitoring 4. Feature switching

Slide 19

Slide 19 text

Small cross-functional teams & 1 Product owner 6 Engineers 1 UX 1 Designer 1QA & 1 Product owner 4 Engineers 1 UX 1 Designer & 1 Product owner 4 Engineers 1 UX 2 Designers

Slide 20

Slide 20 text

Source: BBC Responsive news

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Developer QA Operations & & & Product developer Product developer, operations and support. Manual regression tester Test automation Gatekeeper Overseer and consultant

Slide 24

Slide 24 text

Thoughts

Slide 25

Slide 25 text

1. Ownership 2. Deployment 3. Monitoring 4. Feature switching

Slide 26

Slide 26 text

Local Build Pull request Local GitHub CI Staging Production Riff-Raff Article Fronts Sports Discusion Identity ~8minutes ~10minutes ~10minutes Riff-Raff Article Fronts Sports Discusion Identity

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Source: github.com/guardian/deploy

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

Thoughts

Slide 32

Slide 32 text

1. Ownership 2. Deployment 3. Monitoring 4. Feature switching

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

The DevOps oracle - @DevOpsOracle If the developer shalt not go to the radiator; then the radiator shall come to the developer.

Slide 35

Slide 35 text

Photo of dashboard in office

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

some people don’t like this.

Slide 39

Slide 39 text

assets radiator

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

speedcurve

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

PagerDuty

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

Thoughts

Slide 47

Slide 47 text

1. Ownership 2. Deployment 3. Monitoring 4. Feature switching

Slide 48

Slide 48 text

The DevOps oracle - @DevOpsOracle Every bit of new complexity comes from one sensible request at a time.

Slide 49

Slide 49 text

No content

Slide 50

Slide 50 text

No content

Slide 51

Slide 51 text

Source: Matt Chadburn - Software apoptosis

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

Radiator

Slide 54

Slide 54 text

Thoughts

Slide 55

Slide 55 text

Lessons

Slide 56

Slide 56 text

Start small.

Slide 57

Slide 57 text

Invest in tooling: ! • Tools you build • Tools you buy • Open-source tools.

Slide 58

Slide 58 text

Make data-driven decisions.

Slide 59

Slide 59 text

Don’t be afraid to throw things away.

Slide 60

Slide 60 text

Continuous delivery requires business, development, QA and operations within the organisation to coordinate. ! It’s as much about culture than it is about tooling.

Slide 61

Slide 61 text

Move fast and break things.

Slide 62

Slide 62 text

Thank you. Questions? @patrickhamann - re:develop – August 2014 github.com/guardian/frontend + bit.ly/redevelop-ship-it ,