What is CI/CD

In the last few years, we often hear the term CI/CD being used in the software development industry.

In short CI/CD is a practice to regularly deliver software to clients by automating some of the development stages.

 

The acronym CI/CD has different meanings. The CI part refers to “Continous integration” which stands for an automation process for developers. The CD part refers to “Continuous delivery” and/or “Continuous deployment” which are related and often used interchangeably.

 

Continuous integration

 

Continuous integration is the first step of the CI/CD pipeline. It is a practice of automating the integration of code changes from different developers to a shared code repository. Each of these code integrations can be verified by automated testing.

Some of the benefits of using CI:

  • Errors and bugs are detected early and fixing them is a lot easier
  • Allows the team to move fast while keeping the quality of the codebase

 

Continuous delivery

 

Continuous delivery is the CI’s extension. It provides assurance that everything is ready to release the new changes to the customers quickly in a sustainable way. This way on top of automated testing we also automated the release process and our software can be deployed by clicking on a button.

 

Continuous deployment

 

Continuous deployment is not the same thing as continuous delivery. While continuous delivery requires a staging are for code changes, in continuous deployment there is no time lag between when a new code change passes testing and when it moves to production. In continuous deployment, there is no human interaction, and only a failed test can prevent the new changes from being deployed to production.

 

The top benefits of implementing CI/CD practice:

  • Smaller code changes
  • Simple fault isolation
  • Improvement in quality
  • Faster release rate
  • Frequent updates
  • Better customer satisfaction
  • Lower cost of development