Why Emulation is so great
A while back, I wrote about using Virtual PC to setup test beds. Even though there are issues (like not booting) with machines running non-MS OS’s (like Linux or Solaris) with high memory (like over 500MB), it works well.
Now we are in the finishing stages of first release since I had some virtual test machines, I can say that every testing area should have one. Besides the fact that you don’t have pony up for another physical box and place to put it, here are some other great things:
- Controlled Environment — You control what is on this machine — not your boss, not your IT department. Don’t want an anti-virus? Don’t put it on!
- Obscure things become handy — Once in a while, you need to use a strange configuration or utility that you don’t use very often. This is the perfect opportunity to emulate it. For example, we support Sybase as a database platform, but very few of our customers use it. But we still need to test it! So I have a virtual Linux machine with Sybase installed. When I need to kick the tires on it, I just boot it up and it’s just like another machine on our network.
- Undo Disks — If you think you are going to really mess things up, recreate an Undo Disk. So, when you use the virtual box, it doesn’t save changes to the hard drive until you tell it to. Want to go back? Stop the machine and when it asks to save changes, say “No”. Things worked well? Then go ahead and save your changed
- Save State — Similar to Undo Disks, but the opposite. You can choose to save the machine in it’s current state and, the next time you start it, it will be right back to where it was. And, if you had room, you could keep an archive of machines in states you wanted to go back to.
Of course, there are downsides. For example: my virtual Oracle 10g machine is our own 10g machine we have. When the developers were fixing Oracle issues, instead of installing their own virtual machine, they made me keep mine booted while they worked. Since emulation is resource-intensive and Oracle is resource-intensive, I couldn’t start another machine to do other work. Yes, this is a management issue, but when the release needs to get out, the release needs to get out.
Also, the memory constraints for non-MS machines on VPC doesn’t make me too happy. And I’ve seen a few other weird things happen with them as well. I may try to use QEMU for those machines or maybe talk my manager into ponying up for VMWare, either of which support Linux and Solaris, so they may behave better. Or at least let me run WebSphere with more than 500MB!