What is CICD? Where is it in 2020?
By: Mohammad Ahmad
Tags: Software Development, Coding, Artificial Intelligence, Programming, Python

CICD is a development methodology which has become more important over time. In today’s software driven world, development teams are tasked with delivering applications quickly, consistently, and error-free: every single time.

While the challenges are plentiful, CI/CD is simple at its core.

For many organisations, achieving true continuous delivery is near impossible. Development teams are quickly getting more agile while the rest of the organisation struggles to adapt.

What Is CICD

CICD is an acronym for continuous integration (and) continuous delivery.

The CI portion reflects a consistent and automated way to build, package and test applications. A consistent process here allows teams to commit code changes more frequently, encouraging better collaboration and software.

On the flip side, continuous delivery automates the process of delivering an application to selected infrastructure environments. As teams develop in any number of environments (e.g. dev, test): CD makes sure that there’s an automated way to push changes through.

If you’re heard of the following companies:

Jenkins

Gitlab

CircleCI

TravisCI

Then you’re probably a little aware of CICD.

Photo by Arif Riyanto on Unsplash

The Benefits of CICD

CICD improves efficiency and deployment times across the DevOps board — having been original originally designed to increase the speed of software delivery. According to this DZone report, three-quarters of respondents (DevOps) have benefitted: not to mention the shortened development cycle time and the increase in release frequency.

A 75% success rate is very, very good.

What the DevOps Market Feels

Small to Medium sized Enterprises have begun to ramp up their investment in CICD over the last three years and are starting to compete with their larger peers.

According to DZones 2020 Study on CICD, Jenkins remains the dominant CICD platform, but GitLab has been gaining ground over the past couple of years, not to mention CircleCI .

At each stage of the CICD pipeline, the report also indicated that the majority of developers said they have automation built into the process to test code and deploy it to the next stage.

Now despite the importance of automation being built into the CICD pipeline, it’s still possible for teams to get lazy and to rely too heavily on the automation.

As your team’s responsibilities shift and new tasks arise, it is easy to automate processes too soon, just for the sake of time.

Automating poorly designed processes may save time in the short term, but in the long term, it can swell into a major bottleneck that is difficult to fix.

In doing this, teams have to be mindful to properly resolve process bottlenecks before automating and if anything does arise, they need to strip it out and fix it fully.

Moreover, developers should audit their automated protocols regularly to ensure they maintain accuracy, while also testing current processes for efficacy.

This is all part of the problem which takes time to resolve, but the effort is worth it.

Photo by Christopher Gower on Unsplash

The future in CDaas?

We’ve seen the benefits of CICD, but the DZone report highlighted that almost 45% of respondents had environments hosted on site.

Now an emerging solution for organisations is to leverage micro-services and containers to allow customer facing applications to scale.

For this, Continuous Delivery-as-a-service (CDaas) is seen to be an emerging solution of which almost 50% of of those respondents considering moving across.

I’d be interested to hear from any users of CDaas and their experiences thus far.