Если кто не знал - рассказываем.
Кодфриз (Code / Infra Freeze) это согласованный с руководством и бизнесом запрет любых изменений на проде. Он касается выкатки релизов, любых плановых работ на инфраструктуре, изменений конфигурации приложений, включений/выключений feature flags.
Для чего придуман и почему вводится?
Если кратко - основными источниками ошибок на проде (здесь можно найти полный список) являются человеческий фактор и ошибки связанные с новой функциональностью и ее доставкой. В случае праздников, когда существенная часть команды может быть недоступна, починка ошибок сложностью выше тривиальной может превратиться в продолжительный и очень неприятный квест с печальными для бизнеса и IT руководства результатами.
Почему так происходит?
❄️ Дежурный персонал редко обладает всеми необходимыми знаниями для исправления проблемы
❄️ Штатная процедура эскалации не работает - часть людей отдыхает и offline, часть в дороге и также недоступна, еще часть ограниченно доступна (без ноута, телефон разряжается)
❄️ Еще часть навеселе и с огромным энтузиазмом готова все немедленно насмерть починить
Когда стоит задача уменьшения даунтайма, то перед большими выходными, праздниками и ситуациями когда часть людей может быть недоступна (например offsite компании) вводится ограничение на изменения в проде.
В идеальном варианте в вакууме фриз двухфазный.
В фазе cool down изменения прекращаются, но инженеры продолжают работать в штатном режиме от нескольких дней до (в случае очень серьезных событий) до нескольких недель. За это время вылезает большая часть критических ошибок заехавших на прод ранее и чем больше период cool down тем меньше вероятность схватить инцидент когда все разъехались.
В фазе фриза компания работает с усеченным составом, инженерный персонал и руководство уходят в offline, любые изменения запрещены. В этой фазе становятся маловероятны отказы из-за человеческого фактора, однако сбои железа никто не отменял. Такие сбои обрабатываются дежурными инженерами.
Другой вид фриза это подготовка прода к высокому сезону и подъему нагрузки. В этом случае в первой фазе также происходит стабилизация кода и инфраструктуры, но в момент самого фриза все инженеры внимательно смотрят в показатели мониторинга для того, что бы предотвратить потенциальные инциденты в момент наивысшего риска. В особо важных случаях может быть создано общее информационное поле вроде zoom митинга как это делается в случае инцидента. Такой способ позволяет резко сократить время реакции на потенциальные отказы.
А что делать если такой сбой зацепил критический продовый компонент, резервирование не сработало, переключения не произошло и вот уже весь мир в огне? Безусловно всякое бывает и на этот несчастный случай должна быть отдельная договоренность с лидами компонентов и техлидами на время праздников о дежурстве или хотя бы доступности для решения инцидентов. В этом случае дежурные посмотрев на календарь будут знать кому можно позвонить за консультацией в случае непредвиденных обстоятельств.
Подводим итоги.
Минусы фриза: останавливается доставка функционала на прод, во время первой фазы (cool down) инженеры тратят время впустую.
Плюсы фриза: снижаются риски отказов во время праздников и ключевых событий. Инженеры получают полноценное время на отдых во второй фазе фриза, а в первой могут быть заняты тем, на что обычно никогда не хватает времени. обычно это документация и беклог.
Когда объявляется фриз: перед длинными выходными (майские и новогодние праздники), перед важными маркетинговыми мероприятиями (конференции, презентации партнерам, и т.п.), перед заранее известными периодами высокой нагрузки (предновогодние распродажи, черная пятница, 8 марта, специфические даты для бизнеса и т.п.).
Хороший повод попробовать код и инфра фриз наступает как раз сейчас, перед новым годом, когда в значительной части компаний после предновогодней гонки, отчетных встреч и подведения итогов сотрудники включая руководство уходят в отпуска, набираясь сил и энергии для новых свершений.
Что еще почитать: Что такое SRE?
#SRE #полезныематериалы @downtime_bar
Post #141
564

- ❤ 2
- 🔥 2
- 👍 1
- 💯 1