The following topic outlines Parasoft's recommendations for a production-grade deployment of Parasoft Virtualize alongside Parasoft Data Repository and Parasoft Continuous Testing Platform (CTP). Sections in this topic include:

Assumptions

This document assumes that the deployment will include:

Deployment Approaches

There are two deployment approaches: dynamic infrastructure (Docker image or Azure VM) or physical static infrastructure.

Dynamic infrastructures are designed for enabling dynamic, disposable test environments. This means that a test environment can be instantly provisioned from a golden template, used and dirtied, then simply destroyed. There is no need to share test environments or resources across teams or test phases; the exact environment you need is instantly spun up whenever you want it, then destroyed as soon as you’re done with it. Dynamic infrastructures provide advanced flexibility for extreme automation. Moreover, when you need to scale (e.g., for performance testing), you can do that on demand. 

With a physical static infrastructure, you have permanent (dedicated) servers. This is useful when long-term scaling is anticipated and hardware is designated ahead of time for heavy usage. Such an approach is designed for high availability and fault tolerance requirements. If you have such requirements and plan to configure a cluster of Parasoft Virtualize servers behind a load balancer, also see the recommendations at Setting Up a Cluster of Virtualize Servers Behind a Load Balancer.

Dynamic Infrastructure Recommendations

Dynamic infrastructures use either Docker Images or Microsoft Azure VMs.
For Docker, we recommend:

For Azure, we recommend:

For AWS, we recommend:

Physical Static Infrastructure Recommendations

The following diagram shows the recommended architecture for a deployment with 3 Virtualize servers and CTP; note that the "Server n" icons in the lower right corner represent any number of additional servers (as appropriate for your environment). 
 

We recommend the following hardware for the Virtualize, Data Repository, and CTP server machines...

Virtualize

Data Repository

If possible, separate Virtualize and Data Repository. This is important for "future proofing" your deployment. This becomes especially important:

  • When Virtualize and Data Repository eventually compete for resources.
  • If bad data repository happens to bring down the machine hosting Data Repository. If Virtualize and Data Repository are separated, this Data Repository failure won’t take the Virtualize server down with it.

CTP

Notes

Operating System

We recommend Linux over Windows for Parasoft deployments because:

Selecting a CTP Database 

CTP  supports Oracle, HyperSQL, and MySQL, but we strongly recommend Oracle or HyperSQL over MySQL; in a nutshell, our recommendation is

Oracle >= HyperSQL > MySQL

Oracle and HSQLDB perform equally well, but MySQL is difficult and challenging to troubleshoot. If you do not plan on clustering the CTP database and you have sufficient space, we recommend HyperSQL. 

Starting Up Cloud-based Dynamic Infrastructure Deployments

When VMs are deployed in the cloud through cloud service providers, such as Microsoft Azure and Amazon AWS, machine IDs may change as the VM is shut down and restarted. Use the following flag when starting Parasoft products to ensure that the machine ID remains stable when VMs are restarted on cloud platforms:

-Dparasoft.cloudvm=true