# Continuous Delivery

* CD is an approach of automating the steps of delivering code to production. From the time when a developer commits a change to when that change is deployed to production, any step that can be automated, should be -ie testing, change control, the process of deployment, etc.
* Aim
  * is to reduce the time and effort required to deploy code.
  * improves the repeatability and auditability of your deployment process.
    * A repeatable process is inherently less risky, which can encourage organizations to release more often and with smaller changesets
    * Automating deployments greatly improves transparency, which naturally improves auditability
      * Automated deployments can also generate reports that can also help with auditing.
      * Scripts can be stored in version control, allowing for easy review

## A whole ethos

* CD generally encompases
  * CI
  * Trunk based development
  * pipelines
  * Developer led testing ie tdd

## For

* <https://medium.com/defense-unicorns/5-minute-devops-continuous-delivery-faq-4aadc02c1b6e>

## Examples

* <https://minimumcd.org/minimumcd/>

## Agility and CD

* The purpose of agility is to satisfy the customer, via continous delivery of valuable software
* Both are linked
  * <https://journal.optivem.com/p/cant-be-agile-without-cicd-and-tdd?utm\\_source=substack\\&utm\\_medium=email>
*
