Темы



Без А/B результат XЗ, или Как построить высоконагруженную платформу А/B-тестов

Один из важных вопросов как в нашей жизни, так и в бизнесе, и в IT — вопрос эффективности. Эффективно ли мы планируем наше время, те ли задачи решает бизнес, тот ли код мы оптимизируем? Чтобы ответить на эти вопросы, результат должен обладать главным критерием — измеримость.Измеримость результата новых фич для бизнеса и IT обеспечивает платформа А/B-тестов. О том, как её можно построить, выдерживать большой RPS и при этом не облажаться уронить прод, я расскажу в этой статье. 

В конце статьи вы узнаете, как мы задетектили проблемы инфраструктуры, оптимизация которых значительно повлияла на скорость всего Ozon. 

ce91b3c0444c73dd1278857cd7b934e8.jpg

Без А/B, как измерить результат ХЗ 

Приведём один из самых интересных и отчаянных примеров А/B-тестов, который может ответить на вопрос, интересующий как IT, так и бизнес:   

— На фига мы упарываемся с оптимизацией времени ответа?  

или 

— Как скорость ответа влияет на деньги?   

Чтобы ответить, мы можем сделать ухудшающий тест — деградацию скорости сайта (слабоумие и отвага) — и посмотреть, реально ли просядут денежные метрики.  

Становится интереснее. 

Давайте представим, что мы делаем фичу, в которой, к примеру, на 100 мс замедляем весь сайт, и хотим измерить, как это повлияет на наш GMV (оборот). Самый простой вариант: мы её просто выкатываем в прод и смотрим, как меняются метрики. 

Ожидание 

Как только мы включим нашу фичу, просядут бизнес-метрики:  

3d49c9352dc134990087574bb3b90046.png

Реальность 

4205483ac35689dda0de3486c14981a1.png

Метрики пошли вверх!  

1b85c019733d8da2c20f6800bb66bd47.jpg

Возможно, просто наступил высокий сезон, и выручка за счёт распродаж стала больше. Непонятно, повлияло ли на это наше замедление. 

Что же делать? Как измерить? На помощь приходит команда А/B-тестов с девизом:  

f62edcd476ceefa4edd9d18ca7693084.png

Можно запустить А/B-тест — эксперимент, в котором нужно разделить (сплитовать) пользователей на две группы. Первой группе включать замедление (тестовая группа / слабоумие и отвага), второй группе — не замедлять (контрольная группа).  

9f1c40114e27014b6d70dcf35720b355.png

Не забываем также до запуска определить необходимые бизнес-метрики и рассчитать продолжительность эксперимента. По завершении эксперимента мы можем сравнить результаты в тестовой и контрольной группах и определить, были ли статистически значимые изменения или нет. Profit!

© Habrahabr.ru