Назад | Перейти на главную страницу

Надежная отработка отказа для IIS и ASP.NET MVC?

Наша команда в настоящее время планирует наш следующий большой проект, который, похоже, будет захватывающим!

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

Мы не хотим переусердствовать с инфраструктурой, которая нам не обязательно нужна, поэтому для первоначального развертывания мы хотели бы иметь 2 бокса Win2k8 с IIS7 в качестве веб-боксов.

1 основной мощный сервер базы данных SQL Server 2008, работающий как главный, и немного меньший сервер как подчиненный / аварийный.

Отработка отказа SQL не является проблемой (потому что мы кретины SQL Server!)

Однако мы не уверены, как реализовать отказоустойчивый веб-сервер, на данный момент мы не хотим разделять нагрузку между двумя веб-серверами на ранних этапах, а вместо этого должны терпеливо ждать переключения при отказе в случае, если основной блок выйдет из строя!

Я просмотрел различные системы высокой доступности, такие как HAproxy и им подобные, но не совсем понимаю, как получить такую ​​конфигурацию.

(Я не говорю, что мы ищем совета по HAproxy ... это всего лишь одна из систем, которые, как мы видели, производят большие волны, наряду с ldirectord и т.

Я также должен отметить, что мы не боимся запускать балансировщик нагрузки на Linux, если это необходимо!

Настройка аварийного переключения с помощью haproxy проста и довольно гибкая. Установите его на машину, и он будет перенаправлять соединения, куда бы вы ни указали. Вы можете положиться на его базовую HTTP-проверку, чтобы перейти к резервному серверу или указать на страницу со сценарием для более сложных правил переключения.

Вероятно, вы в основном избегаете этого с помощью mvc, но если вы используете состояние сеанса, вам необходимо поделиться им между веб-серверами.

Затем балансировщик нагрузки становится SPoF, поэтому вам нужно запустить его на нескольких машинах и использовать циклический DNS или что-то вроде ucarp, чтобы они могли совместно использовать IP-адрес.