views:

558

answers:

3

During development , testing, and deployment, I have a need to fully automate a windows 2003 server setup.

I'm trying to find the best way to automatically delpoy a server, which installs the OS, software dependencies that I have (for example SQL server, .net framework + my own application code).

From what I've found , there are two approaches to this issue:

  1. Disk Cloning (also known as disk imaging). Using tools like Ghost, Acronis.
  2. Unattended installation of OS + SW. Using RIS (now called WDS), or Unattended, basically running an unattended installation of the OS and then an unattended installation of all software needed at first boot (using the various command line flags of windows installation managers like MSI,InstallSheld.

Unattended installation pros:

  • The advantage of having the entire installation & configuration self documented in the scripts/configuration that create the unattended installation
  • These scripts/configuration can sit in a revision control system.
  • Using DriverPacks can give the flexibility to install on just about any hardware.

Unattended installation cons:

  • Take much longer to fully deploy.
  • More work to accomplish than disk cloning where you just have to install , configue a server manually, and then clone it.

Disk Cloning pros:

  • Less work to create clones.
  • Fast deployment.

Disk Cloning cons:

  • Very hard to keep track of configuration/installation changes that took place before cloning as none of it is scripted.
  • The resulting deployment is not as "clean" as a scratch installation, requiring he use of SysPrep or the likes.
  • Hardware / Driver issues might come up when restoring a disk clone to a new hardware.

I know this is not strictly a programming question (although writing an unattended windows + S/W installation does require some coding), but it is something we all have to do from time to time and we might as well come up with the best possible way to do this.

Edit : More info on the situation: Virtualization is a nice option for development, but for testing and especially stress testing, real hardware ,with fast disks will have to be used.

The need is to develop a Windows Server 2003 & SQL Server 2005 server appliance & an in house application. So this will be deployed in house for development & testing and eventually be sold to customers.

So basically what I'm asking is: What is the recommended way to install development,testing and production servers? Disk Cloning ? Automatic installation? A combination of both?

+1  A: 

I don't know if it is an option in your case, but another thing to seriously consider is Virtualization.

Virtualization basically has all the benefits of disk cloning, but you don't have the hardware / driver issues.

If you take snapshots at the right points in time on your base VM you will be able to revert to any point in time along the installation of your base image.

The cost of course, is that the Virtualization costs you a little performance.

Zoredache
+1  A: 

You've got the basic pro and cons figured out, but if we're going to provide any help, I think we'd need more information about your situation. How many servers is this going to be deployed on? In house app, for-sale app? There are lots of variables. Basically, what's your situation?

TorgoGuy
A: 

Hello, We have the same scenario and looking for the same information. We anticipate deploying 200 servers. Some will be database servers (Windows 2003 and mssql 2005) and some will be just Windows 2003 server. These are production 24x7 servers for sale. Thanks for your help. Cyd