Scalable Test Automation is Secret to Successful DevOps at MemSQL
Dec 12, 2016 / in Main Blog / by Mark Balch
MemSQL is ranked number one by Gartner as the world’s leading vendor for operational data warehousing. Their amazing development team builds some of the most widely used and respected technology in the world. Key to their development success is a continuous integration (CI) process that involves more than 100,000 tests a day. MemSQL relies on Docker containers to enable a scalable test infrastructure that meets the demands of continuous integration.
MemSQL’s Psyduck, an infinitely scalable test system, uses large amounts of RAM and processor cores. The project initially started on standalone servers. When the manual processes of maintaining the servers and tests became a burden, MemSQL moved to VMs. Each VM ran its own test and provided a reproducible environment.
VMs Are Slow to Start
Although MemSQL saw enormous benefits by using VMs compared to standalone servers, it wasn’t enough to scale their test infrastructure to meet the needs of continuous integration. As the number of VMs increased rapidly, MemSQL ran into performance problems with the time taken for VMs to start. VMs take much longer to start than containers. Containers brought MemSQL the isolation benefits of VMs without the heavy startup penalties.
Storage and Networking Are Different in Docker Containers
Docker containers, on their own, have limited networking and no persistent storage capabilities, which limited MemSQL’s ability to accurately validate customer operational scenarios. Like most organizations, it is nearly impossible to keep purchasing hardware just to meet every scenario, resulting in reduced test coverage and limiting the effectiveness of a DevOps continuous integration flow.
Effective Container Network and Storage Management at Scale
As MemSQL continued to scale, they next looked for help with the networking and storage challenges of Docker containers.
In large scale container deployments like Psyduck, the Docker containers need to be managed properly so they don’t claim I/O resources too aggressively. Containers can run into “noisy neighbor” problems, which increase with workload density and resource utilization.
Building an infinitely scalable test automation platform
|1||Standalone server||Manual process for server and system management; low utilization|
|2||VM||Slow startup times of VM; hypervisor performance overhead|
|3||Containers||Storage and network interference between containers with "noisy neighbors"|
|4||Diamanti||Automated container management, guarantees for container, network and storage service levels.|
Diamanti Guarantees Container Service Levels
MemSQL incorporated Diamanti into Psyduck using their existing test software to automate container management and provide guarantees for container network and storage service levels. The result is an automated test system that rapidly verifies new code with realistic customer scenarios..
A scalable test automation system is critical to a successful continuous integration DevOps process. To be competitive in today’s digital economy, businesses need to be agile and that means moving software projects into production continuously. It’s a new world, but Diamanti will help you get there.