How continuous integration and continuous delivery work together

Learn how continuous integration and continuous delivery use CI/CD pipelines to help teams deploy faster.

How continuous integration and continuous delivery work together

CI/CD helps DevOps teams release better quality software, faster. Continuous integration and continuous delivery do this by automating the way teams build, package, test, and deploy applications to users.

Continuous integration encourages teams to commit small, frequent code changes to a central repository multiple times a day. All code changes are continually validated against other code changes integrated into the same repository.

CI/CD pipelines

Code is tested at each stage through automated CI/CD pipelines. If all jobs in a pipeline pass their tests, the pipeline proceeds to the next stage. If any job in a pipeline fails, the pipeline stops early. Developers can then fix the problems found in the tests, and with smaller code changes, this is a much easier task. CI/CD pipelines maintain the integrity of the shared repository because they ensure that only code that meets certain standards is integrated.

Once all code has passed the quality and security testing, it’s ready to be released. This is where continuous delivery takes over.

Continuous delivery automates the application release process for CI-validated code. Continuous delivery can cover everything from provisioning the infrastructure environment to deploying the tested application to test/staging or production environments. Continuous delivery uses pipelines to make sure that the application code is packaged with everything it needs to deploy to any environment you choose.

How continuous delivery works

The goal for organizations practicing continuous delivery is to make the software release process automated and repeatable (i.e. boring). CD allows teams to plan their release processes and schedules, automate infrastructure and deployments, and manage their cloud resources more effectively.

Deployment environments and architectures have grown more complex as development velocity has increased. Teams working in cloud environments may use containers and rely on orchestration tools like Kubernetes to ship applications. Other teams may have adopted a microservices architecture. Continuous delivery needs to accommodate a vast array of deployment scenarios in order to be successful. This is why releases are often a bottleneck in the software delivery process.

Continuous integration and continuous delivery are the software processes that embody the DevOps philosophy. In the ideal DevOps team structure, there is visibility and communication throughout the software development lifecycle. Information silos are limited so that dev and ops can work together. Similarly, CI can represent devs and CD can represent ops.

CI/CD is a DevOps best practice because it addresses the challenge between developers who want to move fast, with operations that want stability and reliability. With CI/CD automation, developers can push changes more frequently. Operations teams see greater stability because environments have standard configurations, there is continuous testing in the delivery process, and releases are repeatable and predictable.

GitLab CI/CD

Powerful automation to build and test faster at any scale

More on continuous integration

Suggested Content

Try all GitLab features - free for 30 days

GitLab is more than just source code management or CI/CD. It is a full software development lifecycle & DevOps tool in a single application.

Try GitLab Free

Try GitLab risk-free for 30 days.

No credit card required. Have questions? Contact us.

Gitlab x icon svg
Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license