Долгое время у нас был культ ночного релиза. Считалось, что выкатываться надо в три часа ночи, когда пользователей мало, чтобы «если что» никто не заметил. На деле это была ловушка, и обошлась она нам дорого — не деньгами, а выгоранием и растянутыми на часы инцидентами.
Проблема ночных релизов не в самом времени, а в том, что они прикрывают плохой процесс. Если ты боишься катить днём при живых пользователях, значит, ты не доверяешь своему деплою. А раз не доверяешь — что-то в нём фундаментально не так. Ночь тут не решение, а анестезия. Сонный инженер в три ночи, поднятый ради отката, ошибается вдвое чаще и чинит вдвое дольше, потому что рядом нет ни коллег, ни ясной головы.
Мы решили лечить причину, а не симптом, и потратили квартал на то, чтобы сделать релизы нестрашными. Первое — автоматизировали выкатку целиком, от кнопки до прогретого прода, без единого ручного шага, который можно забыть или сделать не в том порядке. Ручной релиз всегда содержит человека, а человек в три ночи ненадёжен.
Второе — перешли на постепенную выкатку. Никаких «залили всё сразу и молимся». Новая версия сначала уезжает на маленький процент трафика, мы смотрим на метрики ошибок и latency, и только если всё чисто — раскатываем дальше. Если что-то пошло не так, автоматика откатывает до того, как это заметит большинство. Взрыв радиуса стал крошечным.
Третье, и психологически самое важное — сделали откат тривиальным и быстрым. Одна команда, минута времени, предсказуемый результат. Когда откат надёжен и мгновенен, релиз перестаёт быть прыжком в пропасть. Ты знаешь, что в любой момент можешь вернуться назад, и это меняет всё.
И тогда мы просто перестали катить по ночам. Стали релизиться днём, среди недели, при полном штате и живых пользователях. Да, теперь проблему видно сразу — но именно этого мы и хотим. Ошибка, пойманная за минуту при всех, в сто раз дешевле ошибки, тлеющей до утра.
Хороший релиз-инжиниринг измеряется не героизмом, а скукой. Если выкатка стала настолько рутинной, что её не жалко делать в обеденный перерыв, — вы всё сделали правильно. Ночные релизы — это признак не дисциплины, а страха.
– Sergey Shinder
Top comments (0)