Техническая архитектура ПО

Общая информация

Программное обеспечение (далее — ПО) реализовано в рамках модульной архитектуры платформы для управления и аудита размещения рекламы. Каждый модуль платформы выполняет строго определённые функции и взаимодействует с другими компонентами через унифицированные API и очереди сообщений.

Основные компоненты архитектуры

1. Collect-сервис (Perl, FastCGI) Принимает входящие запросы с рекламных площадок, парсит события и помещает их в очередь (RabbitMQ) для дальнейшей обработки. Обеспечивает первичную валидацию, нормализацию данных и запись логов в оперативное хранилище.

2. Data Processing Layer (Perl / Go) Отвечает за обработку событий, агрегацию статистики и формирование витрин данных. Основные функции:

  • дедупликация событий;
  • агрегация по браузеру, ОС, устройству, провайдеру;
  • расчёт статистических (показы, клики, досмотры и тд, а также фрод-метрик (IVT);
  • экспорт данных в ClickHouse, mySQL и S3-архивы.

3. Хранилище данных (ClickHouse + mySQL+S3) mySQL используется для хранения агрегированных данных и формирования отчётов в реальном времени. ClickHouse - для долговременного хранения логов, хранения предагрегированных данных
S3 - для хранения резервных копий.

4. API-шлюз и сервис авторизации (Keycloak) Обеспечивает безопасный доступ к данным и аутентификацию пользователей по OAuth 2.0. Все запросы к API проходят через Nginx-reverse proxy и проверку токена доступа.

5. Пользовательский интерфейс (PHP Zend) Реализует отображение данных в виде таблиц, графиков и фильтров. UI взаимодействует с backend-API через HTTPS, поддерживает фильтрацию по кампаниям, датам и техническим параметрам.

6. CI/CD и инфраструктура (GitLab, Docker) Сборка, тестирование и деплой выполняются автоматически через GitLab CI/CD. Контейнеризация сервисов — Docker Compose.

Технологический стек

Компонент  Технология / Инструмент 
КомпонентТехнология / Инструмент
Назначение
FrontendPHP ZendВеб-интерфейс и визуализация
BackendPerl, GoREST API и обработка данных
Data ingestionPerl (FastCGI), RabbitMQПриём и маршрутизация событий
DatabaseClickHouse, mySQLХранилище статистики и конфигураций
Object storageS3Резервное копирование
AuthenticationKeycloakАвторизация и разграничение доступа
InfrastructureDocker, GitLab CIКонтейнеризация и деплой
MonitoringZabbix, GrafanaМониторинг и оповещение

Безопасность и шифрование

  • Все соединения между компонентами защищены с помощью TLS 1.2+.
  • Доступ к базам данных ограничен IP-фильтрацией и многофакторной аутентификацией.
  • Данные в хранилищах зашифрованы

Масштабирование и отказоустойчивость

  • Collect-сервисы и обработчики событий горизонтально масштабируются через балансировщик (HAProxy).
  • ClickHouse — в режиме репликации и шардинга.
  • Ежедневное резервное копирование всех данных и конфигураций.
  • В случае сбоя предусмотрено автоматическое восстановление из бэкапов (RPO ≤ 1 час, RTO ≤ 3 часа).

Cookie-файлы
Настройка cookie-файлов
Детальная информация о целях обработки данных и поставщиках, которые мы используем на наших сайтах
Аналитические Cookie-файлы Отключить все
Технические Cookie-файлы
Другие Cookie-файлы
Мы используем файлы Cookie для улучшения работы, персонализации и повышения удобства пользования нашим сайтом. Продолжая посещать сайт, вы соглашаетесь на использование нами файлов Cookie. Подробнее о нашей политике в отношении Cookie.
Принять все Отказаться от всех Настроить
Cookies