Using CI/CD to turn ideas into software – quickly
A typical business complaint is that it takes a long time for the IT department to implement new software features. Delays in developing and getting software into production leads to lost opportunities and revenue.
In a digitally enabled organisation, however, this is not a problem, according to Roman Jouravlev, IT service management (ITSM) portfolio development manager at Axelos. Business ideas can be implemented in digital products and services in days, rather than months.
One of the tools that IT managers use to make this possible is continuous integration and continuous delivery (CI/CD). This contributes to fast development and, because the deployments are more reliable, CI/CD also leads to resilient operations.
For instance, Amazon has decreased the number of simultaneous outages and increased revenue by releasing code every 11.7 seconds on average. Netflix, by contrast, is not as fast – its developers release code only several times a day – yet it still manages to adjust to its customers’ needs, says Siddharth Sinha, co-founder of visual content provider Dresma.
“What this means is that CI/CD has greatest impact on products that need regular feature updates and continuous fixes for bugs,” says Sinha.
When changing code is a routine task, Sinha says CI/CD is an efficient way of developing software, enabling more frequent, meaningful and faster deployments, releasing updates at any time in a sustainable way.
Jouravlev says the CI/CD pipeline, combined with other techniques, helps to ensure uninterrupted flow of changes to the production environment, which in turn enables fast implementation of new product and service features, as well as new opportunities for the business. New technology requires new ways of IT management.
“There are multiple movements in this area, with organisations adopting new approaches to the management of work, organisational structures, competences and quality,” he says.
Tooling for CI/CD
CI/CD comprises a pipeline connecting a sequence of development and testing tools and processes to deploy code in an automated fashion.
According to The Forrester Tech tide: Continuous software delivery report, a continuous software delivery (CSD) pipeline allows modern software teams to turn ideas into software and drive engagement with customers, suppliers and employees. It relies on automated pipelines of interlocking tools that orchestrate the planning, design, build, test and deployment of software from staged environments to production.
However, as Forrester notes, these tools are numerous, come from many software companies and work together with varying degrees of harmony. Forrester recommends that application development and delivery professionals identify the vital technologies in which to invest to build a CSD practice that will help them deliver business value quickly.
Read more about CI/CD
Continuous integration/continuous delivery is responsible for pushing out a set of “isolated changes” to an existing application. We look at how big these changes can be.
To realise the benefits of Agile for infrastructure, network teams must think differently about how to deliver services — embracing radical change and a trial-by-error approach.
Tools in the CI/CD market are evolving quickly into more integrated products to support CI/CD initiatives.
In a market landscape report by Amalgam Insights, The 2020 guide to continuous integration and continuous delivery – process, projects and products, research fellow Tom Petrocelli notes: “The CI/CD market is evolving rapidly in a symbiotic fashion with the cloud-native, container cluster market. Presently, toolchains tend to be a DIY affair. This limits the reach of full CI/CD automation to companies with the resources to integrate products themselves. In response, end-to-end solutions are quickly emerging as vendors attempt to offer as much of the CI/CD toolchain as possible. The result will be to democratise CI/CD.”
Sinha says breaking down the software development and deployment process into a set of stages helps developers get feedback quickly. CI is the first stage of the pipeline, laying the foundation for continuous delivery and continuous deployment stages.
“Successful CI is a branch that helps individual software developers to make new code changes frequently (or on a daily basis) to the app and integrate those changes into a shared repository without breaking or conflicting the existing code of the application,” he says.
Along with the need to integrate the tools pipeline, CI/CD requires cultural changes to be made. The big barrier for IT managers is how to get developers and operations people to work differently.
Marcus Merrell, director of technical services at continuous testing provider Sauce Labs, says soft skills and intangibles are often what make or break most development teams. For instance, he points out that changes to organisational structure and business priorities happen all the time, and changes in customer behaviour and product requirements are equally recurrent, as are changes to the overall market.
“In the midst of change, it’s more important to have a development team that adapts well to new processes, leaves their collective ego out of it and takes constructive criticism from peers, than to have a team of superior coders and developers who are unable or (worse) unwilling to adapt to the inevitable cycles of change,” he says. “That’s why, when building out your CI/CD team, soft skills are every bit as important – if not more so – as coding acumen.”
The Department for Work and Pensions (DWP) has used CI/CD as part of a wider agile initiative to make code changes faster.
Speaking at the GitLab Commit 2019 conference in London, Adam Moss, head of engineering strategy, technical leadership, DevOps and SRE at DWP, said: “We make 10,000 changes to our systems every year due to bug fixes or changes in government policy.”
These changes are based on a waterfall methodology with a governance structure, but he says DWP is now moving to continuous delivery to become more agile. At DWP, the cultural changes arise from the fact that the organisation previously outsourced all of its IT. Moss says people in the business now need to take ownership, and risk cannot be mitigated through a contract with an IT supplier.
The DWP is taking advantage of infrastructure as code to remove human error, and uses configuration as code, which Moss says makes it easy to run static tests in advance. Immutability is also used to ensure servers run the same configurations. According to Moss, this gets rid of a lot of complexity, such as server drift.
Given that CI/CD is a team effort, DWP has changed how it runs staff assessments. “Staff performance reviews used to incentivise the individual over the team. As of April, we only do team assessment,” says Moss. This assesses whether the team, as a whole, has succeeded or failed.
Similarly, Moss recommends that IT decision-makers rethink their disciplinary procedures. For instance, if code created by a developer causes havoc in the IT infrastructure, Moss argues that perhaps the individual developer should not be blamed, but rather the CI/CD process could be the root cause of the problem.
Sauce Labs’ Merrell says the more CI/CD teams understand and empathise with the challenges their customers and colleagues face, the more adaptable they’ll become.
“It’s impossible to understate how important it is to have varying perspectives and life experiences on your development and delivery teams,” he says. “Your customers are diverse, so your development team needs to be as well. You can’t put yourself into the mind of someone with a completely different background and set of life experiences to you. To develop and deliver software that meets your customers’ needs, you have to understand their needs. To understand those needs, you need people on your team who share their perspectives.”
Axelos’s Jouravlev urges businesses to consider CI/CD as more than simply an IT process. It provides a technical enabler for wider organisational changes, including lean and agile principles, software development and management techniques, and product management methods.
“The management of digital products is different from the management of old-school IT systems.” He says. “And even more importantly, in a modern organisation, it is not a sole IT team’s responsibility. Digital products are effective only when technology and business expertise is united and applied throughout the product and service lifecycle.”
CI/CD is something CIOs should start taking a closer look at. As analyst Forrester found in its analysis of the CI/CD market, while there are plenty of software tools that provide aspects of CI/CD, wiring them all together to provide a seamless automated software delivery process is largely a manual process.
Over time, there will inevitably be out-of-the-box integration across the CI/CD toolchain, but CIOs must also consider the huge cultural shift that needs to take place in software development and operations to support a CI/CD mindset across the business.