Обновить
3

Пользователь

2
Рейтинг
Отправить сообщение

Добрый день!

Исторически IDM вырос из монолита на Python/Django с PostgreSQL. Этот код продолжает работать, а отдельные части мы постепенно выносим в сервисы на Go и Kotlin: согласования, работу с политиками, синхронизацию доступов, аудит.Основной стек сейчас такой:

  • PostgreSQL — основное транзакционное хранилище, Redis — кеширование.

  • Celery — фоновые задачи в Python-части. В новых сервисах для длительных процессов используем Temporal: согласование может ждать решения человека, обрабатывать таймеры и повторять операции при технических сбоях.

  • gRPC/Protobuf — взаимодействие новых сервисов, Kafka и Logbroker — асинхронные события. Для интеграции подключаемых систем и пользовательской автоматизации есть HTTP API.

  • Kotlin + Spring Boot используются, например, в сервисе управления модулями политик.- Развёртывание контейнерное, во внутренней платформе Yandex Deploy.

Отдельная инженерная часть — исполнение пользовательских правил согласования на Python. Для них есть изолированная среда с ограничениями ресурсов и доступом к данным через ограниченный API. В историческом механизме изоляция реализована через Porto-контейнеры.При этом авторизация конкретных запросов остаётся в подключённых системах. IDM управляет жизненным циклом доступов и сверяет состояние, поэтому обращаться к нему при каждом действии пользователя не требуется.

Информация

В рейтинге
1 620-й
Зарегистрирован
Активность