views:

895

answers:

3

We have multiple Hudson continuous integration environments set up with automated builds and tests, however we don't do any kind of automated deployments to test environments.

I was wondering how other teams are deploying their ASP.NET web applications. Our builds package up the artifacts of a build with some scripts to stop/start IIS and then we have to go onto each server and run the installer to install the web app.

This is becoming a bit of a bottleneck in our process and I was looking for suggestions for simplifying and/or automating the process without having to log in to each server to do install the latest build.

+2  A: 

If you're using a Unix/Linux-based environment, you may want to check out Fabric or Capistrano. They allow for automated deployments of web applications.

Edit:

If you're on Windows, you may want to check out the Web Deployment Tool for IIS. This appears to still be in the "Technological Preview" stage, but may work for you -- I have no personal experience with it myself.

Ryan Duffield
Unfortunately, we're almost entirely a Windows shop.
jamesaharvey
When I did a lot of ASP.NET development, we wrote some custom code behind CruiseControl.NET to do this. You may want to Google "Web Deployment Tool for IIS" -- I am not sure of the state of this Microsoft project but I know it will eventually do what you want.
Ryan Duffield
A: 

I've never used it but it looks like Cargo could be one solution.

Vladimir
+1  A: 

Are you looking to deploy to a single environment or do you want to automate deployments to all your environment?

If you're doing it to a single environment is generally easy to script this to happen automatically from your CI server, either automatically after each build or nightly or even on demand.

But ideally you'd like to use the same deployment automation across all your environments, from test through to production. In that case it might make sense to talk with your Ops people and find out how they are doing their deployments and the develop some common scripts. When we (Urbancode/AnthilPro) talk about deployment automation that's usually what we're talking about and what we recommend to our customers.

If you need to convince someone that making this investment is worthwhile you might find this whitepaper Build & Deployment Automation for the Lean Economy (pdf; registration required) useful. In it we use the Lean technique of Value Stream Mapping to illustrate why automating your deployments is such a big win for the team. When you realize how much "waste" there is in manual deployments of the kind you're describing the investment in automation is a no-brainer.

Jtf

Jeffrey Fredrick
We have 10+ test environments and over 100 production servers that we manually deploy to currently.
jamesaharvey
Yikes! Well, think of all the time you'll get back from automation! :)I recommend that you edit your questions to describe the technologies you're using on your server: IIS vs Apache vs JBoss etc, PHP vs .NET vs Java etc. I think you'll get better answers with those additional details.
Jeffrey Fredrick