Thinking About CI/CD? Here's What You Need to Know
December 03, 2019

Valerie Silverthorne
GitLab

Now that every organization is a software company, the pressure to produce better code faster has never been more intense. An increasing number of organizations choose DevOps to bring traditionally siloed developers and ops teams together and they count on continuous integration and continuous deployment (CI/CD) to speed up the process.

If DevOps is a car, CI/CD is the transmission that connects all the moving parts together to allow for a smooth drive. No modern software development effort can thrive without CI/CD so if you're just getting started here's everything you need to know.

What's in a Name?

Let's break CI/CD down into its relevant components. Continuous integration is a way to tackle the always tedious and time-consuming job of testing code and it does so in a way that does not add any extra burden to developers. Code tests and checks are automated and the results are delivered back to the developer. CI also allows developers to split tests and builds across different machines which cuts the time involved and makes multitasking possible. 

Continuous deployment picks up where CI leaves off — tested and checked code can be automatically deployed to production using the CI server.

So, together, CI/CD represent a way to automate the most time consuming steps in software development and deployment.

The Solution to Universal Problems

Virtually every company struggles with the same set of problems that CI/CD can potentially solve.

Toolchain sprawl is pervasive — a surprising number of companies use more than 15 toolchains and that of course means time and human resources to maintain it all. An integrated out of the box CI/CD solution eliminates that problem and frees up resources for things that matter.

Even in a DevOps shop it can still feel like it's Devs vs. Ops because the priorities of the two groups are so wildly dissimilar. Devs are incentivized to create new features while Ops pros are rewarded by having a stable environment with a lot of uptime. CI/CD can help bring those opposing forces together around a single toolchain and let each group do what they do best without playing the blame game.

Code can also get stale while waiting around to either be tested or for devs to get energized about "context switching." CI/CD can tighten that loop to minutes rather than days or weeks ensuring everyone is working as efficiently as possible.

And while CI/CD is often hailed as a boon to developers, it's worth pointing out some concrete benefits to age-old Ops problems. An integrated CI/CD solution will bring automatic monitoring so error rates and infrastructure costs can suddenly be measured easily. And automated deployments free Ops pros to focus on value-added tasks rather than waiting around for developer hand-offs.

Every company knows the struggle involved in hiring tech talent but did you know CI/CD can play an important role in this area too? The Stack Overflow 2019 Developer Survey found languages, frameworks and other technologies as the most important factor for developers when looking for a job. In other words, the tech solutions a potential employer chooses matter and a cutting edge CI/CD solution in a DevOps shop offers some "sizzle" to job candidates.

Measure Success

CI/CD can bring solid benefits but it's vital to understand how to measure success or recognize under-performance. A good place to start is with cycle time. We like to think of cycle time as the period between starting work on an idea and delivering it to production or in to the hands of the end user. Your definition may vary but what matters is to compare cycle time without CI/CD to cycle time with CI/CD. Some companies report cycle times that took months now take hours with an integrated CI/CD solution

Time to value is another factor to consider because, done right, CI/CD should shorten that timeframe dramatically. Companies should also consider uptime, error rates and infrastructure costs.

Remember the Culture Change

When our organization transitioned to CI/CD, we noticed a dramatic cultural shift on the engineering team. Gone were the days of weekly deploys and long waits to see the impact of a code merge. Our "definition of done" changed and how we spent our time changed too.

In an internal 2018 survey, we found the delivery team spent 60% of their time babysitting deploys and 26% of their time on manual or semi-manual tasks in the 14 days leading up to a release. Fast forward to 2019 and 82% of the team said they were free to work on other tasks during the same 14-day pre-release time period.

CI/CD can bring speed, consistency and even happiness into your software development and deployment efforts. Start small, get it running and then build it out. Your DevOps team will thank you.

Valerie Silverthorne is Senior Content Editor at GitLab
Share this

Industry News

July 01, 2020

JFrog announced the launch of ChartCenter, a free, security-focused central repository of Helm charts for the community.

July 01, 2020

Kong announced a significant upgrade to open source Kuma, Kuma 0.6, available today.

July 01, 2020

Compuware Corporation, a BMC company, announced new capabilities that further automate and integrate test data and test case execution, empowering IT teams to achieve high-performance application development quality, velocity and efficiency.

June 30, 2020

Couchbase announced the general availability of Couchbase Cloud, a fully-managed Database-as-a-Service (DBaaS).

June 30, 2020

Split Software announced new capabilities designed to accelerate the adoption of feature flags in large-scale organizations.

June 30, 2020

WhiteHat Security announced a discounted Web + Mobile Application Security bundle to help organizations secure the digital future.

June 29, 2020

Puppet introduced the public beta availability of Relay, an event-driven automation platform.

June 29, 2020

D2iQ introduced KUDO for Kubeflow to simplify and accelerate machine learning (ML) deployments on Kubernetes.

June 29, 2020

Codefresh announced $27M in new funding led by Red Dot Capital Partners.

June 25, 2020

Micro Focus announced the general availability of Visual COBOL 6.0 and Enterprise Suite 6.0, providing versatile application, process and infrastructure modernization solutions for today’s enterprise developer.

June 25, 2020

SaltStack announced new features available in SaltStack Enterprise 6.3 that integrate best-of-breed IT monitoring and vulnerability management solutions, including Splunk, Tenable, Qualys, Rapid7, and Kenna Security.

June 25, 2020

Keysight Technologies has completed the acquisition of Eggplant from The Carlyle Group.

June 24, 2020

JFrog unveiled new capabilities to address the growing problem of software distribution bottlenecks. The newly introduced CDN-based and Peer-to-Peer software package distribution mechanisms empower companies to overcome the challenge of frequently delivering large volumes of artifacts to internal teams and external clients.

June 24, 2020

Copado announced its Summer 20 release to accelerate, optimize and measure innovation delivery on the Salesforce platform.

June 24, 2020

Bugsnag launched Stability Center, a centralized location that offers a holistic view into stability stats and trends across releases for multiple client and server-side applications.