Планирование архитектуры

В этом разделе даются некоторые советы по планированию и проектированию архитектуры развертывания AggreGate. В частности, здесь рассказывается о том, как распределить системные функции между отдельными серверами и построить надежную высокопроизводительную передачу данных между ними.

Обратите внимание, что AggreGate - сложная платформа, и высоконагруженные приложения, созданные на ее основе, не будут идеальными, если опираться на стереотипные шаблоны, описанные здесь. Каждая высоконагруженная архитектура требует тщательного продумывания. Мы рекомендуем партнерам и клиентам AggreGate поддерживать связь с командой Tibbo для проверки сложных архитектур.

Определение ролей сервера

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

Сервер платформы + сервер хранения данных

Эта схема развертывания требует наличия двух серверов/VM - одного для экземпляра сервера AggreGate и другого для экземпляра движка базы данных. Обе машины должны быть расположены в одном центре обработки данных и соединены высокоскоростной сетью (1 Гбит/с или выше) из-за высокой интенсивности обмена данными между сервером AggreGate и его базой данных.

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

Несмотря на использование двух серверов, в данной схеме развертывания не реализован метод обхода отказа. Она требует правильной политики резервного копирования и восстановления.

Активно-пассивный отказоустойчивый кластер

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

Экземпляры сервера AggreGate, работающие на обеих машинах, являются членами активно-пассивного кластера обхода отказа: один из них является главным узлом, а другой - узлом обхода отказа.

Два экземпляра движка базы данных, расположенные на одних и тех же машинах, являются узлами кластера обхода отказов для конкретной базы данных. Например, если используется база данных Apache Cassandra, серверы Cassandra реплицируют (зеркалируют) все данные между собой, обеспечивая защиту от сбоев хранилища. В этом случае требования к дисковому пространству должны предъявляться к каждой из серверных машин (и фактически удваиваются).

Высоконагруженный активно-пассивный отказоустойчивый кластер

Для этого сценария требуется четыре сервера/VM. Это высокодоступная установка AggreGate, способная справиться с самой высокой нагрузкой, которую можно выдержать без разделения ролей серверов, расположенных в одном центре обработки данных.

Единственное отличие от описанного выше сценария заключается в том, что каждый экземпляр AggreGate и сервера базы данных занимает отдельную машину. Отсутствие разделения ресурсов CPU/RAM между AggreGate и его механизмом хранения обеспечивает более высокую общую производительность, особенно во время скачков нагрузки, возникающих при запуске системы, массовом переподключении устройств после сбоя сети или одновременной ресурсоемкой деятельности или нескольких пользователей/операторов.

Активно-активный отказоустойчивый кластер

Активно-активный обход отказа - это передовая технология, основанная на горизонтальном кластереAggreGate. Позволяя сократить время простоя при сбоях с десятков секунд до считанных секунд, она требует тщательного (и порой непростого) планирования и адаптации архитектуры вашего продукта/решения к довольно сложной реальности парадигмы горизонтальной кластеризации.

Архитектура активно-активного отказоустойчивого кластера строится либо из двух узлов Active-Passive Failover Cluster, либо из четырех узлов High-load Active-Passive Failover Cluster, в зависимости от ожидаемой нагрузки на систему. Один или два сервера/ВМ Cluster Coordinator добавляются к описанным выше структурам узлов, формируя следующий список вариантов:

  • 3-узловой: два общих сервера базы данных AggreGate+ и сервер координатора кластера без поддержки

  • 4-узловой: две общие машины AggreGate+базы данных и два реплицированных сервера-координатора кластера

  • 5-узловой: два AggreGate-сервера, два сервера баз данных и не поддерживаемый сервер-координатор кластера

  • 6-узловой: два AggreGate-сервера, два сервера баз данных и два реплицированных сервера-координатора кластера

Распределенный двухуровневый

Это географически распределенный сценарий развертывания с двумя ролями серверов: один или несколько серверов коллекторов/зондов и один центральный сервер.

Высокая нагрузка

Очевидным узким местом сценария развертывания Distributed Two-Tier является его центральный сервер. В большой системе с несколькими сотнями тысяч устройств центральный сервер должен обрабатывать до миллиона или даже миллионов событий в секунду.

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

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

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

Горизонтальный кластер

Горизонтальный кластер - наиболее продвинутый сценарий развертывания AggreGate. Это бессерверная архитектура, позволяющая автоматически масштабировать AggreGate установку с неограниченным количеством устройств и пользователей.

Из-за своей сложности архитектура горизонтального кластера должна планироваться в сотрудничестве с командой Tibbo.

Технология кластеризации Hozirontal описана в отдельном разделе.

Was this page helpful?