Thursday, April 22, 2010

Virtualized development environment for Windows Server 2008 R2

It went too good: starting with free-of-charge Microsoft (c) Virtual PC/Microsoft (c) Virtual Server each serious developer for Microsoft (c) Windows had similar workstation configuration: - client OS (WinXP/Vista/Win7) - development environment (VS05/08/10) - Virtual PC or Virtual Server - set of VHD's presenting virtual machines for development and developer tests

Especially "Undo Disks" did the usage of virtualization software so sweet: just drop the changes of the last session and start over without any needs to reinstall experimental machine.

This was very suitable for server software development since until incl. Windows Server 2008 there was always a 32-bit (x86) version of the server OS. Thus, everybody could emulate a server on his developer machine.

Starting with Windows Server 2008 R2 there are no more 32-bit versions of the server OS from Microsoft: x64 and IA64 only. Even more: on Apr. 4th Microsoft announced end of support for IA64 architecture(i.e. Itanium processor family) and encourages the current IA64 customers to move towards x64.

That means, the only hardware platform any Windows server software developer has to care about is x64.

Looks good, but... neither Virtual PC nor Virtual Server do support 64-bit guests OS. The only way is to use virtual machines with OS instances to develop is to use virtualization software supporting 64-bit (x64) guests OS. For example, Hyper-V - known since Windows Server 2008.

Fine, let us move from Virtual PC to Hyper-V. Not so quickly: there's actually no Hyper-V for client OS: neither Vista nor Win7. The only virtualization software from Microsoft for Win7 is Windows XP mode - AKA Virtual PC. With the same limitation as before: no 64-bit guests OS.

Finally, the developer should now (until the situation changes) select one of possible configurations:

  1. Two physical boxes solution:

    -Box1: Client OS (WinXp/Vista/Win7) + development environment

    -Box2: Windows Sever 2008 R2 + Hyper-V + VHDs as virtual machines for development.

  2. Single physical box solution - Box1: Server OS (Windows Server 2008 R2) + development environment + Hyper-V + VHDs as virtual machines for development.
  3. Single physical box solution using 64-bit client OS and VMWare Workstation as virtualization software... (I didn't try it, unfortunately).

Until no Microsoft virtualization software supporting 64-bit guests OS are in place, we have to accept the constraints...

Enjoy!