loading...
markdown guide
 
 

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 :)

 
 

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.

 

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.

 

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.

 

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.

 
Classic DEV Post from Jun 15 '19

What are your favourite resources for beginners?

What resources would you give a new team member who is also starting their first tech job?

genichm profile image
Hands-on Software Architect and Technical Lead of SAAS team.

dev.to now has dark theme. 🌝

Go to the "misc" section of your settings and select night theme

P.S. It's the best move you can make for your dev career.