Pipeline Driven

View Original

Continuous Delivery Values

I mentioned in my last post about the toolchain needing to respect the continuous delivery values. What are those values? Many of them derive from lean thinking, eXtreme Programming ideas and the book "Continuous Delivery".

Michael Wagner, a colleague and mentor of mine at Dell EMC,has described them as:

The core value is : 

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

 

The principles are:

  • The process for releasing/deploying software MUST be repeatable and reliable
  • Automate Everything down to bare metal
  • If something’s difficult or painful, do it more often
  • Keep EVERYTHING in source control
  • Done means “released”
  • Build quality in
  • Everyone has responsibility for the release process
  • Improve Continuously

The Practices are:

  • Build binaries (or image, or containers, or any artifact that will be deployed) only once, promote many
  • Use precisely the same mechanism to deploy to every environment
  • Smoke test your deployment
  • Organizational policy is implemented as automated steps in the pipeline
  • If anything fails, stop the line