Why I DON'T Work on Virtual Machines

Virtual Machines has always sounded like an awesome idea for developing. No unexpected dependences sneaking in, a clean version of LabVIEW and drivers for each project, what's not to like? And no more poking through the dusty PC graveyard every time I want to test an installer.

At work, I spent months trying to get set up with VMs. You see, in a big company where LabVIEW is just one of many software packages, there tends to be various barriers when it comes to doing 'non-standard' things with computers. So I made a list of requirements that I could talk through with IT, the most important being that the VMs must be networked so we can access the databases. After some discussion it was agreed that I could use Hyper-V with our standard PC image (to make sure all of the security precautions were in place), as long as we registered the VMs against user accounts to keep a record of the Windows Licenses, and kept within each person's license limit.

 

Soon, with the help of IT, I had some shiny networked VMs with different versions of LabVIEW. I was all ready to use SYSPREP to make images of these LabVIEW VMs that other people could use. Hurrah - a solution where everyone didn't have to spend days installing LabVIEW for each new project!

 

But then I ran into 2 problems:

 

  1. I spent a few weeks working on another project before checking back on my VMs. During this time my password had changed (something we have to do regularly) and the network locked me out because of the conflict. I had to get IT to remote in to each VM for me to unlock it. And then when I finally got access back again, I had a gazillion Windows updates to do on each VM. I came to realise that my images would constantly need updating, just like regular PCs. I'd even have to update the sysprep'd images regularly, to prevent new users having to install all of the updates on first boot. This experience also showed that I would have to boot and log in to my VMs every time I changed my password, else they would get locked.
  2. I was also having issues with TCP on these VMs which the firewall people could never get to the bottom of, meaning I couldn't use VI Package Manager or Example Finder. Not ideal. We temporarily removed the whole firewall and tried all of the typical port stuff but couldn't work out what was going wrong. It weirdly didn't seem to affect all VMs, but enough of them that I would have had to spend a few days remaking those that were affected.

 

I tried to get around problem 1) by writing a script that would regularly boot all of my VMs, but having to re-sysprep regularly sounded like an infinite time-suck so I gave up. The end result was I never made those images, and no-one currently uses VMs. Life would be so easy if there was no firewall or all of our software didn't need access to the database and we could use non-networked, non-Windows Enterprise Imaged VMs.  But ho, hum. At least I can test my installers on Windows Sandbox now.

 

P.S. I'd be interested to hear from you if you work for a company with strict IT policies and develop on Networked VMs. How do you do your VM maintenance?

Comments