In the late 90s, the introduction of VMWare was a revelation. The ability to run a virtual copy of an operating system and test your product on it opened up tremendous possibilities. Suddenly you were able to test applications on multiple operating systems. You could make copies of your virtual machines and use them to go back to earlier states of your programs.
Over time virtualization made major improvements in allowing automatic snapshotting, or saving the state of your machines at points in time.
As the state of the art improved, quality assurance professionals and developers started to demand more capability. Most applications are made up of more than a single server. Often you want to test clients and servers together. We wanted to test machines on isolated networks. Most importantly, people wanted to share their virtual machines and configurations with their teamates.
The problem is that setting up a virtual environment for an application can take hours of configuration, or scripting. Once testing begins on machines, the original state of the machine changes. Sharing the same environment across multiple testers works for some scenarios but not others. The state of the environment may be damaged and a rollback might be necessary. When you have multiple testers working on the same environment, rollbacks have to be coordinated, limiting their usability.
Eventually products like VMWare Lab Manager were introduced that allowed QA teams to share entire environments. Groups or individuals could “spin up” their own copy of a test environment. Rolling back your own copy of the environment was no longer a problem. This worked out well for a while, but new problems started to crop up. One problem companies ran into were resource constraints. Virtual machines use a lot of memory and hard drive space. After moving entire teams to a Lab Manager environment, IT teams would be surprised how quickly resources would be consumed. Resource consumption was uneven too; CPU and memory needs were very high during business hours, but idle at night.
Internal teams handling QA virtualization environments were expensive, specialized professionals. Very large investments in SANs (networked storage) and enterprise server hardware were necessary for these business critical machines.
Also, virtual machine vendors did not see the QA market as their priority and neglected these products. Teams standardizing on VMWare Lab Manager would eventually be forced to migrate to vCloud Director, which a few years later was also cancelled.
During these years, cloud computing came to prominance and promised to solve these problems. The cloud promised unlimited access to hardware, paid for only when in use. Throughout the Lab Manager years, Amazon Web Services, the cloud technology leader, was not yet ready to take on enterprise workloads. Initial cloud implementations lacked Windows compatibility, storage requirements, larger machine sizes, and other enterprise needs.
Slowly Amazon chipped away at these missing pieces, while customers struggled with virtualizing their test environments. Flash-forward to early 2017, and cloud computing is now powering enterprise workloads across the Fortune 500, and is capable of handling every conceivable need for QA teams. The on-demand nature of cloud resources also promises significant savings for these types of workloads if QA teams are willing to invest the effort in automation.
Cloud technologies allow you to scale to any level. QA teams no longer find that they are unable to spin up new environments because the enterprise SAN is full. Teams no longer have to fight for memory and CPU resources and struggle with test environments that run at a fraction of the speed of production environments. Crucially, QA teams can test on environments that exactly mimic production and not have to try to qualify software on smaller test environments.
Difficulties in taking advantage of cloud computing
The last remaining difficulty for QA teams is the fast moving landscape of cloud computing and the need for automation and specialization to take advantage of the available technology. The promise of focusing specifically on testing and leaving infrastructure up to the cloud provider is hampered if you need in-house cloud specialists and engineers to create QA-focused tools that take advantage of the cloud.
Luckily, these tools are now coming to market and companies are starting to offer solutions to automate QA environments and focus on the needs of testers.
We offer Simplify CloudLab to allow you to graphically define your QA test environments and spin them up on demand. You can start many copies of each environment, modify them and use them as a template for new ones. We like to think of it as source control for your testing infrastrcture.
With a new generation of cloud focused tools, QA professionals are now able to take advantage of cloud computing to handle their test workloads efficiently and no longer have to invest in large on-premise testing labs or spend time on creating in-house one-off automation frameworks.
If you’re interested, you can learn more about Simplify CloudLab at our website.