Горизонтальный кластер
Горизонтальный кластер AggreGate – это особый вариант развертывания платформы AggreGate, разработанный для огромных многопользовательских инсталляций. Его основная цель – обеспечить неограниченное горизонтальное масштабирование. Миллиарды устройств миллионов пользователей работают в тысячах бизнес-приложений, распределенных между разными клиентами, и все это управляется через единый интерфейс. В основном горизонтальный кластер предназначен для телеком-операторов и поставщиков управляемых услуг (MSP), но подойдет и всем другим типам заказчиков, которые прогнозируют большой рост количества подключенных устройств и хотят избежать дополнительных затрат на масштабирование.
Архитектура горизонтального кластера
Горизонтальный кластер – это набор различных узлов, действующих вместе как единая логическая сущность. Каждый узел кластера – это отдельный экземпляр платформы, которому присвоена конкретная роль.
Роли узлов в горизонтальном кластере:
- Координатор кластера управляет функционированием кластера в целом и обеспечивает ролевой доступ
- Главные узлы реализуют бизнес-логику IoT-приложений и обрабатывают машинные данные
- Логин-серверы обрабатывают подключенные пользовательские сессии и формируют пользовательский интерфейс
- На серверах приложений размещаются ресурсы и настройки приложений
Внешние системы, используемые совместно с горизонтальным кластером:
- Кластер базы данных (например, Apache Cassandra) обеспечивает масштабируемое долговременное хранение данных
- DevOps-ландшафты обеспечивают доставку приложений и их обновлений через системы контроля версий или через сервер AggreGate Marketplace
- Поддержка внешних реестров пользователей/клиентов позволяет беспрепятственно интегрироваться с OSS/BSS, биллингом и другими подобными системами
- Автоматическое масштабирование достигается за счет взаимодействия с системами управления инфраструктурой/виртуализацией
Роли узлов кластера
Подключение новых потребителей ведет к увеличению числа подключенных устройств, что требует расширения горизонтального кластера до тысяч узлов. Добавление новых узлов может быть автоматизировано за счет взаимодействия с системами управления инфраструктурой/виртуализацией. При этом, независимо от размера кластера, его работоспособность обеспечивают следующие преднастроенные роли.
Координатор кластера
Координатор – «мозг» горизонтального кластера. Его основные функции:
- Координация работы кластера в целом
- Назначение и распределение ресурсов
- Управление ролевым доступом
- Взаимодействие с внешними реестрами пользователей/клиентов
- Формирование платежной информации
- Развертывание приложений
- Оркестрация добавления/удаления главных узлов
Отказоустойчивость и высокая скорость работы координатора кластера обеспечивается за счет использования распределенной in-memory базы данных. Все изменения конфигурации и настроек мгновенно реплицируются между узлами координатора, которые работают в режиме active-active.
Главные узлы
Главные узлы – это основные рабочие узлы горизонтального кластера. Их функциональность включает в себя:
- Взаимодействие с устройствами
- Преобразование и хранение данных
- Работа моделей цифровых двойников и алгоритмов машинного обучения
- Обработка потоков данных
- Реализация любой другой бизнес-логики IoT-приложений
Все ресурсы приложений распределяются на главных узлах по так называемым «ареалам» - областям, связанным с пользователями/клиентами. Координатор кластера регулярно производит оптимизацию таким образом, чтобы ресурсы одного клиента находились на одном или соседних главных узлах кластера.
Главные узлы не хранят данные локально, используя для этого кластер БД. Поэтому в случае отказа узла, его состояние загружается на другом главном узле, обеспечивая отказоустойчивость.
Логин-серверы
Логин-серверы поддерживают соединения с пользователем. Они предоставляют доступ к платформе как через толстый клиент, так и через веб- и мобильные приложения. В момент, когда пользователь устанавливает соединение, логин-сервер запрашивает у координатора кластера набор ресурсов для отображения в интерфейсе с учетом роли пользователя и назначенных прав. Все активности, связанные с функционированием интерфейса и пользовательской аналитикой, обрабатываются логин-серверами. Таким образом, рост одновременного количества пользовательских сессий можно обработать добавлением дополнительных экземпляров логин-серверов и их регистрации в инфраструктуре балансировки сетевой нагрузки.
Серверы приложений
Серверы приложений содержат мастер-копии low-code приложений и их конфигурации. Доставка обновлений приложений на серверы приложений происходит через подключенную систему контроля версий или через магазин приложений – AggreGate Marketplace. Часть бизнес-логики может реализовываться непосредственно на серверах приложений, хотя в основном модули реплицируются на главные узлы и исполняются там.