Slide 1

Slide 1 text

Доверяй, но проверяй Или как мы в 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

Slide 28

Slide 28 text

Проверка при релизе

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Вопросы? @AlexeyZhi