Unblurring the Lines: Continuous Integration vs. Continuous Delivery
Oct 15, 2020 by Anthony Bibbs
Continuous Integration (“CI”) and Continuous Delivery (“CD”) are two terms that are used in the context of modern DevOps practices, so much so that they are often combined as “CI/CD.”
However, we’ve found that there is a lot of confusion about what these terms actually mean, why they are distinct from each other, and how best to implement them.
What is Continuous Integration?
CI is the practice of automating the integration of code changes from multiple contributors into a single deployable unit. It emphasizes frequent code check-ins and significant automation in creating and testing the new build.
Why is Continuous Integration Important?
CI makes it possible for multiple devs to work together on the same project by keeping the main code branch up-to-date and minimizing code conﬂicts.
What is Continuous Delivery?
CD is the practice of combining artifact creation, infrastructure provisioning, and app deployment into a single, automated unit of work. It emphasizes frequent app deployments, and extends robust automation and testing from CI all the way through to the deployment of code into production environments.
Why is Continuous Delivery Important?
CD ensures that every code change is ready to be deployed to production, adding significant safety and speed to DevOps organizations and shortening the time to get new features into the hands of users.
CI and CD Are Processes Supported by Specialized (and Distinct) Tooling
CI and CD are processes, enabled by cultural norms and specialized tools. CI has become commonplace over the last decade, supported by popular tools such as Jenkins, GitLab, CircleCI, and others. Most companies that use centralized repositories are already doing CI. CD is newer, and requires CI, so most associate the two together as “CI/CD.” But CD is a fundamentally diﬀerent process, extending far past the Git repo and requiring collaboration between Dev, Ops, Security & Compliance, SREs, and others.
As a result, attempts to extend CI tools into the CD process tend to break down at scale. Because CI tools are not purpose-built for handling infrastructure, and because they are designed for Dev-to-Dev collaboration rather than Dev-Ops-Security-SRE collaboration, extending them into CD involves significant manual scripting and spaghetti code. Common issues that arise include:
- Lack of scalability: Cannot handle the deployment of dozens or hundreds of microservices to their end target(s).
- No repeatability: Each teams uses their own hand-scripted path to production, with no ability to share or enforce best practices.
- Difficult maintainability: Significant, costly ongoing eﬀorts to maintain and update custom-built deployment tooling.
Only purpose-built tools have the depth of functionality and breadth of integration across the software development lifecycle to achieve CD at scale. Leading CD tools are capable of providing:
- A unified platform that integrates Dev, Sec, and Ops tools and teams, without custom code, to automate the full deployment lifecycle.
- The ability to easily scale to thousands of microservices deploying to multiple targets.
- Codifed, repeatable pipelines shareable across the entire organization.
- Built-in progressive rollout strategies such as blue/green and canaries to enable safe deployments and 1-click rollbacks.
Spinnaker Is the Purpose-Built CD Tool of Choice for Leading Enterprises
Netflix, Google, Armory, and an open source community made up of industry-leading enterprises built Spinnaker on best-practices learned by delivering software at scale. Spinnaker provides an empowering developer-centric approach to software delivery, and integrates all the tools, approvals, and infrastructure needed to automate the enterprise software delivery lifecycle. An open source platform, Spinnaker is vendor-neutral, cloud-native, and target agnostic, so teams can instantly deploy their code at scale to Kubernetes and any and all cloud platforms using a single, automated, golden path to production.
Armory Scales Spinnaker for the Enterprise
Armory provides an enterprise-grade distribution of Spinnaker that enhances the open source platform with DevSecOps collaboration, deep integrations, GitOps workflows, and more, as well as expert support. With Armory, new developers can safely deploy from code to cloud on their frst day, while teams can deploy and deliver value all day long.
Interested in learning more? Contact us here.
Recently Published Posts
Monitoring Spinnaker: Part 1
Overview One of the questions that comes up a lot is how you monitor Spinnaker itself. Not the apps Spinnaker is deploying, but Spinnaker itself and how it’s performing. This is a question that has a lot of different answers. There are a few guidelines, but many of the answers are the same as how […]
Read more →
The Importance of Patents: Interview with Nick Petrella, Head of Legal
In honor of Armory’s recent acquisition of a patent for continuous software deployment, we sat down with Nick Petrella, Head of Legal, for a casual conversation covering a wide range of subjects, from patent law to Nick’s background as a software engineer and why he made the leap to the law. Check out […]
Read more →
Armory Agent for Kubernetes Simplifies K8s Complexity
I’ll be upfront with you, I’m a sucker for a good origin story. It’s one of the reasons I spent hours engrossed in the Marvel Cinematic Universe not too long ago. Rooting for incredibly flawed individuals with an outsized sense of duty and superpowers to back it up….What’s not to love? My partner has a […]
Read more →