Virtualization of Developer Workstations
Virtualization is everywhere. We're using it for instancing our development, test, and production server environments. A couple years back, I read a blog post by a development manager who virtualized his developer's PCs. The idea made a lot of sense, so I went to our CIO and pitched the case. We've been running like this for the past two years and it has been working great.
Here are some of the benefits:
- Fault Tolerance. Unlike desktops, a virtualized cluster is built on SAN technology and multiple physical hosts. A disk or server failure won't affect your developer's productivity or uncommitted code.
- Hardware Flexibility. Since it's a virtual machine, it is easy to increase the cores or the memory based on the needs of a given application.
- Instance Flexibility. Developers are no longer limited to one machine or one operating system.
- Eases Upgrades. In our recent migration to VS 2010, we stood up fresh VMs to test out & migrate to the upgraded version.
- Mirror Production. Your production environment isn't running Windows 7. Allowing developers to code & test on a the same server version you're running in production removes on more variable.
- Enhanced Tools. Virtualized infrastructure brings additional tools like snapshots, clones, etc.
One of the issues that we experienced early on with our virtualization effort was a lack of multi-monitor support for remote desktop (RDP
). Luckily, with the release of Windows 7 & Windows Server 2008 R2, this has changed
. We're using 2008 R2 and our developers love this coupled with VS2010's multi-monitor support
Give it a shot! I think you'll like it.