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.
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.
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, 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:
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:
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 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.
Multi-target deployments can feel tedious as you deploy the same code over and over to multiple clouds and environments — and none of them in the same way. With an automatic multi-target deployment tool, on the other hand, you do the work once and deliver your code everywhere it needs to be. Armory provides an […]
Read more →
KubeCon+CloudNativeCon EU is one of the world’s largest tech conferences. Here, users, developers, and companies who have and intend to adopt the Cloud Native standard of running applications with Kubernetes in their organizations come together for 5 days. From May 16-20, 2022, tech enthusiasts will congregate both virtually and in person in Valencia, Spain to […]
Read more →
Deciding how frequently to release a product is an interesting challenge faced by many companies. There are definite pros and cons related to adjusting your release cadence that have to be evaluated on an individual basis. Faster release cycles in theory might sound good, but of course, there can be tradeoffs. Looking at historical release […]
Read more →