What is Continuous Integration/ Continuous Deployment ( CI/CD)

Continuous Integration/ Continuous Deployment automates your software delivery process.

The pipeline builds code, runs, tests, and safely deploys a new version of the applications

What is Continuous Integration ( CI ):

It's a development practice in which all development work is integrated as early as possible.

Some key points while implementing Continuous Integration :

-> Developers commit code to a shared repository on a regular basis.

-> Version control system is being monitored. When a commit is detected a build will be triggered automatically

-> If the build is not green, developers will be notified immediately.

" This process helps to identify the errors in the early stages of a project."

Why do we need Continuous Integrations?

Detect problems or bugs as early as possible in the development life cycle.

Since the entire code base is integrated, built, and tested constantly, the potential bugs and errors are caught earlier in the life cycle which results is better-quality software.

The List of Tasks involved in Continuous Integration :

1- Generating and analyzing reports.

2- Developing and compiling.

3- Performing functional tests and labeling code.

4- Performing unit tests.

5- Preproduction deployment.

6- Database integration.

The advantages of Continuous Integration are :

  • CI automatically monitors the health of your code base, code quality, and code coverage metrics.

  • Reduces technical debts and maintenance costs.

  • Public visible code quality metrics encourage developers to improve their code quality.

  • Automated end-to-end acceptance tests provide a clear picture of the current state of development efforts.

  • CI reduces risk by providing faster feedback.

  • Helps identify and fix integration and regression.

  • Helps simplify and accelerate delivery.

  • Automates deployment process.

Continuous Delivery :

Continuous delivery is an extension of continuous integrations.

Continuous delivery of code to an environment once the code is ready to ship . This could be Staging or production. This idea is the product is delivered to a user base, which can be QAs or customers for review and inspection.

Continuous Deployment :

Continuous Deployment is a step up from continuous delivery in which every change in the source change in the source code is deployed to production automatically without explicit approval from a Developer.

It's a strategy for software releases, where any code commit that passes the automated testing phase is automatically making changes that are visible to the software users

In Simple words

"The continuous deployment or release of code to production as soon as it is ready."

Benefits of Continuous Deployment :

  • Faster return on investment for each feature as it gets developed.

  • Faster feedback from end users on each new feature as it is released to production.

Popular CI/CD Tools :

It is critical to select the best CI/CD tools for the project's budgets and needs.

Some of the effective CI/CD tools are

  • Jenkins

  • TeamCity

  • GitLab etc

#WeMakeDevs #hashnode @WeMakeDevs hashnode