При создании интеграционных решений, когда речь идет об обработке больших объемов данных и обработке большого количества запросов, часто возникает вопрос о возможности кластеризации серверов для улучшении различных характеристик системы. Не всегда речь идет об интернет-портале, это может быть и корпоративная, либо ведомственная интранет-сеть с большим числом клиентов. Дополнительную актуальность задаче кластеризации придает все большее распространение кластерных решений, относительно недорогих серверных систем формата 1U или серверных лезвий (blade).
Прежде всего необходимо отметить, что при кластеризации могут ставиться различные задачи: балансировка сетевой нагрузки (NLB) и повышение производительности или обеспечение высокой доступности (высокой готовности). В рамках данной работы большее внимание уделялось первой задаче.
Для повышения производительности все три сервера семейства так или иначе поддерживают кластеризацию или использование аппаратной избыточности. Если все три сервера используются совместно (обычно типовое решение включает как минимум два сервера - MS SQL и MOSS либо BizTalk, но возможно совместное использование всех трех серверов), то типичные рекомендации для начальной конфигурации сводятся к размещению серверов минимум на двух апппаратных узлах: веб-сервер и сервер приложений (включая MOSS и BizTalk) на одном сервере, а SQL-сервер - на другом. При необходимости развертывания избыточного решения необходимо построить так называемую ферму минимум из трех серверов. В этом случае выполняется либо кластеризация SQL-сервера, либо кластеризация веб-сервера. Как правило, для большинства сценариев предпочтительнее избыточность на уровне веб-сервера и серверов приложений для поддержки большого числа запросов. При увеличении размера фермы до 4, 5 или 6 серверов штатное решение предусматривает как кластеризацию или зеркалирование SQL-сервера, так и веб-серверов, и при необходимости - серверов приложений (в качестве сервера приложений может выступать и BizTalk, если он включен в конфигурацию).
Кластеризация сервера баз данных редко преследует цели повышения производительности и является решением для обеспечения высокой готовности. Это связано с тем, что при более грамотном проектировании современных приложений, в том числе интерационных, на сервер баз данных часто ложится относительно небольшая нагрузка. С другой стороны, если интеграционный портал активно использует индексацию ресурсов и задачи поиска по контексту, либо - задачи обработки данных, использующие функциональность SQL Server, тогда повышение производительности этой компоненты может выйти на первый план.
Избыточность в сервисах SharePoint в основном сводится к избыточности на уровне вебсерверов и размещению роли обработки запросов на разных серверах. В свою очередь, кластеризации можно подвергнуть и BizTalk, если основную нагрузку интеграционного приложения несет на себе реализация управления бизнес-процессами или интенсивная конвертация больших объемов данных. Здесь также возможны варианты, типичные из них включают сценарии кластеризации на разных уровнях работы с сообщениями: прием, обработка и отправка (пересылка). Например, можно реализовать кластеризацию при приеме сообщений (рис. 1), либо - при обработке (рис. 2)
Рис. 1
Рис. 2