Thundra sponsored this post.
Automated continuous integration and continuous deployment/delivery (CI/CD) pipelines are an integral part of the DevOps culture of rapid and frequent software releases.
The adoption of a CI/CD platform that automates testing, builds and alpha/beta/production deployment is a key indicator of DevOps maturity. However, a survey conducted in mid-2020 by GitLab — one of the leading CI/CD solutions — shows that only 38% of organizations have fully incorporated CI/CD workflows and tooling into their DevOps implementations.
Shortening the time-to-market for innovative new applications, features and services has become a business imperative. As with any paradigm shift, the migration from legacy software release cycles to CI/CD pipelines cannot be regarded as just an IT/operations issue. One of the keys to success is to get buy-in for CI/CD adoption across a wide range of stakeholders and business units.
This blog post describes the benefits and challenges of CI/CD pipelines from the perspective of business stakeholders, who are essential champions for the strategic decision to invest time and resources in a CI/CD initiative.
A CI/CD Pipeline Primer
To make sure we’re all on the same page, this is how we understand the various layers of the CI/CD pipeline:
- Continuous integration is the automated and seamless merging and testing of incremental code changes as they are committed to the central repository. CI ensures that the changes/additions are bug-free and don’t break the existing application.
- Continuous delivery is the hands-free preparation for release of code that has successfully made it through the CI pipeline. After automated alpha and beta testing in non-production environments, the code is then manually released to the production environment.
- Continuous deployment goes one step further and automates the deployment of code into the production environment.
The CI/CD approach is a radical departure from legacy software release cycles, where release testing is a drawn-out process that takes place on a large codebase toward the end of the software development lifecycle. By shifting the focus to the frequent delivery of incremental code batches, new features and rapid fixes can drive better business outcomes. The GitLab survey mentioned above found that 60% of the organizations that have embraced a CI/CD approach deploy daily or every few days — in many cases, as often as multiple times a day.
Many of the major software vendors and all of the cloud service providers offer comprehensive enterprise-grade CI/CD tool stacks, including AWS, IBM, Microsoft, and Red Hat. However, given the wide range of CI/CD requirements, activities and environments, most organizations build a best-of-breed tool stack rather than commit to a single provider.
How CI/CD Captures Business Value
The following is a brief overview for business stakeholders of what CI/CD can contribute to their organization:
- Code is easier to manage and of better quality: Managing smaller chunks of code on an ongoing basis makes it easier and faster to isolate problems (shorter MTTR) and reduces the risk of unintended consequences in the production environment. Automated tests can fix bugs immediately, often reducing the backlog of even non-critical issues. Also, end-users will be grateful for not being made involuntary members of your QA team.
- Shortens time-to-market for new products and features: CI/CD lets the organization achieve maximum business velocity without compromising quality. Evolving end-user requirements can be addressed quickly, including on-demand releases. Both the accelerated time-to-value and the enhanced end-user satisfaction are significant competitive advantages.
- Creates fast feedback/failure loops: A key CI/CD principle is that if something is going to fail, it should fail fast. With CI/CD, companies get immediate feedback from end-users on new functions and features and can respond accordingly. CI/CD also lends itself to rapid A-B testing, feature toggles and blue-green deploys of new production features prior to full release. If an update turns out to be problematic, it can be automatically rolled back with little to no downtime.
- Creates new communications channels within the organization: CI/CD fosters a culture of agility and innovation throughout the entire organization. It also provides a platform for communications among developers, product managers, testers and operations admins. These teams can now collaborate seamlessly, with a sense of shared responsibility and within an environment that values responsiveness and initiative.
- Enhanced employee productivity and satisfaction: Development, IT and operations teams welcome the automation of tedious repetitive tasks that often contribute to employee burnout. Thus, employees have more time for strategic initiatives that can move the business forward. Also, their enhanced productivity can reduce costs.
- Data-driven business decisions: CI/CD produces a lot of valuable metrics across the entire software development life cycle, including continuous monitoring and observability data from the production environment. These metrics support data-driven business decisions regarding product roadmaps, infrastructure requirements, team performance and more.
Introducing a CI/CD pipeline into a company is not without its challenges.
It is very difficult, for example, to achieve observability in an environment of frequent new code merges. Should application performance issues arise, identifying the particular code that introduced a regression, a bug or a fairness issue is a lot like trying to find a needle in a haystack? This observability challenge is further exacerbated when talking about distributed cloud native applications. It is important, therefore, that a next-generation observability tool be part of the CI/CD pipeline — a tool that correlates code-merge events and application performance in order to accelerate debugging and fixes.
Although there are technical barriers to overcome, for the most part, the hurdles are related to organizational culture. For example, a CI/CD initiative could encounter fear and resistance among developers and admins, who might be concerned that they are automating themselves out of a job. Thus, CI/CD will thrive best in a company that has already made a commitment to DevOps integration and whose core values include innovation and a belief that failure is simply an opportunity to learn.
It is also important that the organization be prepared to manage the changes that CI/CD inevitably introduces, beyond IT and ops. Project managers, for example, will have to adopt more agile processes and tools in order to keep up with CI/CD velocity. They should be given the support and resources to make that transition smoothly.
Conversely, marketing and sales have to be ready and able to support rapid, continuous releases. Otherwise, the potential business value from CI/CD will not be fully leveraged. There are also executives and managers who might be tempted to push for one-off changes in response to highly specific, point-in-time issues. This kind of pressure can interfere with achieving the company’s strategic roadmap.
Finally, a CI/CD initiative requires investments in training, hiring, infrastructure, tooling and more. Thus, it has to be given a budget and viewed not as a cost center but as a strategic priority.
Measuring CI/CD Value
Failed IT projects cost businesses around the globe $3 trillion each year. Failure takes many forms, including non-completion, inability to release, failure to effectively address business needs, cost overruns and missed timelines. Therefore, the first measurable value of CI/CD pipelines is that they reduce the risk and cost of IT failure by producing better code and well-targeted, highly available products and systems. CI/CD pipelines also automate and optimize provisioning and testing workflows, which reduces errors and lowers costs.
More specifically, business stakeholders can quantify CI/CD value by tracking key performance indicators (KPIs) such as deployment frequency and new request lead time, deployment failure rate, change volume and change request lead time, meeting availability and performance SLAs, mean time to recovery (MTTR), defect volume, escape rate and more. (See our article DevOps and Business Stakeholders for more information on how business stakeholders can use these KPI metrics to assess the value of their CI/CD initiatives.)
Conclusion: The CI/CD Challenge
In an era of fierce competition for market share, staying ahead of the curve is essential. The jury is in and the verdict is clear — CI/CD pipelines accelerate DevOps maturity and deliver significant business value in terms of code quality, shorter time to innovation, fast feedback loops, better cross-team collaboration and enhanced productivity.
Companies that accept the CI/CD challenge must be prepared to deal with the fallout across the entire organization, from IT to sales and marketing. There will be pockets of resistance to overcome and new skill sets to be developed. CI/CD must be seen by all as a strategic initiative that requires investment (aka budget) in training, hiring, infrastructure and tooling.
Thundra’s observability solutions were built from the ground up to address the visibility and debugging challenges of cloud native applications, including those built on a highly distributed microservices architecture. Find more information about Thundra Sidekick to learn how.
Featured image via Pixabay.