Continuous Delivery

https://martinfowler.com/bliki/ContinuousDelivery.html

Distinctions:

  • Continuous Integration is combining changes made by different people into one codebase frequently
  • Continuous Delivery is keeping the system releasable at any time
  • Continuous Deployment is actually releasing the system to production many times a day

Key points:

  • No separate release branch
  • Verify the code is working before it is added to the main branch (CI runs on PRs)
  • If the build does break, fixing it is the first priority
  • Work in small feature slices
  • Keep things releasable at any time
  • QA code as it’s delivered and mark as complete
  • Deployment is automated and controlled by the team that writes the code
  • Don’t plan on a monthly/quarterly release, plan to release as soon as a releasable bit is done