๐๐/๐๐ ๐๐ข๐ฉ๐๐ฅ๐ข๐ง๐๐ฌ: ๐ ๐๐ข๐ฆ๐ฉ๐ฅ๐ ๐๐ฎ๐ข๐๐ ๐๐จ๐ซ ๐๐๐ฌ๐ฒ ๐๐ง๐๐๐ซ๐ฌ๐ญ๐๐ง๐๐ข๐ง๐
Continuous Integration
When a developer commits (integrates) his code to the source code management system like Git, the CI tool automatically pulls the code and runs the build and unit tests. At the end of the integration artifacts are generated (say war file). This is called Continuous Integration. Some CI tools: Jenkins, CircleCI, GitLab.
Continuous Delivery
Once the continuous integration (CI) process is successfully completed we get artifacts. We deploy those artifacts onto the next available environment (say Dev) where performance and functional tests are carried out. Once the tests are successful we deploy the artifacts to the Production environment manually. This is called Continuous Delivery.
In Continuous Deployment, once the performance and functional test are successful the artifacts are automatically deployed onto the next available environment up to the Production environment without manual intervention. This is called continuous deployment.
Continuous Testing
Any modification to the code may be tested immediately with Continuous Testing. This prevents concerns like quality issues and releases delays that might occur whenever big-bang testing is delayed until the end of the cycle. In this way, Continuous Testing allows for high-quality and more frequent releases
๐. ๐๐จ๐๐ ๐๐ก๐๐ง๐ ๐๐ฌ:
Developers make changes to the codebase to introduce new features, bug fixes, or improvements.
๐. ๐๐จ๐๐ ๐๐๐ฉ๐จ๐ฌ๐ข๐ญ๐จ๐ซ๐ฒ:
The modified code is pushed to a version control system (e.g., Git). This triggers the CI/CD pipeline to start.
๐. ๐๐ฎ๐ข๐ฅ๐:
The CI server pulls the latest code from the repository and initiates the build process.
Compilation, dependency resolution, and other build tasks are performed to create executable artifacts.
๐. ๐๐ซ๐๐๐๐ฉ๐ฅ๐จ๐ฒ๐ฆ๐๐ง๐ญ ๐๐๐ฌ๐ญ๐ข๐ง๐ :
Automated tests (unit tests, integration tests, etc.) are executed to ensure that the changes haven't introduced errors.
This phase also includes static code analysis to check for coding standards and potential issues.
๐. ๐๐ญ๐๐ ๐ข๐ง๐ ๐๐ง๐ฏ๐ข๐ซ๐จ๐ง๐ฆ๐๐ง๐ญ:
If the pre-deployment tests pass, the artifacts are deployed to a staging environment that closely resembles the production environment.
๐. ๐๐ญ๐๐ ๐ข๐ง๐ ๐๐๐ฌ๐ญ๐ฌ:
Additional tests, specific to the staging environment, are conducted to validate the behavior of the application in an environment that mirrors production.
๐. ๐๐ฉ๐ฉ๐ซ๐จ๐ฏ๐๐ฅ/๐๐๐ญ๐:
In some cases, a manual approval step or a set of gates may be included, requiring human intervention or meeting specific criteria before proceeding to the next stage.
๐. ๐๐๐ฉ๐ฅ๐จ๐ฒ๐ฆ๐๐ง๐ญ ๐ญ๐จ ๐๐ซ๐จ๐๐ฎ๐๐ญ๐ข๐จ๐ง:
If all tests pass and any necessary approvals are obtained, the artifacts are deployed to the production environment.
๐. ๐๐จ๐ฌ๐ญ ๐๐๐ฉ๐ฅ๐จ๐ฒ๐ฆ๐๐ง๐ญ ๐๐๐ฌ๐ญ๐ข๐ง๐
After deployment to production, additional tests may be performed to ensure the application's stability and performance in the live environment.
๐๐. ๐๐จ๐ง๐ข๐ญ๐จ๐ซ๐ข๐ง๐ :
Continuous monitoring tools are employed to track the application's performance, detect potential issues, and gather insights into user behavior.
๐๐. ๐๐จ๐ฅ๐ฅ๐๐๐๐ค (๐๐ ๐๐๐๐๐ฌ๐ฌ๐๐ซ๐ฒ):
If issues are detected post-deployment, the CI/CD pipeline may support an automatic or manual rollback to a previous version.
๐๐. ๐๐จ๐ญ๐ข๐๐ข๐๐๐ญ๐ข๐จ๐ง:
The CI/CD pipeline notifies relevant stakeholders about the success or failure of the deployment, providing transparency and accountability.