Архитектура системы
Converged — это модульный операционный слой для производственных компаний. Его пользовательские интерфейсы, предметные сервисы, движок рабочих процессов, хранилище, медиашлюз и промышленные процессоры образуют единую систему, не превращаясь в одно приложение.
Архитектура разделяет три вида работы:
- предметные модули владеют бизнес-данными и пользовательскими возможностями;
- нативные сервисы среды выполнения передают сообщения, выполняют рабочие процессы, хранят данные и обрабатывают мультимедиа в реальном времени;
- плоскость управления определяет, какие части запускаются для каждой платформы и каждого арендатора.
Одна шина сообщений
Компоненты среды выполнения взаимодействуют через Fujin. Каждый процесс открывает одно соединение, регистрирует цель и отправляет сообщения логическим адресатам. Отправителю не нужно знать адрес или место развёртывания получателя.
браузерные и мобильные клиенты
|
v
шина сообщений Fujin
/ | | \
ui ms Centimanus Resonus
\ | /
\ Behemoth /
Это устраняет граф HTTP-вызовов и сервисную mesh-сеть из прикладного слоя. Маршрутизация, корреляция запросов и доверенный контекст арендатора передаются в общем конверте сообщения. Затем принимающий процесс выбирает запрошенный сервис или обработчик внутри собственной границы.
Основная среда выполнения
| Компонент | Ответственность |
|---|---|
| Fujin | Соединяет узлы среды выполнения и направляет сообщения к текущему владельцу цели. |
| Behemoth | Предоставляет изолированные SQL-, ключ-значение-, колоночное, векторное, графовое и файловое хранилища. |
| Centimanus | Выполняет многошаговые бизнес-процессы как воспроизводимые графы. |
| Resonus | Обрабатывает мультимедиа в реальном времени, звонки, транскрибацию и сеансы ИИ. |
| Ptah | Сводит желаемые платформу, решения и арендаторов с ресурсами Kubernetes. |
Компоненты намеренно узкоспециализированы. Fujin не понимает бизнес-сервисы. Behemoth не оркестрирует бизнес-операции. Centimanus не владеет предметными данными. Resonus не определяет идентичность арендатора. Ptah создаёт и настраивает рабочие нагрузки, но не участвует в обмене сообщениями во время выполнения.
Модули и решения
Бизнес-возможности поставляются в виде микросервисов, поверхностей и рабочих процессов. Решение — это декларативный выбор этих модулей для определённого операционного сценария, например обработки заказов, планирования производства или мониторинга оборудования.
Микросервисы владеют своими данными и предоставляют типизированные контракты. Они не вызывают друг друга для координации процесса. Последовательности, проходящие через разные предметные области, относятся к рабочим процессам, которые Centimanus выполняет по одному устойчивому шагу за раз. Это позволяет сохранять предметные модули небольшими и объединять их в решение без создания скрытой связанности.
Изоляция данных
Каждый микросервис имеет собственный физический корень хранения. Behemoth может обслуживать множество корней из одного процесса, но сохраняет границы их владения и отказывается создавать данные за пределами настроенных точек монтирования.
Та же модель масштабируется на разные профили развёртывания:
- периферийная установка может запускать один экземпляр Behemoth для платформы;
- более крупная установка может разделять области между сегментами хранения;
- облачная установка может запускать отдельный экземпляр хранилища для каждого арендатора.
Изменение топологии не требует изменения кода приложения, поскольку узлы по-прежнему обращаются к логическим целям и границам хранилища.
Плоскость управления
Ptah — это плоскость управления, не подключённая к Fujin. Она наблюдает за объявленными ресурсами Platform, Solution и Tenant, вычисляет желаемые рабочие нагрузки и согласует их с Kubernetes.
Платформа + Решения + Арендаторы
|
v
Ptah
|
v
Развёртывания, сервисы, тома, конфигурация и маршруты
Такое разделение позволяет среде выполнения сосредоточиться на бизнес-трафике, тогда как модель развёртывания управляет размещением, топологией хранилища, маршрутами арендаторов и жизненным циклом. Поэтому одни и те же образы приложения могут работать как в компактном периферийном кластере, так и в облачной среде с несколькими арендаторами.
Доверенный контекст
Область арендатора устанавливается на границе платформы и передаётся в конверте сообщения. Сервисы среды выполнения используют этот доверенный контекст вместо определения арендатора из полезной нагрузки приложения. Размещение хранилища, вызовы сервисов и медиасеансы сохраняют одну и ту же границу области.
В совокупности логические сообщения, изолированное хранилище, воспроизводимые рабочие процессы и отдельная плоскость управления позволяют Converged оставаться модульной системой, не перекладывая сложность распределённых систем на каждый бизнес-модуль.