Perhaps you've faced this classic dilemma: For various good reasons, you need to upgrade your desktops or servers to the latest Windows version, but the upgrade crashes a crucial application or server process, making the entire migration nothing more than a time-consuming and expensive experiment. Or perhaps you're considering an enterprisewide migration to a new platform and you need a way to inexpensively test the new setup before it goes live. Or you're a software or Web developer who needs to support a disparate number of client types. Such scenarios are difficult to address with PC hardware. But a new generation of virtual machine (VM) environments let you test these scenarios*and even roll them out live*without making dramatic hardware overhauls.

VM technology uses software to emulate Intel x86-based PC environments, letting you run one or more guest environments under a host OS, such as Windows 2000 Server. Just a few years ago, when PCs and servers were relatively unsophisticated and underpowered, VM environments were more theory than reality. But thanks to today's more powerful and scalable hardware, VM environments present a compelling solution for not only testing solutions but implementing them in production. Here's what you need to know about VM environments.

The Players
For years, Connectix (recently acquired by Microsoft) has helped users run Windows applications on Macintosh computers with its Virtual PC software. Last year, Connectix introduced Virtual PC for Windows, which lets Windows users run multiple OSs on one machine; now, you can also get a Virtual Server product that offers VM services for the enterprise. Connectix's main competition is VMware, which developed an environment for use with Linux that quickly migrated to Windows. VMware offers a desktop version, VMware Workstation, and two server versions, VMware GSX Server and VMware ESX Server.

VMs on the Desktop
On the desktop, VMs can host virtual OS environments for testing, Help desk and technical support, and training and sales demonstrations. For example, many Microsoft employees who work on server products use VMware on laptops when they're on the road so that they can continue to work with server software. Also, many ISPs use VMs to test the OS and Web browser versions their customers are using, giving them access to more accurate data for user support.

VMs on the Server
On the server, VMs can serve as valuable consolidation and partitioning tools. Because of the high performance of today's inexpensive PC-based server hardware, VMs can let you take older machines offline and run their vital server processes in isolated, virtual environments. You can even consolidate little-used server processes into VMs to free up hardware and reduce costs. You can also use VMs as failover options. You can configure a virtual environment on separate hardware, and have it ready to step in when physical servers go offline.

Recommendations
A VM can't perform as well as a dedicated, interactive, physical machine, but this limitation doesn't hinder server processes or little-used applications, especially given the power of modern PC and server hardware. VMs are ideal for server consolidation and backup, testing, and Help desk scenarios. I've been using VMs for more than 3 years and highly recommend that you evaluate this technology for use in your organization.