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?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
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.  
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.

It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft IIS Web Server

From novice to tech pro — start learning today.