Monday, July 26, 2010

Using Virtualization in a Development Environment

Not the real NYC, but it has its advantages (photo courtesy Dean Willson) I’ve been using virtual desktop environments in the development and testing arena for years, primarily through Microsoft Virtual PC and Sun VirtualBox. However, they bring with them as many challenges as advantages.

Advantages

  • When your PC replacement cycle is every two or three years, it can dramatically reduce the time it takes to migrate to your shiny new hardware. Just load the virtualization software and point to your virtual machine configuration file/hard drive image.
  • If you don’t use the same resource hungry applications and services every day, you are keeping your host machine operating at a higher average performance. Example: You don’t need to have SQL Server 2000, 2005, and 2008 along with all the SQL Agents, and other peripheral services consuming resources in the background if you only do database development 25% of the time. It is easier to spin up a development instance than manually turn off all those background services.
  • It can reduce the risk of data exposure due to theft or loss. For example, if I’m traveling to make a presentation, I can leave my development environment back at the office to minimize the chance that if my laptop is stolen my work and data is compromised. According to the Open Security Foundation and DataLossDB.org 21% of data loss in 2009 was from stolen laptops/PC (incidents by breach type).
  • For testing software or InstallShield builds on multiple versions of Operating Systems, it takes much less time to spin up a Virtual PC or Virtual Server than the old way of re-imaging a PC using Norton Ghost.

Disadvantages

  • Performance of applications on the guest is rarely as good as running natively on the host operating system.
  • You need to have a license for each operating system and licensed applications that you run in a guest OS in addition to the ones you might need on the host. 
  • Backups configured in the guest only run when the guest in powered on during the scheduled backup times.
  • Options for running 64 bit guests are much more limited and often more costly than 32 bit guests. Must have a minimum of dual core and sometimes requires special hardware based virtualization on the Processor, such as VT-enabled processors.
  • Opening the save Virtual Hard Drive image on a different machine can cause Windows OS’s to require re-activation if they sense certain hardware changes. You can only activate Windows OS’s a limited number of times via the internet before you need to call Microsoft to get an alternate activation code.
  • If you have a static hard drive size configured, re-sizing can present a real challenge.

This list is not comprehensive. Virtualization is a powerful technology, but it requires careful consideration when putting it into real world application. These are just a few considerations.

No comments: