Масштабирование микросервисной архитектуры внутренней IT-платформы для управления знаниями и эффективностью команд
Заказчик – крупный digital-холдинг с многотысячным штатом сотрудников. Корпоративная IT-платформа компании выполняет роль единой экосистемы для управления знаниями, проектами, эффективностью команд и HR-аналитикой. Система объединяет таск-трекинг, базу знаний, геймификацию и сквозной поиск информации, закрывая потребности как рядовых специалистов, так и топ-менеджмента.
Наша команда подключилась к проекту на этапе взрывного роста продукта. Перед нами стояли задачи по масштабированию микросервисной архитектуры, рефакторингу backend-инфраструктуры, бесшовной миграции данных и переработке системы разграничения прав доступа. Продукт развивался распределенной IT-командой, где каждый сервис существовал как самостоятельный подпродукт со своими хранилищами и бизнес-логикой.

Разработка велась в микросервисной архитектуре, развёрнутой в Kubernetes. Каждый сервис работал с собственной базой данных PostgreSQL, использовал Redis для кеширования сессий и временных данных, а Kafka обеспечивала асинхронное взаимодействие между компонентами. Файлы хранились в S3-совместимом MinIO, аутентификация и авторизация строились на Keycloak как централизованном IAM-решении. Логирование настроено через ELK-стек, метрики собирались в Prometheus с визуализацией в Kibana. ClickHouse использовалась для хранения аналитических данных по пользовательской активности.
Система разрешений. Главный вызов – разработка трёхуровневой модели: глобальные роли через Keycloak, роли на уровне отдельных микросервисов и права доступа к конкретным сущностям внутри сервисов. Требовалось сохранить производительность при проверке прав на каждый запрос, учитывая, что платформа обслуживает несколько тысяч пользователей одновременно.
Решение – комбинация кеширования ролей в Redis с TTL 15 минут и предварительной валидации на уровне API Gateway. Для уровня сущностей реализовали дополнительную таблицу permissions в PostgreSQL с индексами по user_id и resource_id, что позволило держать время проверки прав в пределах 5–10 мс.
Миграция данных. Использовали event-driven подход через Kafka: старый сервис публиковал события об изменениях, новый подписывался и трансформировал данные под свою схему. Это позволило проводить миграцию постепенно, без downtime.
Унификация кодовой базы. Внедрение линтеров и тайпчекеров стандартизировали через CI/CD пайплайны в GitLab – проверка запускалась на каждый merge request. Coverage поднимали поэтапно: интегрировали pytest-cov, настроили отчёты в Kibana, затем ввели обязательный порог 80% для новых коммитов.
Конструктор сайтов. Разработан как отдельный микросервис на Python с REST API, хранением темплейтов в MinIO и метаданных в PostgreSQL.


Миграция данных без downtime — реализована через Kafka с event-driven архитектурой: старый сервис публикует события, новый трансформирует и сохраняет данные без остановки работы платформы.
Гранулярная система разрешений – трёхуровневая модель: глобальные роли через Keycloak, сервисные роли с кешированием в Redis (TTL 15 мин), права на сущности через отдельную таблицу permissions в PostgreSQL с индексацией.
Покрытие тестами 80% – внедрена система coverage с автоматическими проверками в CI/CD через pytest-cov и отчётами в Kibana, введён минимальный порог для новых коммитов.
Унификация кодовой базы – линтеры и тайпчекеры развёрнуты во всех микросервисах с автоматическими проверками на каждый merge request в GitLab.
Конструктор сайтов – новый микросервис на Python с REST API, хранением темплейтов в MinIO и метаданных в PostgreSQL.
Производительность проверки прав – комбинация кеширования в Redis и предварительной валидации на API Gateway снизила время проверки до 5–10 мс на запрос.
Мониторинг – все сервисы интегрированы с ELK для логирования, метрики собираются в Prometheus с дашбордами в Kibana, аналитика хранится в ClickHouse.


Платформа получила единую систему разрешений, которая работает на уровне ролей и конкретных объектов без потери производительности. Конструктор сайтов расширил возможности по управлению контентом: команды могут создавать внутренние лендинги без привлечения разработчиков. Миграция данных прошла без downtime с сохранением целостности информации по всем сервисам.
Бизнес получил масштабируемую микросервисную архитектуру с 80% покрытием тестами, что снизило количество регрессий при релизах. Унификация кода через линтеры и тайпчекеры ускорила онбординг новых разработчиков и упростила поддержку. Настроенный мониторинг через ELK, Prometheus и Kibana дал прозрачность работы всех компонентов – критично для платформы с тысячами активных пользователей.

Веб-приложение для управления и мониторинга Kubernetes-кластеров. Сервис позволяет отслеживать состояние кластеров, настраивать приложения и создавать правила для упрощённой навигации узлов.

Платформа для подготовки к собеседованиям, где пользователи изучают материалы, записывают видео-ответы и получают рекомендации от экспертов.