Knowledge base

Knowledge base

Close

Микросервисная архитектура на MongoDB с одной БД

Платформа прикладного ИИ ALLY Tech AI представляет собой контейнер-ориентированную архитектуру, связывающую микросервисы, упакованные в docker контейнеры. Платформа поделена на модули, которые представляют из себя несколько контейнеров, объединенных в pod’ы. Оркестрация контейнерами выполняется с использованием Kubernetes – Программного обеспечения с открытым исходным кодом.

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

Подробно архитектура представлена в разделе Схема архитектуры ALLY Tech AI.

Основными составляющими являются:

  • Apache Kafka – брокер сообщений, который обеспечивает обмен данными между модулями Системы, а также передает результат работы одного модуля к другому.
  • СУБД – система управления базами данных. В BAUM AI используются MongoDB и PostgreSQL.
  • Файловое хранилище – NFS или распределенное.
  • Подсистема графического интерфейса – программный модуль GUI.
  • Подсистема управления данными состоящая из:
    • Socket-io – модуль, обеспечивающий обмен данными между сервисами Системы в режиме реального времени. Socket обеспечивает двустороннюю передачу данных (преимущественно рабочие области и раздел данные на платформе)
    • Rest-async – модуль, обеспечивающий асинхронное, параллельное выполнение операций при обмене данными между сервисами
    • Модуля управления пользователями
  • Подсистема логирования и мониторинга, содержащая:
    • Модуль логирования
    • Модуль мониторинга аппаратной части
  • Подсистема обработки данных, содержащая:
    • Модуль препроцессинга данных
    • Менеджер файлов
    • Конвейер приложений – модуль внутри API Системы, с помощью которого можно создавать новые приложения, используя готовые обученные модели. Это своего рода упаковщик приложения, получаемого в результате работы исполнителя. 
  • Подсистема взаимодействия с внешними источниками данных – модуль, отвечающий за интеграции с внешними БД через шлюз передачи данных
  • Подсистема конструктора ИИ, содержащая:
    • Менеджер пайплайнов – модуль для работы с блок схемами, управляющий исполнителями задач. 
  • Подсистема исполнителя задач:
    • Менеджер запуска – модуль обрабатывающий задачи на запуск пайплайнов 
    • Исполнитель задач – запускает блоки пайплайна. Задачи получает от менеджера пайплайнов – получает на вход идентификатор блока. В системе присутствует несколько исполнителей задач, по которым менеджер пайплайнов распределяет задачи. Результат работы исполнитель возвращает обратно менеджеру.
    • Подсистема искусственного интеллекта тесно взаимодействует с подсистемой конструктора искусственного интеллекта, состоит из:
      • Библиотек и алгоритмов машинного обучения
      • Библиотек нейронных сетей и глубокого обучения
      • Модуля анализа данных
  • Подсистема визуализации и формирования отчетов, состоящая из
    • Модуля визуализации, позволяющего представлять данные в виде графиков, изображений и таблиц
  • Модуль сообщений и модуль истории изменений
In this article: