Thursday, 19 April 2018

Facts about CI & CD

CI & CD

Continuous Integration (CI)  VS Continuous delivery (CD)  VS Continuous Deployment


Continuous Integration (CI) is a software engineering practice in which developers integrate code into a shared repository several times a day in order to obtain rapid feedback of the feasibility of that code. CI enables automated build and testing so that teams can rapidly work on a single project together.

Continuous integration is the process by which a developer’s code is integrated with the main code branch as quickly as possible. Continuous integration puts a great emphasis on testing automation to check that the application is not broken whenever new commits are integrated into the main branch.

Continuous delivery (CD) is a software engineering practice in which teams develop, build, test, and release software in short cycles. It depends on automation at every stage so that cycles can be both quick and reliable.

Continuous delivery takes CI one step further, with an emphasis not just on integrating code, but also making the code shippable at any time. Continuous delivery usually requires automated testing, so that the developers are confident that the code can be shipped Or we can say that Continuous delivery is an extension of continuous integration to make sure that you can release new changes to your customers quickly in a sustainable way. This means that on top of having automated your testing, you also have automated your release process and you can deploy your application at any point of time by clicking on a button.


Continuous Deployment is the process by which qualified changes in software code or architecture are deployed to production as soon as they are ready and without human intervention.

Continuous deployment is a term that is usually applied to cloud software systems, where software code changes are automatically deployed to production, in a safe way. Continuous deployment strategies usually involve incremental deployments that allow changes to be tested incrementally. Continuous deployment goes one step further than continuous delivery. With this practice, every change that passes all stages of your production pipeline is released to your customers. There’s no human intervention

Continuous Deployment is the act of deploying every addition to the mainline branch to the consumer. Continuous Deployment would happen after CI passes and the feature/bug fixes made were merged into the mainline/trunk branch. All the changes would be sent to the distribution/production environment.



Finally, we can conclude that

Continuous integration (CI) can mean one of two things:

1.     The work done by a continuous integration server, such as Jenkins or Bamboo

2.     The process of integrating changes into software at all stages of the delivery pipeline

Continuous Delivery is the frequent shipping of code to a given environment (such as test or production) via manual release.

Continuous Deployment is the automated release of code to a production environment.

No comments:

Post a Comment