Continuous Integration, Deployment, and Delivery (CI/CD)
CI/CD is the combined set of Continuous Integration, Continuous Deployment, and Continuous Delivery practices. In a nutshell, these practices are designed to keep code ready for deployment at all times.
What is Continuous Integration?
Continuous integration is a set of processes and practices designed to improve development time and quality by continuously merging all developer work into a shared main line of development and ensuring these changes all work together as intended through automation.
Some common practices associated with continuous integration are:
- Regular (at least daily) merges of code
- Build and test automation of merged code
- Monitoring and response protocols for build failures
What is Continuous Delivery and Deployment
Continuous delivery is the practice of improving time-to-value by continuously deploying to non-production environments for testing. Continuous deployment extends continuous delivery all the way through to production. The two terms are often used interchangeably because continuous deployment is an extension of continuous delivery, though it frequently does have special considerations.
Some common practices associated with continuous delivery and deployment are:
- Continuous integration
- Automated deployments and rollbacks
- Advanced diagnostic and system health monitoring
CI/CD resources
Deeper Knowledge on Software Pipelines (CI/CD)
Infrastructure as Code (IaC)
A technique to version-control and automate the deployment of virtualized infrastructure
GitLab CI/CD
Tips for working in GitLab CI/CD
Broader Topics Related to Software Pipelines (CI/CD)
Software Engineering
Engineering approaches to software development