CI
Continuous integration (CI) is a software development practice in which developers regularly merge their code changes into a central repository, and automated builds and tests are run on the code. The goal of CI is to identify problems early in the development process, so that they can be addressed as quickly as possible. There are a number of techniques that can be used to support CI:
- Automated builds: Automated builds are processes that compile and package code into executable form, often as part of a CI pipeline.
- Automated testing: Automated testing involves running a suite of tests on the code to ensure that it is functioning correctly. This can include unit tests, integration tests, and acceptance tests.
- Code reviews: Code reviews involve other developers reviewing code changes before they are merged into the main repository. This can help to identify problems and improve the overall quality of the code.
- Continuous deployment: Continuous deployment involves automatically deploying code changes to production environments as soon as they are merged into the main repository. This can help to ensure that new features and updates are delivered to users quickly and reliably.
- Continuous delivery: Continuous delivery is similar to continuous deployment, but involves a manual step to confirm that the code is ready for deployment. This can provide an extra layer of control and allow for more careful testing before new code is deployed.
CD
Continuous Deployment (CD) is a software development practice in which code changes are automatically built, tested, and deployed to production environments. This can help to speed up the delivery of new features and updates to users, and can also reduce the risk of errors caused by manual deployment processes.
There are several techniques that can be used to support continuous deployment:
- Automated builds and testing: Code changes should be automatically built and tested as part of the deployment process to ensure that they are functioning correctly. This can include unit tests, integration tests, and acceptance tests.
- Deployment pipelines: Deployment pipelines are automated processes that move code changes through various stages, such as build, test, and deployment. This can help to ensure that code is thoroughly tested before it is deployed to production environments.
- Feature flags: Feature flags allow developers to release new code to a subset of users, rather than to all users at once. This can help to mitigate the risk of introducing new features, and can allow for more careful testing and rollback if necessary.
- Rollback mechanisms: Rollback mechanisms allow for the quick and easy undoing of code changes if necessary. This can help to ensure that deployments can be quickly reversed if they cause problems.
- Monitoring: Monitoring systems can be used to track the performance and stability of deployed code. This can help to identify problems quickly and allow for corrective action to be taken.
Bonus :
To set up a CI pipeline in Azure DevOps, follow these steps:
- Navigate to your Azure DevOps project and select the “Pipelines” option in the left menu.
- Click the “New pipeline” button to create a new pipeline.
- Select the source code repository that contains your code. If you are using Git, you will need to authorize Azure DevOps to access your repository.
- Select a template for your pipeline, or choose “Starter pipeline” to create a blank pipeline.
- Configure the steps in your pipeline by adding tasks to the pipeline. There are many tasks available in Azure DevOps, including tasks for building code, running tests, and deploying code.
- Save and run your pipeline to build and test your code.
- Set up automatic triggering for your pipeline by configuring the “Triggers” tab in the pipeline editor. You can set the pipeline to run automatically whenever code is pushed to the repository, or you can configure a custom trigger.
- Set up notifications for your pipeline by configuring the “Notifications” tab in the pipeline editor. You can configure email or Slack notifications to be sent whenever the pipeline succeeds or fails.
Leave a Reply