Selecting the Right Storage for Development and Testing
January 10th, 2014 By: Industry Perspectives
Sachin Chheda is the director of product and solution marketing for Tintri.SACHIN CHHEDA
Virtualization is a natural fit for software and application development/test environments. Providing software developers and test/quality assurance (QA) teams with their own complete virtual environments results in more efficient development and testing. This in turn leads to significant improvements in application quality and time to market, a critical advantage in highly competitive markets.
Developing, testing, and deploying software solutions quickly and efficiently are the goal of every software development organization. But to provide adequate performance for these compute-intensive processes, many organizations end up over-provisioning storage and then spend thousands of hours annually managing storage for their virtualized development environments.
Having the right storage platform that complements virtualization is essential to fully realize the efficiency benefits for software and application development and testing. To be successful, test and development teams need storage solutions that will enable them to:
- Optimize their software and application build environments
- Improve storage utilization and VM-density
- Quickly create multiple, efficient development and test environments
- Simplify deployment and management while streamlining troubleshooting
Selecting the Right Storage for Development and Testing
Here are some of the areas that you should consider when selecting the right storage for development / testing environments.
Performance is the most visible and immediate challenge that engineering and application development teams face with their virtualized development/testing environments. This is driven by the I/O-intensive needs of development/testing:
- Software builds require low latency storage for random I/O patterns across numerous small files in a VM.
- QA testing requires high throughput for random I/O patterns to handle multiple test VMs being run simultaneously.
Flash as a storage media can help alleviate both latency and throughput challenges for development/testing environments. Flash alone can be quite expensive for most engineering and IT organizations to use. One way to get the performance of flash with the economics of disk is to consider storage solutions that use a hybrid FlashFirst approach. In this architecture, I/O is served from flash and disks are used as a content storage for cold data. This approach can remove storage as the bottleneck by delivering low storage I/O latency and high throughput for software builds and QA/testing.
It is also important to make sure that the overhead around performance tuning and ongoing optimization of storage for virtualized development/testing environments is manageable i.e., it does not require substantial investments of time or specialized skilled sets.
Storage Utilization and VM Density
Optimizing development/test costs is a key goal for every engineering and IT organization. Unfortunately, relying on outdated storage platforms can result in poor storage utilization and low VM density. This can translate into excessive capital and operations costs and consume valuable rack space – especially in engineering and development labs.
Consider storage solutions that can support thousands of virtual machines, including development and test-type VMs with high performance and consistent sub-millisecond latency without requiring substantial management overhead. By keeping real-world VM density as a goal when selecting a storage solution for their development/testing environments along with performance, organizations can proactively tackle cost and space concerns.
Standing up New Development/Test Environments
Development and QA/test team users need to be able to quickly and automatically create high-performance complete development/test environments with test data in seconds all by themselves. Setting up a new development/test environment using a traditional storage approach requires the time-consuming process of creating physical copies of the development/testing VM. Leveraging VM-level clones through the virtualization management layer can solve the problem of creating separate copies, but it may not have the performance needed for large-scale testing.
When selecting storage, consider how easy it will be to deploy new development/test environments and if those environments will have the right mix of performance, and potentially QoS functionality, so that the storage IO of any one VM will not impact any other VM.
Data Protection and High Availability
Data protection and high availability of the software development and test environment are key goals for all engineering organizations. Safely storing copies of the “golden image” of the completed code is essential for protecting the enterprise’s valuable software assets. In addition, system uptime is critical for keeping software developers and testing/QA teams productive.
When choosing the right storage system, make sure teams are able to take or schedule instant, space-efficient snapshots of individual development and test VMs without any performance impact. As a bonus, see if these snapshots can be efficiently replicated over the WAN for business continuity. These capabilities can enable easy, automated data protection and higher service levels for developers and QA efforts.
Simplifying Management and Trouble Shooting
Software development and QA teams need the ability to easily access application performance metrics to identify bottlenecks and issues with their virtualized environments when testing the newly developed code. They also need granular reporting capabilities to make troubleshooting easier in the QA environment.
Consider solutions that can provide easy, instant visibility into the storage environment for virtualized development/test environments. Ideally, these solutions should cover per-VM or per-vDisk latency at any infrastructure layer, enabling users to identify the source of performance issues and take immediate action.
Questions to Ask
Storage can play a significant role in enhancing virtualized software or application development / test environments. With benefits such as improved time-to-production / market, improved software/application quality, and lower costs, it is important to choose the right storage solution to support your development / test deployments. The following questions will help you identify the right storage solution for your environment:
- Can this storage solution help us quickly deploy new dev/test instances?
- Will this storage solution be able to improve software build times and shorten QA/test cycles?
- Is this storage solution smart enough to manage itself?
- How efficient is this storage solution for my virtualized dev/test environment?
Industry Perspectives is a content channel at Data Center Knowledge highlighting thought leadership in the data center arena. See our guidelines and submission process for information on participating. View previously published Industry Perspectives in our Knowledge Library.