irtual machines can cut time and money out of the software development and testing process, but they aren't the best choice in every scenario. When should you use virtual machines for developing and testing software, and when should you use a more traditional setup with physical machines? Read on to find out.
|What You Need
| Virtual PC 2004 or Virtual Server 2005
Development and Testing Benefits
Software development typically involves developing and testing for different target environments, but dedicating a physical computer to each environment can be expensive. Not only do you have to consider the initial purchase cost, but physical computers take up space, use power, and require maintenance. Virtual machines can reduce this cost by providing a way to run multiple development and test environments on one physical computer. (Click here
to read the sidebar "How Virtualization Works".)
Another problem with dedicating a physical computer to each environment is that setting up your target environments can be quite time-consuming. In this situation, virtual machines can save you time. If you need to duplicate a particular environment, you can create a library of virtual hard disks that are pre-loaded with specific sets of software. You and other members of your development and test team can clone the disks that you need and quickly replicate a particular environment in a virtual machine.
This type of setup can save lots of time when you need to start over with a clean installation, or duplicate the same environment in several virtual machines (see Figure 1. Virtual Server Status Screenshot).
|Figure 1. Virtual Server Status Screenshot|
Figure 1 shows three virtual machines running the same build of BizTalk Server on three different operating systems. You could click one of the thumbnails to access the virtual machine, or else use a Remote Desktop connection. (Note that licensing for software running in virtual machines is pretty much the same as in physical machines, so make sure you have the proper licenses for all of your running software.)
You can also attach virtual machines to physical networks just as if they were physical, or you can create a virtual network for testing different scenarios, while isolating virtual machine network traffic to the host computer. This is useful for patching virtual machines, providing general network access to them, and validating different network scenarios that might be relevant in your software testing.