DEV Community

Yusuf Giwa
Yusuf Giwa

Posted on

Overview of continuous Delivery

In a bid to deliver software solutions to costumers efficiently, companies are looking to inculcate techniques and practices that will improve the quality of their code and optimize the time and resources required for deployment. A popular approach these days is continuous delivery.

Continuous delivery is an approach where value is delivered frequently through automated deployments. It is often seen as a philosophy that facilitates the use of techniques that lets organizations build, test, and prepare code changes for release to production rapidly and efficiently. These techniques can be split in Continuous integration and continuous deployment. Continuous delivery practices can be directly translated to economic terms or metrics.

Continuous Integration is a practice where developers merge working copies to a shared mainline several times a day. This includes operations such as building artifacts, running tests and code analysis.
Continuous deployment is a practice where teams produce and release values a short time. This includes operations such as deployment, verification and promotion to production.

These are some good practices to build a continuous delivery pipeline:

  • Fail fast: This means the quicker we get to the error the less resources are wasted.
  • Measure code quality: There should be metrics to measure the quality of code in our pipeline such as Lead time to production, and roll back rate.
  • Only one road leads to production: All potential loopholes should be eliminated in order to utilize the pipeline.
  • Maximum automation: We should automate tasks as much as possible to reduce human error and increase speed of delivery.

It should be noted that these continuous delivery practices should not be seen as an absolute pedestal but as true North that will help the organisation reach steady improvement.
CI/CD can be achieved with configuration tools like Ansible or chef and pipelines like CircleCI or Jenkins as well as version control tools like git.
Happy learning!

Top comments (0)