In my role at Microsoft, I do a lot of demos against virtual machine (VM) environments so I can do repeatable demos from customer to customer, event to event. Those environments are great but often times they are limited to a single environment. What do I mean? The VM is pretty self-contained because it has everything I need: Windows Server with IIS and Windows SharePoint Services, SQL Server, TFS, Visual Studio, Office, and sometimes Project Server. It reminds me of the days when I used to write about n-Tier development using VB 4 but deployed everything on a single box. Works great in theory for books and articles, but out in the wild, there’s a lot other things you have to consider.

With that said, every now and again, I wish I had a multi-server environment with a domain controller, database server, and an app server. Believe me, installing operating systems and configuring servers is not something I enjoy anymore.

I’m sure there are a lot tricks out there to make the work easier. There’s the Visual Studio and Team Foundation Server VM Factory guidance produced by the Visual Studio ALM Rangers. MSDN Magazine wrote a good article, Visual Studio ALM Rangers: Rise of the VM Factory, explaining the benefits of using this to create VMs using nearly a fully automated and consistent strategy.

For a single developer or a small team, investing the time to set up your factory can take more time than you might have. Besides, it could have been a while since you’ve actually setup a network environment. When I was an operations manager and we did that it lot, it was a no-brainer. But when you’ve been away from having that level of responsibility, you forget even the smallest tweaks.

I recommend taking a look at the guidance provided in the following TechNet article, Deploy Project Server 2010 to a test environment. There’s written guidance as well as videos to help walk you though the process of setting up a domain so you can test Project Server 2010. I’ve used it before and I was able to get a test environment online in about half a day.

FWIW: The guidance recommends that you install the OS on each VHD. I’ve tried that and it takes too long. I recommend installing the OS on one VHD and name it “Base-W2K8R2.VHD” assuming you installed Windows Server 2008 R2. Since the documentation requires three VHDs, copy it three times and rename each VHD file something meaningful like Test1-DC, Test1-SQL, and Test1-APP. Copying VHDs is a lot faster installing the OS on them. It’s been a while since I’ve done this, but I also remembering having to SYSPREP the image original base image to make sure you don’t end up the same credentials on every VHD.

Try it out. I’m interested to know if this technique works for you.

Excelsior!