views:

204

answers:

6

Does Microsoft offer a tool where you can deploy a web application to multiple web servers in a load-balanced environment/web farm?

My team is looking for a tool, preferably from Microsoft, where we can deploy our web application from development environment to production environment automatically.

+1  A: 

I believe that Sharepoint does this.

Randolpho
A: 

File Replication Service ( e.g. DFS Replication ) is a typical and very good choice for doing this.

Your changes are synced between member servers at the file system level.

kervin
+1  A: 

The Web Deployment Team blog at Microsoft has some reasonably useful information, and have a deployment tool you could try...

Gunny
This tool is also in VS2010 beta 1, BTW, so you can try it out for free.
John Saunders
+2  A: 

If I understanding what your asking for your looking for a build server, to my knowledge Microsoft don't offer one, but some to take a look at are Team City, Hudson(requires a plug-in), and CruiseControl.net.

Basically they work by pulling from your source control building your application and running your tests. They all support scripting that will allow you to build then deploy to your servers. This can be set up to run nightly, weekly, etc. you can also set it up to monitor your source control for changes and build anytime it sees a change

The only one I've used is Team City, the install was easy, and depending on how many build agents you need it's free.

If your just looking to build and deploy from VS Another option is creating an NAnt script and running it from VS as an external tool.

For a good over view of Build servers check out this SOF question cruisecontrol.net vs teamcity for continuous integration

Bob The Janitor
+1  A: 

In the last environment we setup we used TeamCity for all our builds and deployments (Which is basically to say we wrote MSBuild scripts and automated them with TeamCity). In short we had the following 5 build configurations:

  1. Continuous Build - Automatically rebuilt our product upon every check-in. Running all the tests. This build did not deploy anywhere
  2. Nightly Build (Dev) - Automatically build and deployed our product to the development web server (no server farm). We build would run the tests, update the development database, shutdown the Dev IIS web site, copy the necessary files to our web server, and restart the site
  3. Test Build - Like our Nightly build only it deployed to our test environment and it wasn't scheduled so it had to be manually started by logging into Team City and pressing a button
  4. Stage Build - Like test only deployed to a web server that was externally visible to our customers sot that they could validate the application. Also, only run on demand.
  5. Production - Created a zip file of our product that the deployment team could install on our production web servers

So I guess what I'm suggesting is that you use TeamCity and then write build scripts in such a way that they'll deploy to your Web Farm. If you want examples I could supply you with the pertinent portions of our build scripts

** One more thing: we check in our web.config files and such for each environment into subversion and then part of the build process is to copy and rename the appropriate config file for the environment. For example, web.prod.config => web.config in our production build

Andrew Hanson
A: 

Sharepoint does this automatically when you deploy a solution package.

Janie