views:

41

answers:

2

I have an application that is load balanced across two web servers (soon to be three) and deployments are a real pain. First I have to do the database side, but that breaks the production code that is running - and if I do the code first the database side isn't ready and so on.

What I'm curious about is how everyone here deploys to a load balanced cluster of X servers. Since publishing the code from test to prod takes roughly 10 minutes per server (multiple services and multiple sites) I'm hoping someone has some insight into the best practice.

If this was the wrong site to ask (meta definitely didn't apply - wasn't sure if serverfault did as I'm a dev doing the deployment) I'm willing to re-ask elsewhere.

+2  A: 

I use nant scripts and psexec to execute them.

Basically in the farm there's a master server that copies the app and db scripts locally and then executes a deployment script in each server in the farm, that copies the code locally, modifies it if needed takes the app offline deploys the code and takes the app online

Usually the app is of for about 20 seconds (5 nodes)

Also, I haven't tried it but I hear a lot about MSDeploy.

Hope this helps

Jaime
Interesting, I'll check out both of those. Thanks!
digitall
+1  A: 

Yeah, if you want to do this with no downtime you should look into HA (High Availability) techniques. Check out a book by Paul Bertucci - I think it's called SQL Server High Availability or some such.

Otherwise, put up your "maintenance" page, take all your app servers down, do the DB and one app server first, then go live and do the other two offline.

Benjamin Cox
I don't know if this would work - the DB server is Oracle and I don't have the SQL equivalent of dbo access to it. I've done the maintenance thing before, but that doesn't help the back-end processing.
digitall
Oh, I think I added "how do I do this without downtime" to your question in my mind - sorry!I don't think there are any "best practices" for doing what you're currently doing. If a company can't afford the investment in HA at the DB tier they generally send out emails ahead of time and put up the "Back Soon" page. Then they don't come back until they've not only deployed but done sufficient testing to be satisfied. Usually extra late at night, in my experience.If you are trying to figure out how to get the code from point a to point b more quickly, perhaps you can give us more details?
Benjamin Cox
I think a combination of the back soon page and an automated script are definitely in my future. The speed part isn't too bad, I just need to come up with a better mechanism than doing all of this stuff manually is all.
digitall