Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

Patrick Hamann

August 22, 2014
Tweet

More Decks by Patrick Hamann

Other Decks in Technology

Transcript

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

    View Slide

  2. theguardian.com

    View Slide

  3. View Slide

  4. View Slide

  5. !
    1821
    "
    1959
    #
    1995 2014
    #
    $
    %

    View Slide

  6. 100million
    &
    1million
    &
    1999 2014

    View Slide

  7. View Slide

  8. next.theguardian.com

    View Slide

  9. Continuous delivery

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  13. Continuous delivery
    DEVELOP TEST
    DEVELOP TEST
    DEVELOP TEST
    DEVELOP TEST
    DEPLOY
    DEPLOY
    DEPLOY
    Average day

    View Slide

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

    View Slide

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

    View Slide

  16. What works for us

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  20. Source: BBC Responsive news

    View Slide

  21. View Slide

  22. View Slide

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

    View Slide

  24. Thoughts

    View Slide

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

    View Slide

  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

    View Slide

  27. View Slide

  28. Source: github.com/guardian/deploy

    View Slide

  29. View Slide

  30. View Slide

  31. Thoughts

    View Slide

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

    View Slide

  33. View Slide

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

    View Slide

  35. Photo of dashboard in
    office

    View Slide

  36. View Slide

  37. View Slide

  38. some people don’t like this.

    View Slide

  39. assets radiator

    View Slide

  40. View Slide

  41. speedcurve

    View Slide

  42. View Slide

  43. View Slide

  44. PagerDuty

    View Slide

  45. View Slide

  46. Thoughts

    View Slide

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

    View Slide

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

    View Slide

  49. View Slide

  50. View Slide

  51. Source: Matt Chadburn - Software apoptosis

    View Slide

  52. View Slide

  53. Radiator

    View Slide

  54. Thoughts

    View Slide

  55. Lessons

    View Slide

  56. Start small.

    View Slide

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

    View Slide

  58. Make data-driven decisions.

    View Slide

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

    View Slide

  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.

    View Slide

  61. Move fast and break things.

    View Slide

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

    View Slide