3 ways to accelerate CI/CD
Enterprises must adapt to the digital era by delivering new software and services faster and more efficiently.
Many of you are turning to agile development methods and DevOps as the best way to accomplish this.
But how can operations make sure the infrastructure facilitates agile development processes? How can you enable continuous integration and continuous delivery (CI/CD) with as few bottlenecks in the pipeline as possible?
First, let’s get clear on the definition of CI/CD, then we’ll talk about three ways you can speed development cycles.
What is CI/CD?
In the past, software development was based on the traditional “waterfall” approach. Development proceeded linearly through defined stages without iteration; back then it might take months—or even years—to deliver a new or updated product.
With continuous integration (CI), developers merge changes into the main branch of the software frequently, often multiple times per day. Automated testing ensures the changes introduced haven’t broken anything, thereby avoiding the big integration problems common with the waterfall method.
Continuous delivery (CD) enables organizations to release software using automated processes whenever desired. For some applications, deployment to customers may be almost immediate after the software passes its tests.
3 steps to accelerate CI/CD
With CI/CD, the more iterations your team can perform every day the better. You can eliminate bottlenecks in your CI/CD pipeline in three main ways:
1. Ensure processes work at the right level of abstraction
The ability to automate CI/CD processes is essential for success. Because development workflows are typically built around VMs or containers, you need storage that operates at this same level of granularity.
Beware of storage that operates primarily at the LUN or volume level, where a LUN might contain tens or hundreds of VMs. These old-fashioned constraints make automation complex, because, although the storage may provide accelerated features for snapshots, cloning, and replication, you can only apply those features to big buckets of VMs.
When you can automate everything directly at the VM, vDisk, or container level, you eliminate the complexity and can more readily automate all storage-related processes in your CI/CD pipeline.
2. Eliminate storage capacity and performance constraints
The amount of storage capacity and performance you have available can become a bottleneck in a variety of situations in the CI/CD pipeline.
For instance, suppose the application you’re developing includes a database. To ensure code quality, your team needs to work with and test against an up-to-date copy of the database.
Given the size of modern databases, if you try to give everyone on the team—and every automated test environment—a physical copy, storage capacity will quickly become an issue, not to mention the time spent waiting for physical copies to occur.
That’s why you need space-efficient cloning to eliminate capacity constraints. Cloning allows you to have as many environments with full database copies as you need and to create new environments almost instantaneously.
The worst thing you can do is have members of your team sitting idle waiting for some process to complete. Extended software build times, slow provisioning, and slow testing are all bottlenecks.
We have heard from customers that this degree of cloning efficiency has accelerated build times as much as 30 times. Plus, systematic cloning can play in an important role in recovering from disaster.
Another way to improve team performance is with Auto-QoS, which works at the VM and container to prevent CI/CD workloads from interfering with each other. You never have to worry about load balancing or the placement of different types, sizes, or numbers of VMs inside LUNs.
3. Speed up provisioning
As I mentioned above, it’s important to refresh with the latest data from production as often as possible. It’s one of the best ways to avoid bugs and integration problems.
The problem with most approaches for accomplishing this is that you have to rebuild the entire environment—including all the necessary VM settings—in order to refresh the data. This makes the process cumbersome, time consuming, and error prone.
Advanced copy data management makes it possible to accomplish refreshes without rebuilding the entire environment, streamlining the process. As a result, there’s less disruption and you can refresh regularly.
The right storage makes a big difference
The QA cycle at a large Silicon Valley technology company was taking five hours to complete on LUN-based storage. The team moved to VM-based storage and automated its CI/CD processes. Now it can spin up thousands of VMs and complete the QA process in just 15 minutes—20 times faster.
And because CI workflows had been automated using vCenter APIs, the team didn’t even have to make significant changes to existing automation; through a VAAI plug-in, vCenter automatically offloaded storage-related tasks.
This company also created a self-service Performance Console, enabling the engineering team to analyze transient CI workloads to see how much headroom exists without having to contact IT. That freed the engineering team to focus on what it does best: innovating new products.
If your engineering team is under pressure to speed cycle times, help them find storage that meets their needs. All-flash storage with space-efficient cloning, auto-QoS, and VM-level automation can keep your CI/CD processes running smoothly so you can meet the evolving needs of your customers.
About the author
Seth Moskowitz is the Technical Partner Sales Manager of Tintri with over 20 years of experience designing, building, and selling infrastructure technology. He has worked in the public sector and then spent over 14 years working for a large financial organization. Seth currently manages the Tintri/SHI relationship nationwide.