Gitlab hero border pattern left svg Gitlab hero border pattern right svg

CI/CD Tools Primer

CI & CD

CD vs CD Pipeline From "Setting up GitLab CI/CD for Android projects"

Continuous Integration (CI)

Continuous Integration usually refers to integrating, building, and testing code within the development environment. Continuous Delivery builds on this, dealing with the final stages required for production deployment.
- Martin Fowler on continuous delivery, 2013

What

Why

Who

Continuous Delivery/Deployment (CD)

Continuous Delivery is sometimes confused with Continuous Deployment. Continuous Deployment means that every change goes through the pipeline and automatically gets put into production, resulting in many production deployments every day. Continuous Delivery just means that you are able to do frequent deployments but may choose not to do it, usually due to businesses preferring a slower rate of deployment. In order to do Continuous Deployment you must be doing Continuous Delivery.
- Martin Fowler on continuous delivery, 2013

What

Why

Who

Market Overview

Forrester CI Wave

Forrester CI Wave

Competitor Scope - Continuous Integration

Feature GitLab CircleCI Azure DevOps Jenkins Travis CI Bitbucket
Auto-scaling Y Y N Integration Y Y
Pipeline graphs Y Y Y Integration N Integration
Parallel jobs Y Y Y Y Y Y
Config as Code Y Y Y Y Y Y
Native Docker support Y Y Y Integration Y Y

Competitor Scope - Continuous Delivery/Deployment (CI products)

Feature GitLab CircleCI Azure DevOps Jenkins Travis CI Bitbucket
Environments Y N Y N Y Y
Env History Y N N N N Y
No Conf staging apps Y N N N Y N
Deploy boards Y N Y Integration Y N
Native Canary Deploy Y N Y N Y N
Secure variables Y N Y Integration N Y
Deploy tracability Y N Y Integration Y Y
Protected Envs Y N Y N N Y
Native Kubernetes support Y N Y Integration N N
Native Feature flags Y N N N N N

Competitor Scope - Continuous Delivery/Deployment (CD products)

Feature GitLab Spinnaker Azure DevOps XebiaLabs ElectricFlow CodeFresh
Environments Y - Y - Y -
Env History Y - N - Y -
No Conf staging apps Y - N - N -
Deploy boards Y - Y - Y -
Native Canary Deploy Y - Y - Y -
Secure variables Y - Y - Y -
Deploy tracability Y - Y - Y -
Protected Envs Y - Y - Y -
Native Kubernetes support Y - Y - N -
Native Feature flags Y - N - N -