DEV Community

genichm
genichm

Posted on

Explain in few words what is Continuous Integration, Delivery, and Deployment?

I need short explanation what is Continuous Integration, Delivery, and Deployment.

Oldest comments (8)

Collapse
 
leightondarkins profile image
Leighton Darkins

Continuous Integration: Developers commit code into a single repository frequently. At least daily, but more typically (n) times a day. Every commit triggers a pipeline that builds and tests the entire, integrated, code base.

This allows teams to catch regressions and breaking changes nearly as soon as they're introduced. The more frequently you commit, the more effective CI is.

Continuous Deployment/Delivery: To some degree, extends CI. CD refers to continuously deploying a commit as soon as it has been verified by the build and test stages.

Typically you'd break this into stages. First deploying to a "production-like" QA environment, then finally on to Production if no issues were present in QA.

This is a very oversimplified overview. If any of the terms I used don't make sense, ThoughtWorks* has a slightly deeper overview here. Or Martin Fowlers article is much more in depth.

*full disclosure: This is not an ad. But I am a TWer :)

Collapse
 
genichm profile image
genichm

Thanks.

Collapse
 
murindwaz profile image
Pascal Maniraho

Jezz Humble

Collapse
 
bousquetn profile image
Nicolas Bousquet • Edited

Continuous Integration, Delivery and Deployement mean that each time you commit a change to your software, the tooling will automatically make it progress up to the production without necessary human intervention as long as all the intermediate steps are successful including automatic testing and quality checks.

For that to happen, no human/manual intervention is necessary, quite reducing the delay between the developper fixing a bug or implementing a new feature and it's availability into production.

The same tooling is available at any development step, typically done in the background by a farm of build/test servers to give continuous feedback to the developper if what he has done works or not.

This pipeline, its stability/robustness, its efficiancy have tremendous impact on the productivity of a developpement team and for the time to market.

The availability in production may not be the last step. Companies having such automatic workflow will activate the new case only in a small number of case/request/customer, gather KPI on the feature, all automatically and decide to deploy it worldwide or fallback depending of the KPI results (% of error rate, response time, behaviour of clients...). Even that rampup/fallback can be completely automatic.

Collapse
 
vasanthpandia profile image
Vasanth Pandiarajan

Continuous Integration : Automating the process of committing code, pushing to the version control system, building code, running tests, deploying code - Done in a sequential order.

Delivery : Delivering the completed product or new release to the concerned party/customer/user.

Deployment : Pushing the new version of code to the server and running the application on that code in production.

Collapse
 
bjschrijver profile image
Bert Jan Schrijver
Collapse
 
boaz profile image
Boaz

Continues Integration is the art of passing your code through a bunch of stages to make sure it works correctly. Continues Deployment adds another stage of passing the code to some kind of a staging environment. Continues Delivery means that your code is also available global to your customers.

Collapse
 
bjschrijver profile image
Bert Jan Schrijver

And bit longer than 1 tweet:

Continuous integration: team members integrate their work frequently. Commits are verified by automated builds and tests.

Continuous delivery: building and testing software in such a way that the software can be released to production at any time.

Continuous deployment: every change goes through the build/test pipeline and automatically gets put into production.