Кодфриз (Code / Infra Freeze)
Узнаем что такое кодфриз, когда и для чего его объявлять, а так же выделим его плюсы и минусы
Что это такое?

Кодфриз (Code / Infra Freeze) это согласованный с руководством и бизнесом запрет любых изменений на проде. Он касается выкатки релизов, любых плановых работ на инфраструктуре, изменений конфигурации приложений, включений/выключений feature flags

Если кратко - основными источниками ошибок на проде являются человеческий фактор и ошибки связанные с новой функциональностью и ее доставкой. В случае праздников, когда существенная часть команды может быть недоступна, починка ошибок сложностью выше тривиальной может превратиться в продолжительный и очень неприятный квест с печальными для бизнеса и IT руководства результатами


Почему так происходит?

  • Дежурный персонал редко обладает всеми необходимыми знаниями для исправления проблемы
  • Штатная процедура эскалации не работает - часть людей отдыхает и offline, часть в дороге и также недоступна, еще часть ограниченно доступна (без ноута, телефон разряжается)
  • Еще часть навеселе и с огромным энтузиазмом готова все немедленно насмерть починить
Когда стоит задача уменьшения даунтайма, то перед большими выходными, праздниками и ситуациями когда часть людей может быть недоступна (например offsite компании) вводится ограничение на изменения в проде

В идеальном варианте в вакууме фриз двухфазный

В фазе cool down изменения прекращаются, но инженеры продолжают работать в штатном режиме от нескольких дней до (в случае очень серьезных событий) до нескольких недель. За это время вылезает большая часть критических ошибок заехавших на прод ранее и чем больше период cool down тем меньше вероятность схватить инцидент когда все разъехались

В фазе фриза компания работает с усеченным составом, инженерный персонал и руководство уходят в offline, любые изменения запрещены. В этой фазе становятся маловероятны отказы из-за человеческого фактора, однако сбои железа никто не отменял. Такие сбои обрабатываются дежурными инженерами

Другой вид фриза это подготовка прода к высокому сезону и подъему нагрузки. В этом случае в первой фазе также происходит стабилизация кода и инфраструктуры, но в момент самого фриза все инженеры внимательно смотрят в показатели мониторинга для того, что бы предотвратить потенциальные инциденты в момент наивысшего риска. В особо важных случаях может быть создано общее информационное поле вроде zoom митинга как это делается в случае инцидента. Такой способ позволяет резко сократить время реакции на потенциальные отказы

А что делать если такой сбой зацепил критический продовый компонент, резервирование не сработало, переключения не произошло и вот уже весь мир в огне? Безусловно всякое бывает и на этот несчастный случай должна быть отдельная договоренность с лидами компонентов и техлидами на время праздников о дежурстве или хотя бы доступности для решения инцидентов. В этом случае дежурные посмотрев на календарь будут знать кому можно позвонить за консультацией в случае непредвиденных обстоятельств

Плюсы



  • Снижаются риски отказов во время праздников и ключевых событий
  • Инженеры получают полноценное время на отдых во второй фазе фриза, а в первой могут быть заняты тем, на что обычно никогда не хватает времени. обычно это документация и беклог

Минусы



  • Останавливается доставка функционала на прод, во время первой фазы (cool down) инженеры тратят время впустую
Когда объявляется фриз

Перед длинными выходными (майские и новогодние праздники)

Перед важными маркетинговыми мероприятиями (конференции, презентации партнерам, и т.п.)

Перед заранее известными периодами высокой нагрузки (предновогодние распродажи, черная пятница, 8 марта, специфические даты для бизнеса и т.п.).
Что важно

Хороший повод попробовать код и инфра фриз наступает как раз перед новым годом, когда в значительной части компаний после предновогодней гонки, отчетных встреч и подведения итогов сотрудники включая руководство уходят в отпуска, набираясь сил и энергии для новых свершений
"Чем опытнее программист, тем лучше он осознаёт всю скудность своих знаний и навыков"
Крис Хьюз
предприниматель, предпринял с друзьями основать Facebook, вроде получилось
Что это, если не повод изучить что-то новое:
Финальные сценарии развития компаний после упадка
Отобрали яркие примеры трех основных путей развития международных компаний после их упадка
SLO, SLI и SLA
Разница между ними, примеры использования
Какие навыки нужны для SRE?
Разбор ключевых навыков и технологий, которые помогут в карьере SRE
Деплои и их виды
Выделим виды деплоев, поговорим про ковбоев и перечислим их особенности