We're currently running continuous automated functional tests against the CI builds of our software. This is done on a variety of Windows based machines (around 10-15 boxes or VMs), to identify version-specific problems.

The pain starts when we want to upgrade let's say the flash plugin deployed on all those machines, we're currently doing it all manually since I was told a automatic solution is usually feasible when you want to deploy it on 20+ machines which are ideally as identical as possible.

Also we need certain programs to have a specific configuration (a simple example would be the default webpage in IE).

Are you aware of any tool that supports managing applications and setting in that kind of heterogeneous environment?

4 Answers
4

Is putting all your test machines in an isolated Active Directory installation an option?

You could deploy group policies for things such as the default home page in IE, and you can also push out software too - I deploy Adobe Reader, Flash Player etc. in our office of ~200 computers without issue so 15-ish should be dead easy.

For any other software you can deploy MSI files using group policy very easily, and with a bit of scripting magic you can sometimes deploy non-MSI software too (however this is entirely dependant on the installer).

The Microsoft native solution is System Center Configuration Manager (SCCM), which replaces the old MOM server, and in turn replaced SMS. It can do heterogeneous software deployments via agent which should improve your per-VM consistency of configuration. Best of all, it does it better than Group Policy software deployments.

The down-side is that you do have to invest time and money into packaging software for use with it. As I understand it, you need to be able to package everything into MSIs or simple files/reg-entries. Once you've got this under your belt, spinning up entirely new testing environments is a lot easier.

MDT seems to be focuses on deploying Windows itself. What I'm looking for is a way to deploy updates and configure the existing systems.
–
tehlexxMay 31 '11 at 5:19

1

the refresh scenario i swhat you would be looking to use. By using MDT you will have the ability to deploy new systems OR refresh existing ones without haveing to create scripts (which is typical of GPO based installs) YMMV. I like using MDT for QA because it guarantees a static test environment and once done I can delete the machines and start over OR update as required, wihtout building a complicated update and patch/application management infrastructure.
–
Jim BMay 31 '11 at 15:34

So how long does it take to run such a refresh? This might be an interesting alternative for resetting our machines in our nightly test environment, but time is very limited there.
–
tehlexxJun 1 '11 at 6:38

Depends on the speed of your infrastructure and how many you need to rebuild. Building 50 machines at once on hyper-v can easily overload a san in left unchecked. Typically it takes about 15 mins to rebuild a reasonable number of machines machine from clean to complete.
–
Jim BJun 1 '11 at 11:18