Ship it! - re:develop conference - August 2014

Ship it! - re:develop conference - August 2014

A story of continuous delivery at theguardian.com.

In which I will be sharing how the Guardian has managed to change culture and overhaul their systems to enable both rapid delivery, and deployment of their products and how you can too.

Supporting links:

http://github.com/guardian/frontend
http://github.com/guardian/deploy
http://martinfowler.com/bliki/ContinuousDelivery.html
http://matt.chadburn.co.uk/notes/apoptosis.html

276c149f793de9af4e98991ed52ff874?s=128

Patrick Hamann

August 22, 2014
Tweet

Transcript

  1. Ship it! @patrickhamann - re:develop – August 2014 A story

    of continuous delivery at theguardian.com
  2. theguardian.com

  3. None
  4. None
  5. ! 1821 " 1959 # 1995 2014 # $ %

  6. 100million & 1million & 1999 2014

  7. None
  8. next.theguardian.com

  9. Continuous delivery

  10. 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
  11. ' 1996 ! Manual ( 2004 ! Bash Script (

    2006 ! More Bash Scripts ) 2010 ! Python ) 2012 ! Scala * 2013 ! Riff-Raff 2 25 300 10,000 Deploys per year
  12. Traditional scrum-erfall delivery PLANNING DEVELOPMENT SYSTEM TEST REGRESSION TEST DEPLOY

    2 Week sprint
  13. Continuous delivery DEVELOP TEST DEVELOP TEST DEVELOP TEST DEVELOP TEST

    DEPLOY DEPLOY DEPLOY Average day
  14. Our team uses waterfall DSDM lean XP agile scrum BDD

    Kanban TDD
  15. Our team uses waterfall DSDM lean XP what works for

    us. scrum BDD Kanban TDD
  16. What works for us

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

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

  19. 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
  20. Source: BBC Responsive news

  21. None
  22. None
  23. Developer QA Operations & & & Product developer Product developer,

    operations and support. Manual regression tester Test automation Gatekeeper Overseer and consultant
  24. Thoughts

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

  26. 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
  27. None
  28. Source: github.com/guardian/deploy

  29. None
  30. None
  31. Thoughts

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

  33. None
  34. The DevOps oracle - @DevOpsOracle If the developer shalt not

    go to the radiator; then the radiator shall come to the developer.
  35. Photo of dashboard in office

  36. None
  37. None
  38. some people don’t like this.

  39. assets radiator

  40. None
  41. speedcurve

  42. None
  43. None
  44. PagerDuty

  45. None
  46. Thoughts

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

  48. The DevOps oracle - @DevOpsOracle Every bit of new complexity

    comes from one sensible request at a time.
  49. None
  50. None
  51. Source: Matt Chadburn - Software apoptosis

  52. None
  53. Radiator

  54. Thoughts

  55. Lessons

  56. Start small.

  57. Invest in tooling: ! • Tools you build • Tools

    you buy • Open-source tools.
  58. Make data-driven decisions.

  59. Don’t be afraid to throw things away.

  60. Continuous delivery requires business, development, QA and operations within the

    organisation to coordinate. ! It’s as much about culture than it is about tooling.
  61. Move fast and break things.

  62. Thank you. Questions? @patrickhamann - re:develop – August 2014 github.com/guardian/frontend

    + bit.ly/redevelop-ship-it ,