I’ve been working lately on setting up a virtual test lab for a startup.
As part of their strategy, they are building a plugin for CAD programs such as AutoDesk Inventor and SolidWorks. The need to test their software across a variety of platforms, including Windows XP, Vista, 7 & 8 — both 32 and 64 bit versions of each OS — and they’ve already found bugs specific to the various platforms, so they’re not just being paranoid.
Currently, they have their developers manually test each OS by loading a VirtualBox VM with the requisite OS version and CAD software. They install a new build of their plugin and then execute their tests. Needless to say, this is very tedious and slow.
So I am working on a solution that would allow them to have cloud-accessible virtual machines that they can automatically install their software to and execute automated tests on a matrix of OSes. They need to be cloud available and not cost-prohibitive.
The simplest solution would be to simply install the needed OSes on bunch of off the shelf PCs, but that can get expensive, and doesn’t really facilitate secure remote access. On-demand cloud computing environments such as AWS and Azure would be ideal, but they don’t offer client OS versions, and good luck finding anyone who will support end-of-lifed XP and Vista. I explored setting up a hypervisor, such as VMWare ESXi, Xen, or Microsoft Hyper-V on a cloud environment, but that would be pretty expensive. So I then turned to setting up a dedicated server or co-locating a custom build server with the same.
VMWare has the best management interface, but vSphere is prohibitively expensive for this size of deployment. For a Microsoft-only solution (which this is) Hyper-V is a possibility, and at scale is cheaper than VMWare, but Windows Server Datacenter licenses can be expensive too. XenServer is the cheapest, but doesn’t have much in the way of management or admin friendly tools unless you also buy a commercial license from Citrix.
I’ve settled on either working with a professional to set up XenServer or installing a free ESXi hosted on a dedicated server, and then paying for vSphere licenses as I expand. I’ll also be building a fairly beefy machine with 8 cores and 32GB of RAM that I can co-locate here in Orem, UT at Voonami or Fiber.net. Then I’ll install the hypervisor with 8 client VMs and install the CAD software, Visual Studio, and set up automated tests and continuous integration.
I plan on building extra machines and scaling up, so I will be offering Windows (and Linux) VMs in the cloud for testing purposes.
I have another user interested in a remote workstation that they can build and execute tests on and take advantage of the co-lo facilities high bandwidth, redundant power, and my scalable on-demand processing power from their own (or any other) PC. A powerful, remote desktop is almost the idea solution for a traveling on-the-go consultant as well.