A continuous integration and continuous delivery ( CI/CD) pipeline has the potential to transform software delivery and advance your DevOps journey. CI/CD helps bring development and operations teams together by automating the building, testing, and deployment of applications. There is a lot of information circulating about how to build and optimize your CI/CD pipeline, but unfortunately, there are also many misconceptions. Understanding these misconceptions will help prevent missteps and delays.
For example, one of the biggest misconceptions is that we tend to portray CI/CD pipelines as either a single pipe for all products or with static automation. Of course, that’s not true. Different products may require different levels of automation or different ways of implementing the automation. That’s the beauty of building CI/CD pipelines with interoperable (and potentially interchangeable) tools. There should be an architecture with certain standards or policies to avoid confusion or conflict.
[ Need to explain key Agile and DevOps terms to others? Get our cheat sheet: DevOps Glossary. ]
This is just one misconception of many that can hinder an organization’s progress. For more insights, I reached out to DevOps Institute Ambassadors. In the first of this two-part series on CI/CD misconceptions, here’s what they had to say:
Misconception: All defined processes are CI/CD
“A common misconception is that a defined process such as continuous integration is CI/CD. CI/CD is an end-to-end process that automates the delivery of code changes to users. CI/CD starts with a code commit or change to a code repository. The CI server packages that codebase to a deployable artifact which is tested, deployed, and made available to users through a CD process. CI is not the same as CD, and it’s only when CI/CD meets that we can achieve DevOps flow. A true CI/CD pipeline addresses the concerns of a cross-functional delivery team, including development, security, and operations teams.” -Tiffany Jachja, engineering manager, Vox Media
[ Expand your CI/CD "how-to" knowledge by attending SKILup Day: CI/CD on July 22. Register here. ]
Misconception: DevOps is all about CI/CD
"The biggest misconception about CI/CD is that everything about DevOps is CI/CD (continuous integration/continuous delivery). The truth is that CI/CD is a key component of DevOps but it’s not everything. DevOps focuses on the culture and responsibility of a team. It emphasizes the need for everyone on the team to take part in tasks. CI/CD enables this culture with software and tools for automation.” -Dheeraj Nayal, global community ambassador & region head, APJ & MEA, DevOps Institute
Misconception: It's inflexible
"Too often the CI/CD pipeline is treated the same way we used to treat Gantt charts: That’s the way it has been written, and that is the way it will go. The assumption is often that to pass through a change or a fix will take the length of time it takes for each automated operation to take. This ignores the truth that things fail. If things did not fail, why do we bother testing? The time it takes to pass through a defect process and fix a failure is often ignored in the time it can take to deliver a feature, especially when the process of defect management is not considered as part of the CI/CD process.” -Stephen Walters, sales engineer, Everbridge
Misconception: Just saying CI/CD is enough
"The biggest misconception about CI/CD is just saying the words change the pipeline’s realities. It’s a little like Dorothy saying, 'There’s no place like home,' to find she has been dreaming of the entire team. Companies say they have instituted CI/CD when the process remains manual at every step. Words have meaning, and continuous integration and continuous delivery means once a product has completed development, the next step is either customer delivery past production, or back to the dev team for fixes. It is good to have integration and delivery pipelines, and they can increase delivery speed to deliver value, but it is not the same as CI/CD.
“When you look at the pipeline, if there are manual steps, change reviews, and in-person approvals before moving on, the continuous part is not happening. Understanding the workflow and shortening these areas can help automate some practices. If your organization develops, hands off to an integration team, and the integration team deploys and hands off to the user, no matter how well-defined those processes are, it is not a CI/CD pipeline unless the C stands for conventional.” -Mark Peters, technical lead, Novetta
Misconception: Deployment is the most important goal
"It's a misconception that getting your code to the end of the pipeline and deployed somewhere is the most important goal. Your pipeline may deploy your software so it’s easy to think, ‘great, job done!’ and miss out on all the valuable steps that need to happen before a deployment. In fact, the pipeline needs to be examined as a whole because it’s the gateway to production. A good pipeline includes steps like testing and security scanning, which require the developers to think and plan so that they provide strong quality control. This will help you to build the best pipeline possible.
“Rather than believing your tool will provide all the answers, it’s important to remember that CI/CD is a set of principles. It’s a way of working. The tools are only in place to enable those principles to work. To thrive, you need to remember the importance of the principles in the first instance.” -Craig Cook, principal engineer, Catapult CX
[ How can automation free up more staff time for innovation? Get the free eBook: Managing IT with Automation. ]
What to read next
Subscribe to our weekly newsletter.
Keep up with the latest advice and insights from CIOs and IT leaders.