๐‚๐ˆ/๐‚๐ƒ ๐๐ข๐ฉ๐ž๐ฅ๐ข๐ง๐ž๐ฌ: ๐€ ๐’๐ข๐ฆ๐ฉ๐ฅ๐ž ๐†๐ฎ๐ข๐๐ž ๐Ÿ๐จ๐ซ ๐„๐š๐ฌ๐ฒ ๐”๐ง๐๐ž๐ซ๐ฌ๐ญ๐š๐ง๐๐ข๐ง๐ 

ยท

3 min read

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.

ย