Upload
ontico
View
143
Download
4
Embed Size (px)
Citation preview
A/Б-Т Е СТ И Р О В А Н И Е: ОТ С Е Г М Е Н Т И Р О В А Н И Я ДО П Р О Ф И ТА
Кирилл Котов,директор департамента разработки ПО [email protected]
1000 000 пользователей в сутки
сотни тысяч смс и пуш-уведомлений
более 9 мобильных приложений
от 4 000 000 писем каждый день
web-версиимобильные приложения
2011—2012 годы
Плюсы:
Быстро
Без программистов
Без математики
1
2
3
Минусы:
Заточены под клиентские тесты
Нет расчета метрик постфактум
Цена
1
2
3
Set-Cookie:_ws=581c6b0003d0a89c0a0a019a454a8a47ac10028a03000000008b30671fc015c76d85639359e17e9e4fad9b0d57; expires=Tue, 19-Jan-2038 03:14:07 GMT; Max-Age=669226239; path=/; domain=superjob.ru
Set-Cookie:_ws=581c6b0003d0a89c0a0a019a454a8a47ac10028a03000000008b30671fc015c76d85639359e17e9e4fad9b0d57; expires=Tue, 19-Jan-2038 03:14:07 GMT; Max-Age=669226239; path=/; domain=superjob.ru
Равномерное распределение идентификатора пользователя
Пользователь на всем протяжении теста находится в одном варианте
Варианты разных тестов распределяются случайно
Детерминированное сегментирование
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
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
Проблемы:
TokuDB не подходит для аналитических задач
Проблемы:
TokuDB не подходит для аналитических задач
Конфиг в коде
Проблемы:
TokuDB не подходит для аналитических задач
Конфиг в коде
Одна платформа
«Сервисная» архитектура
Сегментирование
Сбор данных
ETL-процессы
Хранилище
Сегментирование
Производительность
Изменения в реальном времени
Гибкость настроек
Сегментирование
ElixirРаботает на Erlang VM
«Легковесные» процессы
Горячая замена кода
mix, edeliver для сборки и деплоя
Сегментирование
Elixir
Сегментирование
Elixir
HTTP JSON APIЗапрещаем кэшировать ответы
Сегментирование
Elixir
HTTP JSON API
Гибкое сегментированиеФильтры
Сегментирование
Elixir
HTTP JSON API
Гибкое сегментированиеФильтры
Произвольный параметр
Сегментирование
Overlapping Experiment Infrastructure:More, Better, Faster Experimentation [1]
L1 L3
L4
L5L2
D1 D2
Elixir
HTTP JSON API
Гибкое сегментированиеФильтры
Произвольный параметр
Пересечения экспериментов
Сегментирование
Elixir
HTTP JSON API
Гибкое сегментирование
Административный интерфейс
СегментированиеСегментирование
Elixir
HTTP JSON API
Гибкое сегментирование
Административный интерфейсВспомогательные инструменты
Сбор данных
Collector — сервис на Elixir
JS/PHP/iOS/Android/... трекер Snowplow [2]
Файловое хранилище
Очистка, загрузка, enrichment через ETL-процессы
Хранение и аналитика
Аналитическая БД HP Vertica
Плоские таблицы без нормализации
Горизонт хранения до года
Работает из коробки и быстро
Отказоустойчивость
Community Edition — 1Tb@3 nodes
Альтернативы: Greenplum, ClickHouse и другие
Резюме
Пишите тесты
Проводите контрольный А/А тест
Храните сырые данные
Не откладывайте административный интерфейс
Назначьте ответственного
1
2
3
4
5
Спасибо за внимание!
Кирилл Котов, директор департамента разработки ПО [email protected]
Работа у нас:https://www.superjob.ru/clients/rabota_u_nas.html