The Birth of DevOps

The Birth of DevOps

From 2½ Days to 2½ Seconds - the Birth of DevOps

This is an experience report from the mid-2000s, where a fifty-person programme team was being held up by test environments that took an average of 2½ days to prepare. By developing strategies like Blue/Green Deployments, the Single Deployable Artifact, Container Templates, the Build Production Line and many of the other principles that led to Continuous Delivery, we brought this down to only a few minutes, with a near-instantaneous cutover for the users. The legendary team included the likes of Julian "Build Doctor" Simpson, Chris Read, Sam Newman and both the authors of the Continuous Delivery book, only one of whom swore a lot. Dan North is not the father of DevOps but he may be its midwife. He definitely assisted at the birth.

08145ecb1ce091d9dd3c328ea2a707fb?s=128

Daniel Terhorst-North

June 19, 2014
Tweet

Transcript

  1. From 2½ days to 2½ seconds - the birth of

    DevOps Dan North @tastapod
  2. Once upon a time…

  3. Once upon a time… back in the mists of 2005

  4. Once upon a time… back in the mists of 2005

    before Continuous Delivery™
  5. Once upon a time… back in the mists of 2005

    before Continuous Delivery™ a team was stuck.
  6. Once upon a time… back in the mists of 2005

    before Continuous Delivery™ a team was stuck. This is their story.
  7. Life was tough back then

  8. Life was tough back then 2½ days to deploy a

    build
  9. Life was tough back then 2½ days to deploy a

    build Testers were frustrated!
  10. Life was tough back then 2½ days to deploy a

    build Testers were frustrated! Developers were frustrated!
  11. Life was tough back then 2½ days to deploy a

    build Testers were frustrated! Developers were frustrated! We were bottlenecked at testing :(
  12. Life was tough back then 2½ days to deploy a

    build Testers were frustrated! Developers were frustrated! We were bottlenecked at testing :( actually bottlenecked at deployment!
  13. The causes were obvious

  14. The causes were obvious “snowflake” environments

  15. The causes were obvious “snowflake” environments too many moving parts

  16. The causes were obvious “snowflake” environments too many moving parts

    multiple teams
  17. The causes were obvious “snowflake” environments too many moving parts

    multiple teams contention for resources
  18. Where do we start?

  19. Where do we start? "Elevate the constraint"

  20. Where do we start? "Elevate the constraint" Engage Operations as

    customer
  21. Where do we start? "Elevate the constraint" Engage Operations as

    customer Understand the manual steps
  22. Where do we start? "Elevate the constraint" Engage Operations as

    customer Understand the manual steps Identify where time is being sunk
  23. Where do we start? "Elevate the constraint" Engage Operations as

    customer Understand the manual steps Identify where time is being sunk Focus on the outcome, not the steps
  24. Idea: Treat the container as code

  25. Idea: Treat the container as code WebLogic is just XML

  26. Idea: Treat the container as code WebLogic is just XML

    so create templates
  27. Idea: Treat the container as code WebLogic is just XML

    so create templates and version-control them!
  28. Idea: Treat deployment as code

  29. Idea: Treat deployment as code Instrument the UI tools

  30. Idea: Treat deployment as code Instrument the UI tools Learn

    the command-line tools
  31. Idea: Build the app as a single entity

  32. Idea: Build the app as a single entity Single Deployable

    Artefact
  33. Idea: Make all the servers look the same

  34. Idea: Make all the servers look the same Same OS

  35. Idea: Make all the servers look the same Same OS

    Same packages
  36. Idea: Make all the servers look the same Same OS

    Same packages Same versions
  37. Idea: Make all the servers look the same Same OS

    Same packages Same versions Same(ish) settings
  38. Idea: Automate the entire deployment

  39. Idea: Automate the entire deployment Conan the Deployer!

  40. Conan the Deployer

  41. Conan the Deployer - Create a new container instance

  42. Conan the Deployer - Create a new container instance -

    Generate container config
  43. Conan the Deployer - Create a new container instance -

    Generate container config - Deploy container config
  44. Conan the Deployer - Create a new container instance -

    Generate container config - Deploy container config - Bring up the master node
  45. Conan the Deployer - Create a new container instance -

    Generate container config - Deploy container config - Bring up the master node - Deploy the app into the node
  46. Conan the Deployer - Create a new container instance -

    Generate container config - Deploy container config - Bring up the master node - Deploy the app into the node - Bring up the app
  47. Conan the Deployer - Create a new container instance -

    Generate container config - Deploy container config - Bring up the master node - Deploy the app into the node - Bring up the app - Smoke test the environment
  48. This was the big breakthrough

  49. This was the big breakthrough Any build into any environment

  50. This was the big breakthrough Any build into any environment

    2½ days down to 25 minutes!
  51. This was the big breakthrough Any build into any environment

    2½ days down to 25 minutes! Deterministically.
  52. Then optimise…

  53. Then optimise… Blue-Green Deployments

  54. Then optimise… Blue-Green Deployments Create self-serve deployments

  55. Then optimise… Blue-Green Deployments Create self-serve deployments Sub-second cutover, during

    office hours!
  56. What did we learn?

  57. What did we learn? Focus on the outcome

  58. What did we learn? Focus on the outcome Focus on

    the current bottleneck
  59. What did we learn? Focus on the outcome Focus on

    the current bottleneck You don't "have an investment" in hardware
  60. What did we learn? Focus on the outcome Focus on

    the current bottleneck You don't "have an investment" in hardware DevOps requires collaboration
  61. Epilogue

  62. Epilogue Sam Newman develops DbDeploy

  63. Epilogue Sam Newman develops DbDeploy Jez Humble and Chris Read

    (and me :) describe the Build Production Line
  64. Epilogue Sam Newman develops DbDeploy Jez Humble and Chris Read

    (and me :) describe the Build Production Line Chris Read co-creates DevOps Days
  65. Epilogue Sam Newman develops DbDeploy Jez Humble and Chris Read

    (and me :) describe the Build Production Line Chris Read co-creates DevOps Days Julian Simpson becomes the Build Doctor
  66. Epilogue Sam Newman develops DbDeploy Jez Humble and Chris Read

    (and me :) describe the Build Production Line Chris Read co-creates DevOps Days Julian Simpson becomes the Build Doctor Jez Humble and Dave Farley write “Continuous Delivery” and win Jolt Award
  67. Whither DevOps?

  68. Whither DevOps? Commoditise All the Things!

  69. Whither DevOps? Commoditise All the Things! Cloud All the Things!

  70. Whither DevOps? Commoditise All the Things! Cloud All the Things!

    Hug a SysAdmin today
  71. Whither DevOps? Commoditise All the Things! Cloud All the Things!

    Hug a SysAdmin today And remember: A “build team” is still an anti-pattern!
  72. Thanks for listening @tastapod dan@dannorth.net http:/ /dannorth.net ! Don’t forget

    to vote!