[Reprinted] Three pictures tell you what continuous integration, continuous delivery and continuous deployment are!

Original address: https://www.seoxiehui.cn/article-68607-1.html
Click to view the original


If you have a certain understanding of DevOps, you will often hear these keywords: continuous integration, continuous delivery, and continuous deployment. What are the correlations and differences between these words? The following content teaches you how to distinguish~

1. Continuous integration

Continuous integration
Continuous integration emphasizes that after a developer submits a new code, immediately build and (unit) test it. According to the test results, we can determine whether the new code and the original code can be integrated correctly.

2. Continuous delivery

Continuous delivery
On the basis of continuous integration, continuous delivery deploys the integrated code to an environment closer to the real operation (production-like environments). For example, after we complete the unit test, we can deploy the code to the staging environment connected to the database for more tests. If there is no problem with the code, you can continue to manually deploy to the production environment.

3. Continuous deployment

Continuous deployment
Continuous deployment is to automate the process of deployment to the production environment on the basis of continuous delivery.


Give a chestnut:

You started a company and hired a lot of coders to write code together.

You said that you want to use Gitlab for code management. When a code farmer writes the code on his development machine and wants to merge it into the main branch, he must first initiate a Merge Request (MR), which will trigger a check on the code submitted by him on a specific server, including A series of checks such as code format check, dependency check and unit test, etc., after passing all the checks, he can merge the code into the main branch, otherwise he needs to modify according to the error prompt, and then initiate a new round of checks. Then, every night at 10 o'clock in the evening there will be a timed task to take the latest code from the main branch, compile and package, and finally push the packaged program to a server for storage, this server is called Artifact Repository.

You also said that you need to deploy the packaged programs that day to the test environment every day. In other words, if a code farmer submits the code before 10 o'clock in the evening, he can see the effect of his newly submitted code in the test environment the next day.

You also said that a stable release version should be deployed in the production environment every month.

The above three paragraphs are a simple description of the process of software development to deployment, which also correspond to continuous integration, continuous delivery, and continuous deployment.


Summary: Integration, delivery, and deployment are the different stages of the software development to release process. The so-called continuation is relative to the past process. In the past, everyone wrote the code before merging, then testing, and finally releasing. This kind of process will pile up the risk to the final stage before the software is released. The concept of continuity is to submit to the next process as soon as you do something, so that problems can be found and resolved as early as possible.

Guess you like

Origin blog.csdn.net/michael_f2008/article/details/87911906