Доверяй,
но проверяй
Или как мы в KION готовим
продуктовые события
Slide 2
Slide 2 text
О себе
Алексей Жиряков
Руководитель
направления
бекенд команды
витрины в KION
Знаю что такое
контроль хвостовой
рекурсии
Больше 10 лет
в медиа ИТ
Люблю Python
и комедии
В качестве хобби написал
распределенную поисковую систему
Slide 3
Slide 3 text
О чем поговорим
Полный путь событий Приемник Уровни Data Quality
Проверка при релизе
Мониторинг ошибок
Slide 4
Slide 4 text
6000+
RPS
400M+
событий в сутки
Что мы имеем
6+
продуктовых
вертикалей
Slide 5
Slide 5 text
Что такое продуктовое
событие?
User
Slide 6
Slide 6 text
Как
выглядит
событие
Slide 7
Slide 7 text
Какие бывают события
и зачем они нужны?
Продуктовые
Персональная витрина
А/B эксперименты
Технические
Скорость
Память
Улучшаем продукт
Slide 8
Slide 8 text
Почему Data Quality
важно?
Slide 9
Slide 9 text
Свой приемник – зачем?
Slide 10
Slide 10 text
Свой приемник – зачем?
Нет лимитов
Slide 11
Slide 11 text
Свой приемник – зачем?
Нет лимитов
Реальное
время
Slide 12
Slide 12 text
Свой приемник – зачем?
Нет лимитов
Реальное
время Вариативность
Slide 13
Slide 13 text
Архитектура своего приемника
Client request
Get/Post
Http server
приемник
Consumer 1 … Consumer N
Consumers
Kafka
Clickhouse
GUI
Redash/Superset/SQL
Product
manger 1
Product
manger N
User
Topic
parsed events
Topic
raw events
Slide 14
Slide 14 text
Сравнение реализации
на Python и Go
Python 3.11 Go 1.21.0
VS
Slide 15
Slide 15 text
Сравнение приемника
на Python и Go
Golang 1.20
confluent-kafka-go v1.8.2 ask=0
Locust 2.15.1
Python 3.11
FastAPI 0.103.2
aiokafka = 0.8.1 ask=0
Slide 16
Slide 16 text
Плюсы решений
Скорость
разработки
Slide 17
Slide 17 text
Плюсы решений
Скорость
разработки
Легкость
Slide 18
Slide 18 text
Плюсы решений
Скорость
разработки
Легкость
Swagger FastAPI
Slide 19
Slide 19 text
Плюсы решений
Скорость
разработки
Легкость
Swagger FastAPI
Скилы
Slide 20
Slide 20 text
Плюсы решений
Скорость
разработки
Легкость
Swagger FastAPI
Скилы
Ресурсы
Slide 21
Slide 21 text
Плюсы решений
Скорость
разработки
Легкость
Swagger FastAPI
Скилы
Ресурсы
Скорость (2-2,5
раза)
Slide 22
Slide 22 text
Уровни Data Quality
Как мы обеспечиваем Data Quality
In schema
Физический
уровень
Event валидация
Out schema
Контроль
поступления данных
Логический уровень
Apache airflow
Контроль отклонений
Slide 23
Slide 23 text
Уровень In schema
Как мы обеспечиваем Data Quality
Slide 24
Slide 24 text
Уровень Event валидация
Как мы обеспечиваем Data Quality
Slide 25
Slide 25 text
Пример валидатора In схемы
Как мы обеспечиваем Data Quality
Slide 26
Slide 26 text
Как мы описываем Event валидацию
Как мы обеспечиваем Data Quality
Описываем
валидацию полей
Составляем валидатор
событий + контекстно
зависимая валидация
Slide 27
Slide 27 text
Мониторинг-Алертинг
Дедуплицирование Отстрел раз в сутки
Consumer
Event валидатор
In memory
дедупликатор
Redis
TTL время
до 0 часов
Telegram