Год назад наша команда жила в режиме вечной паники. Каждую пятницу в девять вечера кто-то из разработчиков заливал код в прод, и все молча молили серверы, чтобы всё прошло. Дежурства были адом: просыпаешься в три ночи от алерта, а потом выясняется, что фича, которую тестировали только в стейдже, на реальном трафике ломает половину воронки. Мы теряли недели на откат, спорили, кому отдать код, и в целом ненавидели пятницу.
Перелом случился, когда я наткнулся на концепцию feature flags и начал экспериментировать с ними на внутреннем сервисе. Суть проста: код попадает в продакшн в любом виде, но работает он только для тех, кому ты разрешил. Сначала для себя, потом для тестовой группы, потом на процент трафика, и в итоге для всех. Ночной релиз превращается в скучную кнопку в дашборде, которую можно нажать в двенадцать дня, когда все на связи и готовы помочь.
Мы начали с самого простого — флаг на новый чек-аут в интернет-магазине. Вместо того чтобы деплоить и молить бога, мы просто включили флаг для внутреннего QA, потом для百分之 пяти пользователей, потом для двадцати. Ошибки находились мгновенно, откат занимал секунды, а не часы. Скорость выкатки новых фич выросла в десять раз, потому что мы перестали ждать окна релиза и перестали бояться.
Но не всё было гладко. Первые две недели мы забывали убирать флаги, и в коде копился мусор. Потом я провёл митинг и мы ввели правило: любой флаг живёт не дольше двух сprints, иначе его удаляет бот. Ещё одна боль — документация. Без неё новые разработчики не понимают, что за флаг что делает. Мы завели таблицу с ответственным и сроком, и это спасло ситуацию.
Сейчас у нас в проде стабильно висит тридцать с лишним активных флагов, и никто не боится их включить или выключить. Скорость доставки выросло кратно, но главное — исчезла та хроническая тревожность, которая раньше съедала энергию всей команды. Каждый понимает: если что-то пойдёт не так, мы просто выключаем флаг и идём пить кофе. Никаких ночных созвонов и откатов через SSH.
Моё главное рекомендация: начните с одного сервиса и одного флага. Не пытайтесь перестроить всю архитектуру за неделю. Просто возьмите следующую фичу, которая должна была уехать в пятницу вечером, и сделайте её за флагом. Увидите разницу сами. А если у вас сейчас болят ночные релизы — напишите в комментариях, какие фичи вы бы охотно отправили в прод не в пятницу, а в любой удобный момент.
Перелом случился, когда я наткнулся на концепцию feature flags и начал экспериментировать с ними на внутреннем сервисе. Суть проста: код попадает в продакшн в любом виде, но работает он только для тех, кому ты разрешил. Сначала для себя, потом для тестовой группы, потом на процент трафика, и в итоге для всех. Ночной релиз превращается в скучную кнопку в дашборде, которую можно нажать в двенадцать дня, когда все на связи и готовы помочь.
Мы начали с самого простого — флаг на новый чек-аут в интернет-магазине. Вместо того чтобы деплоить и молить бога, мы просто включили флаг для внутреннего QA, потом для百分之 пяти пользователей, потом для двадцати. Ошибки находились мгновенно, откат занимал секунды, а не часы. Скорость выкатки новых фич выросла в десять раз, потому что мы перестали ждать окна релиза и перестали бояться.
Но не всё было гладко. Первые две недели мы забывали убирать флаги, и в коде копился мусор. Потом я провёл митинг и мы ввели правило: любой флаг живёт не дольше двух сprints, иначе его удаляет бот. Ещё одна боль — документация. Без неё новые разработчики не понимают, что за флаг что делает. Мы завели таблицу с ответственным и сроком, и это спасло ситуацию.
Сейчас у нас в проде стабильно висит тридцать с лишним активных флагов, и никто не боится их включить или выключить. Скорость доставки выросло кратно, но главное — исчезла та хроническая тревожность, которая раньше съедала энергию всей команды. Каждый понимает: если что-то пойдёт не так, мы просто выключаем флаг и идём пить кофе. Никаких ночных созвонов и откатов через SSH.
Моё главное рекомендация: начните с одного сервиса и одного флага. Не пытайтесь перестроить всю архитектуру за неделю. Просто возьмите следующую фичу, которая должна была уехать в пятницу вечером, и сделайте её за флагом. Увидите разницу сами. А если у вас сейчас болят ночные релизы — напишите в комментариях, какие фичи вы бы охотно отправили в прод не в пятницу, а в любой удобный момент.