CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeffrey Palermo [MVP]

Software management consultant and CTO, Headspring Systems

Building a dev/test server farm with Virtual Server 2005 R2 - level 300

My team has used Virtual Server 2005 and a single beefy physical server to do some great things this week, and I have to share.  The problem we are faced with is that we need multiple test environments for release and deployment testing.  We have a release very soon, and we've been doing our normal testing every day (automated testing, customer acceptance testing, etc), but now we are getting the whole company involved to lay a critical eye on everything.  Then we'll package up the release candidate and do our deployment testing (Windows app- installed on the client).  We need to make sure the setup experience is great.

Situation:

  • We need 6 test environments for release testing.  They should all have the software set up for testing.
  • We need to clean these 6 environments multiple times to rerun tests.
  • We don't have 6 extra servers or client machines.

Solution:

We used Virtual Server 2005 to create a virtual pc with XPSP2 on it.  We then created a differencing disk and installed the software with the correct configuration for testing.  Then, we created 6 differencing disks that referenced the first.  We allocated 400MB of RAM to each 6 that need to run, and we have our 6 test environments.  The two root disks are there read-only since they are the base for the 6 live environments.  We enabled undo disks on each of the 6 test images, and now we can have all of our people run tests, and we scrap the undo disk to roll back changes to the clean, freshly set-up state.

When getting these set up, we did have one hiccup - we couldn't access the virtual pcs from the network except through the ip address.  Solution:  Windows firewall was blocking network name access.  Fix:  "Allow incoming ICMP request".  Yep.  Because we couldn't ping the machine by name, we couldn't remote desktop into it except by IP address.  We allowed ping, stopped, restarted Windows firewall, and it's all gravy.  (In case you don't know about this setting, check out http://www.cam.ac.uk/cs/docs/faq/m8.html).



Comments

Harris said:

Jeffrey:

Not sure if you know this or not, but you can automate some of this process as Virtual Server exposes a COM API that you can interact with via managed code...or even PowerShell.  Here's a great resource on both:

http://blogs.msdn.com/Virtual_PC_Guy/

# February 8, 2007 8:48 AM

Jeffrey Palermo said:

Harris,

Yeah!  Great stuff.

# February 8, 2007 9:34 AM

About Jeffrey Palermo

Jeffrey Palermo is a software management consultant and the CTO of Headspring Systems in Austin, TX. Jeffrey specializes in Agile coaching and helps companies double the productivity of software teams. Jeffrey is an MCSD.Net , Microsoft MVP, Certified Scrummaster, Austin .Net User Group leader, AgileAustin board member, INETA speaker, INETA Membership Mentor, Christian, husband, father, motorcyclist, Eagle Scout, U.S. Army Veteran, and Texas A&M University graduate. Check out Devlicio.us!

This Blog

Syndication