Компоненты ADCP
Back-end
Набор компонентов, реализующих основную бизнес-логику взаимодействия пользователя с платформой. Предоставляет GraphQL API для Front-end приложения.
API Server
Используется для:
- Авторизации пользователей системы;
- Предоставления функций управления системы всеми пользователями через Front-End посредством GraphQL API;
- Отображения информации о сущностях используемыми в системе.
Обрабатываемые данные
- Временные идентификаторы пользователя;
- Бизнес термины;
- Мета-информация о наборах данных
- Статусы матчинга
- Группы матчинга
- Проекты
- Виртуальные машины
- Права пользователей
- Минимальные правила матчинга
- PUSH - нотификации
- Генерация задач для других сервисов
- Получение и отправка данных из БЧ
Хранимые данные
Не хранит данных
Связи
Scheduler
Используется для:
- Проверки наличия запланированных на исполнение по расписанию моделей CleanRoom
- Запуска моделей CleanRoom по рассписанию
Обрабатываемые данные
- Списки моделей CleanRoom
Хранимые данные
Не хранит данных
Связи
Redis
Используется для:
- Cинхронизации данных между Apache Atlas и ClickHouse
- Загрузки Excel-файлов из пользовательского интерфейса
Обрабатываемые данные
- Метаданные датасетов
- Бизнес термины
- Метаданные таблиц ClickHouse
Хранимые данные
Не хранит данных
Связи
Metadata Seed
Используется для:
- Cинхронизации данных между Apache Atlas и ClickHouse
- Загрузки Excel-файлов из пользовательского интерфейса
Обрабатываемые данные
- Метаданные датасетов
- Бизнес термины
- Метаданные таблиц ClickHouse
Хранимые данные
Не хранит данных
Связи
Gatekeeper Back-End
Используется для:
- Актуализация токенов
- Proxy запросов к системе с функцией проверки доступа
- Обработка сценариев отсутствия доступа
- Дополнение хедеров для обработки запросов back-end
- Выход из системы пользователя
Обрабатываемые данные
- Пользовательские токены, полученные из cookie пользователя
Хранимые данные
Не хранит данные.
Связи
Front-end
Набор компонентов, реализующих основную бизнес-логику взаимодействия пользователя с платформой. Предоставляет веб-интерфейс для работы с приложением.
Front-end Application
Предоставляет пользовательский веб-интерфейс для:
- Авторизации пользователей системы;
- Управления функциями системы всеми пользователями;
- Отображения информации о сущностях используемыми в системе.
Обрабатываемые данные
Все пользовательские данные:
- Временные идентификаторы пользователя;
- Бизнес термины;
- Мета-информация о наборах данных
- Статусы матчинга
- Группы матчинга
- Проекты
- Виртуальные машины
- Права пользователей
- Минимальные правила матчинга
- Нотификации
Хранимые данные
Не хранит данных
Связи
Gatekeeper Front-end
Используется для:
- Актуализация токенов
- Proxy запросов к системе с функцией проверки доступа
- Обработка сценариев отсутствия доступа
- Дополнение хедеров для обработки запросов back-end
- Выход из системы пользователя
Обрабатываемые данные
- Пользовательские токены, полученные из cookie пользователя
Хранимые данные
Не хранит данные.
Связи
Auth
Набор компонентов, реализующих логику авторизации и аутентификации пользователей в приложении.
Auth Service
Используется для:
- Работа с пользователями
- Работа с организациями
- Используется Back-end API Server для проверки ролей пользователя
- Обеспечение хранения ролей пользователя
- Назначение ролей пользователя
Обрабатываемые данные
- Информация о пользователе (ФИО,e-mail)
- Связь пользователя с организацией
- Связь пользователя с ролями
Хранимые данные
Не хранит данные.
Связи
Keycloak
Используется для:
- Брокер аутентификации пользователей через Identity Provider
Обрабатываемые данные
- code от внешнего ID provider
- code от Gatekeeper
- токены пользователей
Хранимые данные
- token-ы внешнего IDP
- сессии пользователей
- информация о пользователях внешнего IDP
Связи
Vaultee OIDC provider
Используется для:
- Возможность входа пользователей Vaultee в систему
- Выпуск oauth code для обмена на токен Keycloak-ом
- Выпуск access и refresh token
- Регистрация пользователей Vaultee
- Восстановление паролей Vaultee
Использование опционально. Описывается при в конфигурации деплоя.
Обрабатываемые данные
- Логин/пароль пользователя
Хранимые данные
Не хранит данные.
Связи
Email-service
Используется для:
- используется для обработки rabbitMQ очереди e-mail
- отправка писем, полученных через очередь
Обрабатываемые данные
- Сообщения для отправки
- Данные для обеспечения отправки писем
Хранимые данные
Не хранить данные.
Связи
DBMS
Набор компонентов для работы с данными приложения
MongoDB
Основное хранилище данных сервисов:
- Back-end / API Server
- Data Source / Data Service
Обрабатываемые данные
- Датасеты;
- Бизнес термины;
- Аккаунты пользователей
- Данные VM
- Проекты Data Lab
- Запросы на данные
- Пользовательские нотификации
- Технически данных необходимых для работы системы
- Группы матчинга
Хранимые данные
- Датасеты;
- Бизнес термины;
- Аккаунты пользователей
- Данные VM
- Проекты Data Lab
- Запросы на данные
- Пользовательские нотификации
- Технически данных необходимых для работы системы
- Группы матчинга
Связи
MongoDB Migrations Service
Используется для применения новых миграций при установке обновлений
Обрабатываемые данные
Cхема хранения данных в MongoDB
Хранимые данные
Не хранит данных
Связи
Blockchain Data Updater
Используется для синхронизации данных о:
- проектах
- запросах на данные
- скриптах
- информации об инстансах других партнеров из блокчейна
Обрабатываемые данные
Данные о:
- проектах
- запросах на данные
- скриптах
- информации об инстансах других партнеров
Хранимые данные
Не хранит данных
Связи
Init Dataservice Api
Используется для применения новых миграций при установке обновлений
Обрабатываемые данные
Структура хранения данных в MongoDB
Хранимые данные
Не хранит данных
Связи
Dataset Syncer
Проверяет изменения в БЧ о метаданных датасетов и записывает все изменения в MongoDB
Обрабатываемые данные
Метаданные датасетов
Хранимые данные
Не хранит данных
Связи
Glossary Term Syncer
Обновление данных о Бизнес терминах в БЧ
Обрабатываемые данные
Бизнес термины
Хранимые данные
Не хранит данных
Связи
Dataset Logs Syncer
Синхронизация информации об истории запросов на данные
Обрабатываемые данные
История запросов на данные между всеми инстансами
Хранимые данные
Не хранит данных
Связи
Glossary Syncer
Проверяет изменения в БЧ о глоссариях и записывает все изменения в MongoDB
Обрабатываемые данные
Глоссарии Бизнес терминов
Хранимые данные
Не хранит данных
Связи
Queue Services
RabbitMQ
Используется в качестве брокера сообщений для внутренних сервисов платформы.
Обрабатываемые данные
- Задачи для обработки Анклавом
- Задачи для обновления информации в БЧ
Хранимые данные
Осуществляет временное хранение информации о задачах, до выполнения задачи, не является постоянным хранилищем данных.
- Задачи для обработки Анклавом
- Задачи для обновления информации в БЧ
Связи
Data Service
Набор сервисов для работы с метаданными датасетов и датасетами
Data Service
Предназначен для управления данными и передачи/получения в БЧ о:
- Датасетах;
- Бизнес терминах. А так-же используется в качестве интеграционной шины с Apache Atlas
Обрабатываемые данные
- Датасеты;
- Бизнес термины.
- Запросы на данные;
- Токены доступа к данным
Хранимые данные
Не хранит данных
Связи
Atlas Entity Syncer
Предназначен для управления вычитки данных из атласа и проверки их в ADCP на предмет обновлений, обновления в ADCP и БЧ метаданных датасетов и бизнес терминов
Обрабатываемые данные
- Метаданные датасетов;
- Бизнес термины.
Хранимые данные
Не хранит данных
Связи
Glossary Updater
Обновление данных о глоссариях в БЧ
Обрабатываемые данные
Глоссарии Бизнес терминов
Хранимые данные
Не хранит данных
Связи
Glossary Term Updater
Проверяет изменения в БЧ о Бизнес терминах и записывает все изменения в монгу
Обрабатываемые данные
Бизнес термины
Хранимые данные
Не хранит данных
Связи
Dataset Updater
Обновление данных о метаданных датасетов в БЧ
Обрабатываемые данные
Метаданные датасетов
Хранимые данные
Не хранит данных
Связи
Instance Syncer
Используется для обновления данных о доступах к хранилищам данных
Обрабатываемые данные
Информации о доступе к хранилищам данных
Хранимые данные
Не хранит данных
Связи
Trino
Используется для стандартизации мета-информации хранилищ данных
Обрабатываемые данные
Мета информация хранилищ данных
Хранимые данные
Не хранит данные
Связи
DataLab
Набор сервисов для реализации защищенных удаленных рабочих столов для подготовки моделей данных
DataLab proxy
Проксирование пользовательских запросов для доступа к удаленному рабочему столу VM
Обрабатываемые данные
Данные ввода/вывода рабочего стола VM
Хранимые данные
Не хранит данные
Связи
DataLab VM set
Набор контейнеров - даталабов
Обрабатываемые данные
- Датасеты полученные в результате выгрузки данных в Datalab
- Пользовательский исходный код, написанный в рамках работы с VM
Хранимые данные
- Датасеты полученные в результате выгрузки данных в Datalab
- Пользовательский исходный код, написанный в рамках работы с VM
- IDE для работы пользователей с данными
- Библиотеки необходимые конечным пользователем для подготовки скриптов
Связи
PostgreSQL
Хранение состояний и настроек VM
Обрабатываемые данные
Технические данные необходимые для управления VM
Хранимые данные
Технические данные необходимые для управления VM
Связи
NATS
Временное хранилище задач для управления состоянием VM
Обрабатываемые данные
Технические сообщения по управлению VM
Хранимые данные
Технические сообщения по управлению VM
Связи
Deploy Controller
Предоставление интерфейса управления запуском виртуальным машин используемых в даталабе
Обрабатываемые данные
Запросы на остановку и запуск виртуальных машин
Хранимые данные
Не хранит данных
Связи
K8S Agent of Deploy Controller
Шина доступа к Kubernetes кластеру для управления VM
Обрабатываемые данные
Технические сообщения по управлению VM
Хранимые данные
Не хранит данные
Связи
Dataset Uploader
Используется для: контроля доступности VM и постановки задач в Анклав.
Обрабатываемые данные
- Состояния VM
- Задачи для анклава
Хранимые данные
Не хранит данных
Связи
Enclaves (SGX)
Enclave server (TEE)
Примечание: начиная с релиза 13, Enclave server именуется как DDM (Distributed Data Management).
Безопасная обработка данных, через исполнения пользовательских скриптов в защищенной среде
Enclave Server - веб-приложение, работающее внутри Enclaves (SGX), реализующее бизнес-логику работы анклавов посредством предоставления HTTP API для взаимодействия с ним внешних систем. Внешний канал передачи данных защищен протоколом HTTP, при этом тело шифруется ключами, сформированными на основе общего секрета. Доверие между узлами устанавливается на основе процедуры аттестации Intel SGX с помощью CAS. Таким образом сервер обрабатывает только те внешний запросы, которые от приложения, работающего в доверенном анклаве. Приложение вне анклава не может обратиться к внешнему API.
Enclave Server посредством HTTP API получает команды на запуск скриптов с определенными параметрами. Его задача состоит в том, чтобы, обратившись к блокчейн-ноде и проверив наличие разрешений на запуск требуемого скрипта с определенным параметрами, запустить скрипт в TEE. Скрипты хранятся непосредственно в Enclave Server и не передаются извне. Скрипты реализуют определенную логику работы, например “Матчинг датасетов”.
Аттестация Intel SGX - процедура проверки подлинности анклава и неизменности кода приложения, работающего в нем. Подробности о процедуре аттестации доступны на сайте Intel
Обрабатываемые данные
- Датасеты
- Скрипты обработки датасетов
- Согласия
Хранимые данные
Не хранит данные
Связи
Local Attestation Server
Local Attestation Server (LAS) - sidecar анклава, в который вынесена логика аттестации других анклавов. Необходим для верификации входящих запросов. Более подробно о схемах взаимодействия возможно изучить в разделе CAS+ESP.
Обрабатываемые данные
Токены входящих запросов от других Анклавов
Хранимые данные
Не хранит данные
Связи
Blockchain
Blockchain Node
Хранение, получение, передача данных хранящихся в БЧ
Обрабатываемые данные
- Информация об идентификаторах компаний участников обмена даных
- Метаданные датасетов
- Бизнес термины
- Метаданные запросов на данные
- Метаданные проектов DL
- Ссылки на скрипты исполняемые в Анклавах
Хранимые данные
- Информация об идентификаторах компаний участников обмена даных
- Метаданные датасетов
- Бизнес термины
- Метаданные запросов на данные
- Метаданные проектов DL
- Ссылки на скрипты исполняемые в Анклавах
Связи
GitLab
GitLab
Хранение пользовательских исходного кода скриптов используемых в модуле CleanRoom
Обрабатываемые данные
- Пользователи GitLab
- Пользовательский исходный код с историей изменений
Хранимые данные
- Пользователи GitLab
- Пользовательский исходный код с историей изменений
Связи
Logging & Monitoring
Набор сервисов для осуществления сбора и контроля логов и метрик платформы
Kibana
Веб интерфейс для просмотра и анализа лог сообщений
Обрабатываемые данные
- Лог сообщения сервисов;
- Учетные данные пользователей Kibana
Хранимые данные
- Учетные данные пользователей Kibana
Связи
GateKeeper Kibana
Используется для:
- Актуализация токенов
- Proxy запросов к системе с функцией проверки доступа
- Обработка сценариев отсутствия доступа
- Дополнение хедеров для обработки запросов Kibana
- Выход из системы пользователя
Обрабатываемые данные
- Пользовательские токены, полученные из cookie пользователя
Хранимые данные
Не хранит данные
Связи
Filebeat
Средство сбора и форматирования логов
Обрабатываемые данные
Лог сообщения всех контейнеров кластера
Хранимые данные
Не хранит данные
Связи
ElasticSearch
СУБД для хранения и поиска лог сообщений
Обрабатываемые данные
Лог сообщения сервисов
Хранимые данные
Лог сообщения сервисов
Связи
Prometheus
Собирает метрики
Обрабатываемые данные
- Лог сообщения
- Метрики контейнеров
Хранимые данные
- Метрики контейнеров
Связи
Grafana
Веб интерфейс для просмотра и анализа технических метрик
Обрабатываемые данные
- Метрики контейнеров
Хранимые данные
Не хранит данные
Связи
Cleanroom
Набор сервисов для обработки данных пользовательскими скриптами в защищенной среде вычислений.
Script Downloader
Запускается в анклаве SGX. Используется для скачивания и валидации пользовательских скриптов исполняющихся в CleanRoom.
Обрабатываемые данные
- Пользовательские скрипты
Хранимые данные
Не хранит данные
Связи
Dataset Downloader
Запускается в анклаве SGX. Используется для получения сматченных датасетов из анклавов в Cleanroom для дальнейшей обработки.
Обрабатываемые данные
- Сматченные датасеты
Хранимые данные
Не хранит данные
Связи
Python Runner
Запускается в анклаве SGX. Используется для исполнения пользовательских скриптов в защищенной среде вычислений.
Обрабатываемые данные
- Пользовательские скрипты
- Сматченные датасеты
Хранимые данные
Не хранит данные
Связи
Result Publisher
Запускается в анклаве SGX. Используется для валидации результата исполнения пользовательского скрипта и публикации результатов в ClickHouse.
Обрабатываемые данные
- Результаты исполнения пользовательских скриптов
Хранимые данные
Не хранит данных
Связи
Tekton Controller
Оператор Kubernetes, реагирующий на появление Custom Resource Tekton и запускающий пайплайны.
Обрабатываемые данные
- Задачи на исполнение в CleanRoom
Хранимые данные
Не хранит данные
Связи
Pipeline Runner
Получает и валидирует сообщения-задачи на исполнения в CleanRoom
Обрабатываемые данные
Задачи на исполнение в CleanRoom
Хранимые данные
Не хранит данные
Связи
Pipeline Stopper
Получает и валидирует сообщения-задачи на остановку запусков CleanRoom
Обрабатываемые данные
Задачи на остановку запусков CleanRoom
Хранимые данные
Не хранит данные
Связи
CleanRoom Status Watcher
Используется для контроля статусов исполняемых в CleanRoom моделей и записи их в MongoDB
Обрабатываемые данные
- Сообщения об изменении статусов исполняемых в CleanRoom моделей
Хранимые данные
Не хранит данные
Связи
Tekton Webhook Listener
Используется как средство получения сообщений от Tekton и передачи их остальным компонентам платформы
Обрабатываемые данные
- Сообщения об изменении статусов исполняемых в CleanRoom моделей
Хранимые данные
Не хранит данные
Связи
Apache Atlas
Apache Atlas
Используется для управления метаданными и данными о подключениях к источниках данных
Обрабатываемые данные
- Метаданные датасетов;
- Бизнес термины;
- Метаданные о подключении к источнику данных;
- Учетные данные пользователей Apache Atlas;
- История изменений метаданных датасетов
Хранимые данные
- Учетные данные пользователей Apache Atlas
Связи
Apache Solr
Необходим для осуществления поиска метаданных в рамках Apache Atlas
Обрабатываемые данные
- Служебные данные Apache Atlas
- Бизнес термины
- Классификаторы
- Метаданные наборов данных
Хранимые данные
- Служебные данные Apache Atlas
- Бизнес термины
- Классификаторы
- Метаданные наборов данных
Связи
Cassandra
СУБД для хранения внутренней служебной информации для работы Apache Atlas
Обрабатываемые данные
- Служебные данные Apache Atlas
- Бизнес термины
- Классификаторы
- Метаданные наборов данных
Хранимые данные
- Служебные данные Apache Atlas
- Бизнес термины
- Классификаторы
- Метаданные наборов данных
Связи
Apache ZooKeeper
Контроль работы хранилищ данных Apache Atlas
Обрабатываемые данные
Контроль работы хранилищ данных Apache Atlas
Хранимые данные
Не хранит данных
Связи
Nginx Ingress
Nginx Ingress
Предоставляет HTTPS доступ для конечных пользователей до сервисов внутри Kubernetes кластера
Обрабатываемые данные
Роутинг пользователей и все пользовательские пакеты передаваемые от веб интерфейсов сервисов
Хранимые данные
Не хранит данных