Continuous integration and continuous deployment
(also CI, CD)
Continuous integration and continuous deployment definition
Continuous integration (CI) and continuous deployment (CD) are practices in software development that aim to streamline the development and release process. Continuous Integration involves merging code changes from multiple developers into a shared repository.
Continuous deployment takes this a step further by automatically deploying the successfully integrated code to production environments, making new features or fixes available to users without delay.
These practices help catch issues early, improve collaboration among developers, ensure code quality, and enable rapid and reliable software releases. They promote agility, efficiency, and the delivery of high-quality software to end users.
See also: Windows Deployment Services
How continuous integration works
- Developers write code and push their changes to a shared storage location (i.e., repository).
- An automated CI server monitors the repository for changes.
- When changes are detected, the CI server retrieves the latest code, compiles/builds it, and runs automated tests.
- If the tests pass successfully, the code changes are merged into the main codebase.
- The CI server provides feedback to the developers, highlighting any issues or failures encountered during the integration process.
How continuous deployment works
- After the code changes are tested and approved in the CI process, the CD pipeline starts working.
- The CD pipeline automatically puts the approved code changes into the real-live environment where the application runs. This stage involves packaging the application, setting up the right place for it to run, and putting the updated code on servers or cloud platforms.
- Sometimes, there may be more tests or checks to make sure everything works well.
- Once the deployment is successful, the new version of the application is ready for users to use.