As enterprises make the transition from occasional massive software upgrades to more continuous live updates using a DevOps model, testing must evolve as well. But how do you it without negatively affecting your production environment?
Just as the cloud has been the answer to scaling up applications and resources quickly, it can also help testing and quality assurance by providing a sandbox, said Joan Wrabetz, CTO of QualiSystems.
The company’s history is rooted in the large telecommunications carrier world, providing test automation tools. “If developers want to test at a telco you can’t stick things into a production network because you can bring down the entire phone and data network,” she said. “You have a production environment all over the world and you can’t replicate it.”
Wrabetz noted that companies such as Amazon, Netflix and Google can make changes easily and quickly – the user interface can even change as customers use it – because everything is the same throughout their infrastructures as they have adopted commodity hardware; it’s much easier to test a uniform production environment. “For them to mimic to production is very easy.”
For most enterprises, especially those in financial services with complex applications, making a copy of a production environment in a lab isn’t feasible, said Wrabetz. “You need a way to mimic that environment.” In some cases, they need to mimic a customer environment as well, and that can very difficult.
Large financial services companies have anywhere from 3,000 to 10,000 developers working on applications, some of which are very complicated as they evolve specific algorithms to support trading that must happen in a nanosecond. These trading applications also require specialized hardware, and there are stringent security and compliance obligations that must be met too, said Wrabetz.
Companies such as Netflix are able to add features or make changes as often as every 11 seconds, she said, as they leverage a micro-services model for building applications. Today the rule of thumb for a financial trading company might be an update every quarter at most.
Although more and more enterprises are moving to micro-services, said Wrabetz, it’s not the norm and enterprise apps can be very complex.
And even when there is a chain of testing that’s been established, it only works if the environment is consistent with what’s in production, and that’s generally not the case – there could be different equipment in the live environment, such as network devices, and other variables, such as heavier user loads. “You can’t do performance testing if you don’t put it on something that looks like a loaded busy network,” she said. “It’s great that we automate DevOps cycle, but if the steps don’t mimic actual production it’s a waste.”
For an enterprise with a private cloud and an army of developers, Wrabetz said it’s prohibitively expensive to replicate a production environment for testing, that’s why creating a sandbox in a cloud makes sense. “You can create it on the fly,” she said. “You don’t need dedicated equipment.”
Wrabetz said a cloud sandbox is like “uber-container” in the same way a tool like Docker can contain code. “You create a bubble. The bubble is the sandbox.”
Quali enables enterprise developers to enable an infrastructure that includes elements such as network devices and the number of ports — as well as the behaviour and traffic of users — which is essential for testing security.
“Once the blueprint is pulled then resources are allocated,” she said. From there, other tools can call an API and even start a sandbox automatically.
Using the cloud as a sandbox is one aspect of enterprises moving to DevOps model, said Wrabetz. Many organizations start the DevOps approach for one function. “What we see is customers starting in one spot.”