NLB и Web Deploy
У меня есть два веб-сервера в кластере, обслуживающем веб-приложение.
Использование MS Web Deploy для отправки новой версии приложения на один сервер, а затем снова для синхронизации файлов с другим сервером в кластере. Кажется, это самое обычное занятие.
Но не было бы проблемы, когда один сервер развернут с новой версией, а другой еще не закончен. Не вызовет ли это проблем, когда страница, загруженная с новой версией, отправляет запрос веб-службы, а балансировщик отправляет запрос на сервер со старой версией?
Какой лучший способ избежать этого?
Я подумал о том, чтобы написать сценарий "дренажной остановки" сервера, на котором мы развертываем, и убедиться, что одновременно работает только один сервер. Но я не могу найти никого другого, кто, кажется, писал о таком решении. И думаю, что это не очень хорошо масштабируется.
Другим решением может быть отключение всех серверов при обновлении. Но это не кажется очень умным.
Какие-либо предложения?
2 ответа
Вы можете использовать DFS, чтобы файлы в основном мгновенно копировались на другой сервер (ы).
Кроме того, вы можете редактировать файлы хостов каждого сервера так, чтобы каждый сервер использовал свои собственные размещенные сервисы вместо того, чтобы проходить через NLB и, возможно, переходить на другой сервер. Когда вы уже находитесь на сервере, редко есть причина перейти на другой сервер, это только вызывает головную боль, как вы упомянули, и снижает производительность.
Теперь есть также Web Farm Framework: http://weblogs.asp.net/scottgu/archive/2010/09/08/introducing-the-microsoft-web-farm-framework.aspx