IIS Configuration Synchronization for Web Server Farm?

Did you check the Shared Configuration feature in IIS 7? Check this out http://learn.iis.net/page.aspx/264/shared-configuration/ and http://learn.iis.net/page.aspx/453/configuring-a-web-farm-using-iis-shared-configuration/


There are a bunch of options here and the 'correct' answer depends upon your specific needs. Some of the earlier posters touched on some of them, but i wanted to add a bit. Note, all of this applies to iis 7 and up.

Shared Configuration

The idea here is that you can take a web servers configuration and export it to an XML config file. Then point all web servers you want to mimic your config to the shared file (on a UNC somewhere).

  • (+) Super simple to learn and setup
  • (-) It won't ensure components are installed on all the web servers
  • (-) It won't ensure content is synchronized across your web servers
  • (+/-) Customization between servers is limited (you'll want to look at the link @Vivek posted that explains what configuration is actually synchronized.

IIS Web Farm Framework 2

The idea here is that you setup "primary" and "Secondary" servers. All configuration changes are made on the primary server then 'replicated' to the other servers in the farm. http://www.iis.net/download/WebFarmFramework

  • (+) Simple user interface and setup
  • (+) Everything from the primary server is replicated to the secondary servers. This includes what IIS components are installed, what was added through the web platform installer, and content.
  • (-) You're left without a scripted repeatable config if your primary server gets hosed.
  • (-) As of this post the product is new and I've found documentation/blogumentation to be pretty sparse.

WebDeploy 2 (aka MSDeploy)

This is the swiss army knife of solutions. It is designed to do lots of things - migrate from iis 6 to 7, package web apps for deploy, and synchronize web farms. I suspect that this is the backbone of the code most other MS options.

  • (+) Full access to IIS
  • (+) generate scriptable, repeatable deployments for multiple servers
  • (+) good deep documentation
  • (+) integrates with Web Farm Framework for application provisioning
  • (-) learning curve of another command line tool

PowerShell w/ the WebAdministration Snapin

IIS is fully exposed here, so the world is your oyster. Whatever you can dream up you can script.

  • (+) ultimate flexability & extrodinary control
  • (+) can be executed against remote computers from a single location
  • (-) learning curve of powershell & the WebAdministration snapin.

AppCmd

This is pretty much the same thing as powershell, so i won't go into any detail here, the real difference is that it doesn't support remote execution (i.e. you need to get your script to run on each web server).

Anyway, I know i'm late to the party, but hope that helps.

-eric