What is continuous delivery?

Completed

Continuous delivery (CD) is a set of processes, tools, and techniques for rapid, reliable, and continuous software development and delivery.

It means that continuous delivery goes beyond the release of software through a pipeline. The pipeline is a crucial component and the focus of this course, but continuous delivery is more.

To explain a bit more, look at the eight principles of continuous delivery:

  • The process for releasing/deploying software must be repeatable and reliable.
  • Automate everything!
  • If something is difficult or painful, do it more often.
  • Keep everything in source control.
  • Done means "released."
  • Build quality in!
  • Everybody has responsibility for the release process.
  • Improve continuously.

If we want to fulfill these eight principles, we can see that an automated pipeline doesn't suffice.

To deploy more often, we need to reconsider our:

  • Software architecture (monoliths are hard to deploy).
  • Testing strategy (manual tests don't scale well).
  • Organization (separated business and IT departments don't work smoothly), and so forth.

This module will focus on the release management part of continuous delivery but be aware of the other changes you might find.

Find the next bottleneck in your process, solve it, learn from it, and repeat it forever.

Continuous delivery is an enabler for DevOps. DevOps focuses on organizations and bringing people together to build and run their software products.

Continuous delivery is a practice. It's being able to deliver software on-demand. Not necessarily 1000 times a day. Deploying every code change to production is what we call continuous deployment.

To do it, we need automation and a strategy.