CI/CD (Continuous Integration/Continuous Delivery) is a software code development methodology that ensures reliability and speed of product creation. Belongs to one of the typical DevOps practices.
Its main difference is that the testing and assembly of the code are carried out in automatic mode. This approach avoids mistakes in the early stages and minimizes risks.
Principles of work
CI (Continuous Integration) - continuous integration. As the code is being written, developers are constantly making changes uploaded to the repository. For automatic testing and verification, specialized services (for example, Github) that create scripts are used. A log is maintained, in which all modifications are recorded.
CD (Continuous Delivery) - continuous delivery. Responsible for automatic build deployment in any environment: production, test, or development environment. For example, after editing the code, it is automatically placed in the testing area.
The methodology is used by companies that frequently modify the code during development, but issue stable releases. Developers get an automatic process of testing and deploying the application, which allows them to focus on continuous software improvement.
Stages of the methodology
The CI/CD cycle is conditionally divided into 7 stages.
- Creation. Programmers write a certain part of the code and then test it manually. If the test is passed successfully, the parts are combined into a single code and transferred to the working branch of development.
- Drafting. In the second stage, the software is used to control product versions (for example, Git). The program starts automatic compilation with the changes made, and then the resulting code is tested. Criteria for successful completion are set manually.
- Manual test. After passing the self-test in the software, the product goes to be checked by a team of testers. They manually check the written code and look for bugs.
- Release. After the successful completion of the third stage, the code is released. A working build is created to upgrade the current software product to the current version.
- Deployment. The received update is published on the official servers of developers to update the software to the latest version.
- Support and monitoring. Developers monitor customer feedback and prepare a list of future changes.
- Planning. At the last stage, an approved list of changes for subsequent versions is created. After this stage, the development cycle ends and begins again.
According to this principle of operation, users receive a fully working release. If they find an error or bug, they notify technical support.
The CI/CD methodology shortens the development time of a software product, detects errors and flaws in the early stages of code creation, and even reduces recovery time in the event of an incident.
Changes are logged, which speeds up the process of tracking bugs and adding new features to the software product.