вторник, 22 октября 2013 г.

Каждая новая версия должна приносить больше прибыли, иначе зачем мы ее внедряли?

Заголовок статьи может показаться самоочевидным. Но вот однажды я встретил прямо буквальное применение это принципа.

Я консультировал по CI (Continuous Integration) вопросам одну компанию, что занималась показом рекламных баннеров в интернет. Там довольно много интересных задач. Пока браузер не спеша загружает страницу надо понять, что это за пользователь, где он обычно бывает, какие товары и услуги недавно искал, оценить сколько стоит, выставить на аукцион, продать, показать баннер. Или наоборот покупать пользователей на аукционе. В общем я не вникал во все это очень подробно - задача стояла другая.

А задача у меня была в оптимизации развертывания свежего кода в продакшен. Путь от написания кода до использования его в продакшен был у них очень быстрым. Код мог быть написанным, протестированным и начать работать в самые короткие сроки. Чтобы не облажаться они научились отводить небольшой поток пользователей на новую версию приложений, тогда как основная масса пользователей работала по-старому (да, все мы знаем про rolling-updates). Это позволяло тестировать приложение на реальных случаях и на настоящей нагрузке, откатывать изменения, если что-то пошло не так, или наоборот распространять это по всему кластеру.

Что интересно, это что когда они тестировали свои алгоритмы, то смотрели, сколько дохода приносит новый код, то есть проверка увеличения доходности (или снижения издержек) тоже была одним из тестов! Больше я нигде этого не видел. Хотя работал во многих проектах, где это можно было бы успешно внедрить. Да каждый крупный онлайн магазин мог бы таким образом проверять насколько хороший код они подготовили. Но не делают. То ли не видят смысла то ли считают, что забот по организации подобной инфраструктуры слишком много и они не будут оправданны.

Комментариев нет:

Отправить комментарий