Высокая доступность для приложения ASP.Net

У нас есть ситуация, когда мне нужно решение высокой доступности для одного из наших приложений, созданных с использованием ASP.Net 3.5.

Клиент ожидает, что около 50 тысяч человек будут обращаться к приложению в данный момент времени, и тогда мы примерно ожидаем около 5% одновременных обращений к приложению.

Типичная транзакция включает заполненную форму и приложенные документы размером около 20 МБ.

Хотелось бы знать следующее:

  1. Где я могу получить информацию о пропускной способности / производительности IIS, поддерживающих указанные выше требования к использованию?

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

Принимая во внимание это требование, могу ли я иметь другие экземпляры, работающие в облаке (предпочтительно Windows Azure), и балансировать нагрузку на все эти экземпляры, включая экземпляр в центре обработки данных клиента? Если да, то как я могу этого добиться?

Любые другие предложения по данному сценарию приветствуются.

Спасибо.


person Sandeep    schedule 21.11.2012    source источник


Ответы (1)


ASP.NET управляет одними из крупнейших сайтов в Интернете ... DELL, MySpace, Microsoft и т. Д.

Когда вы говорите ASP.NET ... это может означать многое. Я предполагаю, что вы говорите о веб-формах, но у вас может быть много разговоров Ajax с веб-сервисами и т. Д.

Вы можете масштабировать ASP.NET для миллионов пользователей, вот пример для ASP.NET 3.5: http://www.slideshare.net/oazabir/scaling-aspnet-websites-to-millions-of-users#btnNext

Трудно ответить на ваш вопрос, не зная своей архитектуры. Ответ коленного рефлекса - да, он может масштабироваться до вашего числа пользователей. Я масштабировал ASP.NET до такой степени.


Azure абсолютно можно использовать для дальнейшего масштабирования веб-сайта. Фактически, многие крупные сайты имеют собственный хостинг, а затем при необходимости масштабируются до облака (например, Zynga использует Amazon) или Apple масштабирует iCloud до двух облаков, используя ОБЕИХ Microsoft и Amazon. Azure включает подсистему балансировки нагрузки без сохранения состояния, поэтому возможны закрепленные сеансы и настраиваемая балансировка нагрузки на веб-формах на основе сеансов .. но вам потребуется либо: 1) написать небольшой программный сервер с балансировкой нагрузки в локальной среде для соответствующей маршрутизации запросов ИЛИ 2) сохранить состояние вашего сеанса в «общей области», такой как кэширование Azure, хранилище таблиц Azure, SQL Azure и т. д. (в основном не состояние сеанса InProc). Кэширование Azure AppFabric включает модули, которыми можно заменить кэширование InProc.

Вы также можете написать «тупой» балансировщик нагрузки, в котором некоторые клиенты всегда находятся в облаке, а некоторые всегда размещены. Это было бы намного проще.

person Bart Czernicki    schedule 21.11.2012