Без А/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