views:

31

answers:

1

What are you using to script deployments for complex server products?

Imagine we've got some slick new code (or maybe version 42 of slick code) and have ship it. Now, of course we have the basics in place here - databases build and upgrade themselves. We have nice "packages" (zip files) But there is a lot in between "shiny new server" and "OK, now hit the go button" - from service accts, to 3rd party software, to fonts.

We're an MS shop, by the way: IIS, ASP.NET, MSSQL. We're mostly deploying our own servers. As the product gets bigger and scales horizontally, updating a lot of servers is getting heavy.

Enlighten me as to how to do this easily and well with answer to any of the following ...

  • What's your favorite solution(s) to server deployment?
  • How often do you fall back to manual steps (add this x to IIS)?
  • Does anyone really use the Website Setup projects in Visual Studio?
  • Is it cheaper to buy an intern than script it?
  • If you script it, what are you using - and did you like it? (Someone here just made a compelling installer out of MSBUILD. After .NET - installs, it's always there.)
  • Have you learned to love WMI? How?
  • Have you achieved deployment transcendance. A mere glance at the shiny new server deploys the code and all its dependencies? How?
A: 

We use NANT for the uploading of new versions to production. We have modified it to our needs and it works ok. We hardly ever need to make manual changes except for changes to web.config which we do manually. We upload a new version on a weekly basis and in some cases we upload daily. We have the option to roll back to previous version, we can select which servers to upload to, we upload different branches to different servers, everything that we needed to do we were able to build on top of it.

I recommend writing some upload script. This is the best way you can make sure that you don't forget anything, that you can easily roll back and that you know exactly what's going on on your servers.

thunderc