Архитектура
Горизонтальный кластер состоит из нескольких наборов узлов (SberMobile серверов), каждый из которых выполняет определенную задачу по предоставлению пользователям доступа к ресурсам приложений.
Узлы Координатора кластера представляют собой "мозг" Горизонтального кластера. Он обеспечивает непрерывный мониторинг узлов системы, управляет распределением ресурсов, обрабатывает развертывание приложений и отвечает за соответствующее масштабирование кластера.
Первичные узлы по сути выполняют приложения, т. е. обеспечивают связь с устройствами, постоянное хранение их данных и полный жизненный цикл ресурсов управления данными, например, оповещениями или моделями.
Серверы приложений поддерживают шаблоны ресурсов, которые применяются к основным узлам. Эти шаблоны обычно синхронизируются с мастер-копиями приложений, опубликованными на сервере marketplace или в системе контроля версий Git.
Серверы логина обслуживают веб-пользователей, которые работают с приложениями, распределенными по кластеру.
Наконец, хранилище кластера представляет собой единый кластер баз данных Cassandra, в котором централизованно хранятся данные конфигурации, события и бинарные блоки.
Глоссарий некоторых ключевых терминов, используемых во всем тексте:
Арендатор: организация или компания, занимающаяся разработкой, обслуживанием или эксплуатацией приложений, развернутых в горизонтальном кластере.
Субарендатор: дочерняя компания, подразделение или отдел компании-арендатора.
Организационная единица: арендатор или субарендатор. Организационная единица владеет определенным набором ресурсов кластера.
Область управления: набор основных узлов, которые используют ресурсы, используемые конкретным приложением ("область приложения") или конкретным арендатором ("область арендатора").
Кластеризованные ресурсы: Ресурсы, единственные экземпляры которых расположены на определенном первичном узле, например, устройства или экземпляры моделей. Например, очевидно, что существует только один экземпляр каждой учетной записи устройства, который соответствует реальному аппаратному устройству или источнику данных. Аккаунт устройства может мигрировать с одного первичного узла на другой, но он никогда не реплицируется. Каждый кластеризованный ресурс принадлежит одному арендатору. Кластеризованные ресурсы обычно не имеют шаблонов на серверах приложений, они создаются пользователями приложений по запросу во время рутинной операционной деятельности.
Реплицированные ресурсы: Ресурсы приложения, которые имеют отдельную копию на каждом основном узле, входящем в область приложения, например, оповещения. Обычно эти ресурсы основаны на шаблоне, хранящемся на сервере приложений, и синхронизированы с этим шаблоном. Например, оповещение, реплицированное из шаблона на каждый первичный узел в области приложения, может проверять все устройства, принадлежащие этому приложению. Реплицированные ресурсы обычно совместно используются различными арендаторами приложений.
Ресурсы сессий: Ресурсы, которые используются непосредственно на сервере приложений путем подключения к виртуальному дереву контекста сеанса пользователя на сервере логина, например отчеты или инструментальные панели. Например, инструментальная панель может просто открываться в браузере как часть пользовательского интерфейса приложения. В качестве другого примера, отчет, запущенный на узле сервера приложений, может запрашивать и агрегировать данные с устройств, расположенных на нескольких первичных узлах, включенных в сферу приложения.