Лучшая практика для обновления живого сайта, работающего на IIS - PullRequest
9 голосов
/ 20 мая 2011

В настоящее время, когда у нас есть обновления, которые мы хотим развернуть на нашем живом веб-сайте, мы запускаем файл .bat, который копирует всю структуру папок из нашей среды разработки на живые серверы.Это заменит папку, на которую указывает виртуальный каталог, новым обновленным новым.Это делается, когда сервер и IIS работают, и, очевидно, когда пользователи обращаются к веб-сайту.

Иногда мы получаем ошибки, вызванные тем, что файлы или папки блокируются сразу после обновления, и обычно это единственный вариант.это остановить IIS или перезагрузить сервер.Мы предполагаем, что эта «блокировка» вызвана тем, что файл .bat пытается перезаписать файл, когда он используется IIS.

Кто-нибудь еще сталкивался с этим и / или что вы бы порекомендовали как лучший?способ обновления живого веб-сайта на лету с минимальным временем простоя (т.е. практически без простоев).

Спасибо.

Ответы [ 2 ]

5 голосов
/ 20 мая 2011

Перемещено как ответ, а не как комментарий, там был тупой момент!

Если у вас не может быть простоев, лучше всего иметь другую работающую копию сервера, на которую вы можете перенаправить пользователей, когда вы захотите обновить основной сервер. После этого вы перенаправляете своих пользователей обратно к основному после обновления.

Вы можете использовать State Server, расположенный на другом сервере, чтобы обеспечить поддержание любого состояния сеанса при переключении с одного на другой.

В настоящее время мы экспериментируем с Microsoft Web Farm Framework, которая, похоже, очень хорошо справляется с такой задачей.

Наша установка включает сервер переднего плана, основной и дополнительный веб-сервер и отдельный сервер состояний. WFF синхронизирует копии веб-приложений на обеих машинах, а сервер состояний гарантирует, что если пользователь переключает серверы между запросами (или их текущий сервер отключается), он не должен замечать это изменение.

Чтобы обновить основной сервер, снимите его с балансировки нагрузки, который перенаправит все его запросы на дополнительный сервер. Выполните обновление, верните его в ротацию и повторите процедуру со вторым сервером.

5 голосов
/ 20 мая 2011

Купите второй веб-сервер, купите балансировщик нагрузки. Отметить 1 сервер в автономном режиме, обновить, вернуть в оперативный режим. Отключить сервер 2 от сети, обновить его, вернуть в оперативный режим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...