Continuous Delivery Pipelines

A quick overview from Dave Farley’s book

Matheus Paes Pereira
2 min readFeb 25, 2022

Recently I read “Continuous Delivery Pipelines: How To Build Better Software Faster” by Dave Farley, it’s not a massive book but gives you what and how to achieve a reliable CI/CD pipeline, a practical idea of Continuous Delivery Deployment Pipeline.

In February 2001, Agile Manifest was released and the term Continuous Delivery emerged from the first principle, which states:

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

What is Continuous Delivery?

Continuous delivery is the ability to release changes of all kinds on demand quickly, safely, and sustainably. Teams that practice continuous delivery well are able to release software and make changes to production in a low-risk way at any time — including during normal business hours — without impacting users. DevOps Tech | Google Cloud

To Dave Farley, Continuous delivery is the best way of developing software that we currently know so far. He declares that is the state of art for software development, enabling its practitioners to deliver better software faster.

The State Of DevOps Reports, provided by Google, quantify the impact of Continuous Delivery, it creates effectiveness and efficiency of software development like over 44% more time spent on new features, 8000x faster deployment lead time, 50% lower change-failure rate.

The Deployment Pipeline

We can define the Deployment Pipeline as a platform where we can test ideas and make changes safely.

The purpose to have a deployment pipeline is to enable control of the variables, version control the code and the product itself, organize our experiments, tests, feedback, and promote a release candidate to production.

The deployment pipeline is not:

  • Only an automated build, test and deploy workflow
  • a series of separate Pipelines for build, test and deployment
  • just a collection of tools and processes

We have a few key stages to be successful in implementing a deployment pipeline as the image below shows:

Key stages for Deployment Pipeline: Commit Stage, Artifact Repository, Acceptance Stage and Ability to Deploy into Production
4 Key stages Deployment Pipeline

These stages summarize essential practices to be effective, which is developing software oriented to TDD, Automation (automate everything that is repeatable, Version Control (long live to Trunk-Based development).

Conclusion

There are so many things that you can get from Dave’s book, I really recommend you read it.

If you want to know more about Continuous Delivery, we have a lot of communities and one that I recommend and I’m very glad to be part of as Ambassador is the Continuous Delivery Foundation, it serves as the vendor-neutral home of many of the fastest-growing projects for continuous integration/continuous delivery (CI/CD).

Useful links

State of Continuous Delivery Report: 18 Months into the COVID-19 Pandemic
What end-users really recommend for continuous delivery

--

--

Matheus Paes Pereira

Head of Technology - Developer Experience and Productivity. I’m a reader addicted, used to letting curiosity move me forward.