Tintri all-flash storage accelerates CI/CD workflows up to 20x.
Development organizations 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. It’s the job of operations to make sure that infrastructure facilitates agile development processes to enable continuous integration and continuous delivery (CI/CD) with as few bottlenecks in the pipeline as possible. Intelligent all-flash storage systems from Tintri can help you remove bottlenecks and streamline CI/CD—let’s explore how.
In the past, software development was based on the traditional “waterfall” approach. The development process proceeded linearly through defined stages without iteration; code that was developed over weeks or months had to be merged and it sometimes took 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 that the changes introduced haven’t broken anything, thereby avoiding the big integration problems that are common with the waterfall method. Continuous delivery (CD) enables software to be released using automated release processes whenever desired. For some applications, deployment to customers may be almost immediate after tests are passed.
The CI/CD process must to be fast and efficient—anything that slows down any part of the process increases the cycle time and slows down delivery.
With CI/CD, the more iterations your team can perform every day the better. Tintri helps eliminate bottlenecks in your CI/CD pipeline in three main ways:
The ability to automate CI/CD processes is essential for success. Because development workflows typically run on VMs or in containers, automation is done at the same level of granularity. Intelligent storage can greatly accelerate CI/CD workflows, but unfortunately, other storage vendors operate primarily at the LUN or volume level, where a LUN might contain tens or hundreds of VMs. This makes automation complex, because—although the storage may provide accelerated features for snapshots, cloning, and copy data management—you can only apply those features to big buckets of VMs.
Tintri lets you automate everything directly at the VM, vDisk, or container level, taking the complexity out of automation processes and making it possible to leverage storage-related processes to accelerate your CI/CD pipeline. I talked about this advantage in more detail in my blog, Understanding the Difference Between Automation for VMs vs Volumes. The use case there was storage automation and self-service, but the principles are the same.
There are a variety of situations in the CI/CD pipeline where the amount of storage capacity and performance you have available can become a bottleneck. 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. Tintri ensures storage performance with Auto-QoS. Auto-QoS is designed to deliver optimal performance for every VM without explicit configuration. Auto-QoS works at the VM and container level, automatically keeping CI/CD workloads from interfering with each other and bogging things down. This allows you to spin up tens, hundreds, or even thousands of test workloads in parallel, and you never have to worry about load balancing or the placement of different types, sizes, or numbers of VMs inside LUNs.
Performance efficiency can also be derived from offloaded operations. For instance, suppose the application you are developing includes a database. To ensure code quality, each person in your team needs to work with and test against their own 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 complete. Tintri solves this problem with fast, space-efficient VM-Level cloning. VM-Level cloning allows you to have as many environments with full database copies as you need and to create new environments almost instantaneously.
As I mentioned above, it’s important to refresh the test workload with the latest data from production as often as possible. Having integration tests performed using production data is one of the best ways to avoid bugs and integration problems. The problem with most approaches for accomplishing this is that it requires you to make multiple copies of the data and rebuild the environment environment—including all the necessary VM settings—in order to refresh the data. This makes the process cumbersome, time and storage-space consuming, and error prone.
With SyncVM copy data management, Tintri 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. There are many ways of using SyncVM to accelerate DevOps.
The QA cycle at a large Silicon Valley technology company was taking five hours to complete. Since moving to Tintri storage, the team is now able to clone and spin up thousands of VMs across five Tintri all-flash storage systems, and complete the QA process in just 15 minutes—20X faster. Because their CI workflows had been automated using vCenter APIs, the team didn’t even have to make significant changes to existing automation. With the Tintri VAAI plug-in, vCenter offloads all cloning tasks to Tintri automatically.
This customer has also taken advantage of Tintri performance APIs to create 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.
Automated storage benefits are traditionally excluded from these processes (due to the lack of features and granularity, as discussed above). These are the results when you do include the right storage solution.
Unique control with VM-level actions for infrastructure functions including snapshots, replication and QoS make protection and performance certain in production, and accelerate test and development cycles.