what is the best practice of publishing website updates on IIS running on a webserver farm

Hello experts,
We are running a website on a virtual platform with .net and MS SQL (VMWare on SAN). where we are planning to to add multiple Web Servers running MS windows 2008 web edition. My question is what would be the best practice of publishing updates as it has to be done on all the servers at the same time. Thank you so much.  
Who is Participating?
edster9999Connect With a Mentor Commented:
You setup your system to load balance across the servers.
How you move to the update depends on how much 'live' testing it needs and how many servers you have and how many you need to operate.

In a system I ran a few years ago we had 4 servers load balanced for the site.  Updates had to be run on all servers - or rather you could not have the old version and the new version live at the same time.
We would take 2 of the servers out of the load balancer and update and test them offline.  When we were happy they were ready we would put them back in, and take the other 2 out.  We would wait for an hour so if there was an issue with 'live testing' (live testing is different to your testing as people put in real credit card numbers and do stupid things etc)
If this looked good we updated the last two boxes and then put them back in.

We could get this done as the boxes had lots of capacity.  They were running under 50% so 2 boxes would manage the site.  We also picked the quietest time to do it.
If you do not have spare capacity like this then you take the site down.  You leave one box online running a 'site is down for maint' message and update all servers at once.
dahterAuthor Commented:
We have a similar process planned right now. We have a Citrix Netscaler as the load balancer and we want to use multiple web servers. We also have testing platform where we test our code before we lunch so we do not need to do live testing. I'm sure there is a way to publish the website on all 5 servers at the same time without taking them offline.  
edster9999Connect With a Mentor Commented:
As above... there are two types of testing.  Pre-production testing and live testing.
You do as much pre-production testing as you can.  You test every method of moving through the site or paying for goods you can.
...but... you can and will run into issues when real customers get on the site.
You do need a fall back plan in place.  Trust me on this - you do.

You can publish to all servers at the same time.  A script will copy the new files or tell the server to start using a new folder.  But almost all servers will need to reload the webserver to make changes happen.  This will normally end up with the current users seeing '500' errors or loosing their shopping carts etc.  A far more graceful way of doing it is to take servers offline and then swap them over.
Every web site / farm is different.  Your site will need different things from the ones I ran and your servers will be different.
Come up with a plan that fits you (and your customers and their cusomters) - and always have a documented fall back method.

dahterAuthor Commented:
These are good suggestions. Thank you. I figured it can be done via using a script. I just need to know what is the industry standard out there, if any, so I will keep looking into it. As you said every environment is different and we need to come up with our own plan. I will give you credit for you post but rather wait a few more days to see if there will be other suggestions. Thanks again.
Glad to be of service :)
I've run everything from single web servers which obviously need down time for updates (we would run a seperate web service on the same box with a different address to do the pre production testing and then put up a 'being updated' page for the update), all the way up to a load balancer with about 40 servers under it for International companies (which was the examples above).

Hopefully some other EExperts can give you other examples of what they do and you can pick the example that matches your needs the best.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.