views:

434

answers:

1

I have 6 servers that i need to deploy my ASP.NET web application to. While deploying enhancements, I usually remove 3 from the cluster, deploy the app, put them back in rotation, and remove the other 3 and do the same.

What is the best practise that you would follow to minimize/eliminate any customer impact when you are deploying application changes

+1  A: 

We normally remove from the cluster and swap out, like you do. We are currently running six VMs as our server farm (which was scaled up from four physical machines, to account for VM overhead). We rotate three out at a time, as well. The rule of thumb we follow is that at least half of the nodes need to be available at any given time to keep the site up, otherwise, we pull the entire site.

Also, we are very seriously considering using a warm "image" server that is out of the cluster that can be deployed to, tested, and then imaged for deployment. The assumption is that the image will be completely tested and we can minimize downtime for deployment and not have to go through a full series of smoke tests for each node.

joseph.ferris
That is workable if updates/changes apply only to the web site. What if updates need to be applied to the database or other backend services as well?
icelava