The ReleaseTEAM Blog: Here's what you need to know...
What is CI/CD?
A popular benefit of DevOps is reducing the speed to market, which requires increasing the speed of development, test, and release cycles. Continuous integration (CI) and continuous delivery or continuous deployment (CD) work together to achieve this goal.
Figure 1: CI (blue stages) and CD (gray stages) pipeline
Some benefits of CI/CD include:
- Competitive products because organizations can experiment with new features and respond to any bugs or security vulnerabilities more quickly
- Testing efficiency. CI/CD depends on automating processes, particularly in the testing stages
- Reduced risk by testing and implementing small changes. These changes will either be integrated, debugged, or rolled back without affecting more extensive portions of the code base
Continuous Integration (CI)Continuous integration focuses on the initial stages of development and testing. Development teams must create automated tests for each new feature or code change to enable continuous integration. In CI, build frequency increases because developers work on smaller changes, merge often, and validate those changes through testing. According to Atlassian, CI reduces context switching “as developers are alerted as soon as they break the build and can work on fixing it before they move to another task.” Catching and fixing these bugs earlier in the process, simplifying release integrations, and reducing the number of bugs that make it into production code.
Continuous Delivery and Continuous Deployment (CD)Continuous delivery and continuous deployment are very similar, but continuous deployment automates the deploy-to-production step, and continuous delivery requires a human to push to production manually. In most implementations, CD takes over from CI when the build passes the early testing and before it starts more comprehensive testing (see the gray stages in Figure 1). The advantage of continuous deployment is that smaller changes are being released consistently rather than stopping work for a big upgrade.
Top CI/CD Tool Vendors
Figure 2: CI/CD Landscape according to Continuous Delivery Foundation
Below is a quick introduction to a few of the CI/CD vendors
- Atlassian Bamboo Data Center is an on-prem continuous delivery pipeline that offers resilience, reliability, and scalability for teams of any size. Jira and Bitbucket fully integrate with Bamboo to deliver full traceability from request to delivery.
- CircleCI was ranked a Leader in The Forrester Wave™: Cloud-Native Continuous Integration Tools, Q3 2019.
- CloudBees has several CI/CD tools, including Electric Cloud (acquired in 2019), Jenkins Core, CodeShip, Jenkins X, and DevOptics. CloudBees Electric Cloud was named a “Leader” in the last Gartner Magic Quadrant Application Release Orchestration (2019) and the most recent Forrester Wave: Continuous Delivery And Release Automation, Q2 2020.
- Concourse CI is an open source CI/CD tool that began in 2014.
- GitLab was rated a Strong Performer in the Forrester Wave: Continuous Delivery and Release Automation report for Q2 2020. In 2019, GitLab was ranked as a “Challenger” in the Gartner Application Release Management MQ.
- Jenkins continues to be a popular CI tool and is currently listed as the only “graduated” Continuous Delivery Foundation (CDF) project.
- Travis CI was one of the first CI services to provide services to open-source projects for free and one of the first to integrate with GitHub. Idera Software acquired Travis CI in 2019.