26
A/Б - ТЕСТИРОВАНИЕ: ОТ СЕГМЕНТИРОВАНИЯ ДО ПРОФИТА Кирилл Котов, директор департамента разработки ПО Superjob.ru [email protected]

A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

  • Upload
    ontico

  • View
    143

  • Download
    4

Embed Size (px)

Citation preview

Page 1: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

A/Б-Т Е СТ И Р О В А Н И Е: ОТ С Е Г М Е Н Т И Р О В А Н И Я ДО П Р О Ф И ТА

Кирилл Котов,директор департамента разработки ПО [email protected]

Page 2: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

1000 000 пользователей в сутки

сотни тысяч смс и пуш-уведомлений

более 9 мобильных приложений

от 4 000 000 писем каждый день

web-версиимобильные приложения

Page 3: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

2011—2012 годы

Page 4: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Плюсы:

Быстро

Без программистов

Без математики

1

2

3

Page 5: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Минусы:

Заточены под клиентские тесты

Нет расчета метрик постфактум

Цена

1

2

3

Page 6: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Set-Cookie:_ws=581c6b0003d0a89c0a0a019a454a8a47ac10028a03000000008b30671fc015c76d85639359e17e9e4fad9b0d57; expires=Tue, 19-Jan-2038 03:14:07 GMT; Max-Age=669226239; path=/; domain=superjob.ru

Page 7: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Set-Cookie:_ws=581c6b0003d0a89c0a0a019a454a8a47ac10028a03000000008b30671fc015c76d85639359e17e9e4fad9b0d57; expires=Tue, 19-Jan-2038 03:14:07 GMT; Max-Age=669226239; path=/; domain=superjob.ru

Равномерное распределение идентификатора пользователя

Пользователь на всем протяжении теста находится в одном варианте

Варианты разных тестов распределяются случайно

Детерминированное сегментирование

Page 8: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Set-Cookie:_ws=581c6b0003d0a89c0a0a019a454a8a47ac10028a03000000008b30671fc015c76d85639359e17e9e4fad9b0d57; expires=Tue, 19-Jan-2038 03:14:07 GMT; Max-Age=669226239; path=/; domain=superjob.ru

https://github.com/etsy/featureEtsy's Feature flagging API used for operational rampups and A/B testing

Page 9: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Set-Cookie:_ws=581c6b0003d0a89c0a0a019a454a8a47ac10028a03000000008b30671fc015c76d85639359e17e9e4fad9b0d57; expires=Tue, 19-Jan-2038 03:14:07 GMT; Max-Age=669226239; path=/; domain=superjob.ru

https://github.com/etsy/featureEtsy's Feature flagging API used for operational rampups and A/B testing

Page 10: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Проблемы:

TokuDB не подходит для аналитических задач

Page 11: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Проблемы:

TokuDB не подходит для аналитических задач

Конфиг в коде

Page 12: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Проблемы:

TokuDB не подходит для аналитических задач

Конфиг в коде

Одна платформа

Page 13: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

«Сервисная» архитектура

Сегментирование

Сбор данных

ETL-процессы

Хранилище

Page 14: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сегментирование

Производительность

Изменения в реальном времени

Гибкость настроек

Page 15: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сегментирование

ElixirРаботает на Erlang VM

«Легковесные» процессы

Горячая замена кода

mix, edeliver для сборки и деплоя

Page 16: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сегментирование

Elixir

Page 17: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сегментирование

Elixir

HTTP JSON APIЗапрещаем кэшировать ответы

Page 18: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сегментирование

Elixir

HTTP JSON API

Гибкое сегментированиеФильтры

Page 19: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сегментирование

Elixir

HTTP JSON API

Гибкое сегментированиеФильтры

Произвольный параметр

Page 20: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сегментирование

Overlapping Experiment Infrastructure:More, Better, Faster Experimentation [1]

L1 L3

L4

L5L2

D1 D2

Elixir

HTTP JSON API

Гибкое сегментированиеФильтры

Произвольный параметр

Пересечения экспериментов

Page 21: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сегментирование

Elixir

HTTP JSON API

Гибкое сегментирование

Административный интерфейс

Page 22: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

СегментированиеСегментирование

Elixir

HTTP JSON API

Гибкое сегментирование

Административный интерфейсВспомогательные инструменты

Page 23: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Сбор данных

Collector — сервис на Elixir

JS/PHP/iOS/Android/... трекер Snowplow [2]

Файловое хранилище

Очистка, загрузка, enrichment через ETL-процессы

Page 24: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Хранение и аналитика

Аналитическая БД HP Vertica

Плоские таблицы без нормализации

Горизонт хранения до года

Работает из коробки и быстро

Отказоустойчивость

Community Edition — 1Tb@3 nodes

Альтернативы: Greenplum, ClickHouse и другие

Page 25: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Резюме

Пишите тесты

Проводите контрольный А/А тест

Храните сырые данные

Не откладывайте административный интерфейс

Назначьте ответственного

1

2

3

4

5

Page 26: A/Б-тестирование: от сегментирования до профита / Кирилл Котов (Superjob)

Спасибо за внимание!

Кирилл Котов, директор департамента разработки ПО [email protected]

Работа у нас:https://www.superjob.ru/clients/rabota_u_nas.html