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

Дизайн веб-приложений при наличии нескольких субприложений

В настоящее время я нахожусь на ранней стадии проектирования крупномасштабного веб-приложения, которое определенно будет размещено на большой ферме веб-серверов. Теперь я пытаюсь решить, хочу ли я, чтобы весь сайт был www.site.com, а вложенные приложения размещались в папках, например www.site.com/blogs, www.site.com/messages и т. Д. Или хочу ли я иметь их в качестве поддоменов, например blogs.site.com, messages.site.com и т. д. Самый большой недостаток субдоменов в том, что я буду интенсивно использовать ajax, и он не любит междоменные вызовы, например Я не смогу вызвать веб-службу, размещенную на www.site.com, со страницы, размещенной на blogs.site.com - браузер выдаст исключение разрешений. Самый большой довод против размещения всего на сайте www.site.com заключается в том, что я не вижу способа выделить веб-фермы для определенных подприложений. Например, если я хочу, чтобы ферма была посвящена приложению для блогов, тогда это просто в случае использования поддоменов, но как мне это сделать, если все находится под www?

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

Среда - Windows 2008 и ASP.NET 3.5.

Спасибо! Андрей

Вы не упомянули платформу, но, например, с IIS7 ARR вы можете направлять вызовы на разные серверы на основе ряда критериев, таких как крошечные детали URL-адреса, типы MIME / файлов и многое другое, я бы сказал, что любой достойный продукт для балансировки нагрузки был бы более чем счастлив разобраться в этом для вас без подпрограммы -домены ^^

Хотя при использовании поддоменов, безусловно, легче разделить запросы на несколько кластеров, хорошие обратные прокси, такие как haproxy и varnish, более чем способны проверять URL-адрес и решать, куда отправлять запросы. Кроме того, рассматривали ли вы возможность не специализировать серверы на уровне веб-сервисов и просто позволить каждому компьютеру с веб-сервером обрабатывать любой полученный запрос? Это избавляет от неприятных хлопот, связанных с неправильной оценкой распределения вашей мощности, и с необходимостью панического перемещения нескольких серверов из одного кластера в другой при внезапном изменении нагрузки.

Вы по-прежнему можете специализироваться на своем бэкэнд-уровне, если хотите - кластеризация баз данных намного сложнее, чем кластеризация веб-серверов, в конце концов, - но к тому времени в вашем распоряжении будет интеллект вашего веб-приложения, чтобы решить, где сделать бэкэнд. запросы к.