Чи є у вас на проєкті код фрізи?

Для деяких програмістів найближчі кілька тижнів можуть бути спокійнішими, ніж зазвичай через так звані code freezes — тимчасові «заморожування коду».

Їх практикує багато великих компаній, зокрема Meta, Amazon, Microsoft, Uber, Apple, Google, а серед переваг досвідчені інженери називають зменшену ймовірність виникнення збоїв та відключення людей. Часто код фрізи застосовують саме в період високої кількості відпусток або вихідних днів.

Чи практикують їх на вашому проєкті? Як розгортати код фрізи правильно? Розповідайте!

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Останній деплой на прод був в середині листопада, наступний в кінці січня. Зараз просто фічі і баги пушим на CI а після нового року на UAT піде. E-Commerce

Перед кожним релізом. Хвилин 40

Так є. На свята і на специфічні для отраслі івенти коли навантаження і ревенʼю зашкалює то заморожено викатування на продакшн будь-яких релізів. Звичайно дозволено викачувати виправлення багів, але для цього треба отримувати апруви більш ніж зазвичай. Ось зараз перед Різдвом з 20 грудня в по 7 січня буде фріз.

Там де найдовше працював — декілька днів перед форком релізної гілки, потім вивільняє. А ось в релізній вже сувора дисципліна. Релізні гілки за часом кожні ~2 місяці.
Там appliances що встановлюються у кастомера.

На поточному проекті схоже, але дещо більше бардака.

У нас на проекті заміть code freeze практикується ass fire:
викатують мержі в продакшн без тестування на дев-серверах,
а потім в слаку починається @channel / @here / @username -_-

Пожалуй, утащу в свой фонд золотых цитат

Так, є практика довгого code freeze у компанії де я працюю (великикй e-commerce проєкт орієнтований на ринок Штатів).
Але він починається на початку листопада, щоб встигнути регресію та зменшити ймовірність виникнення проблем під час «знижково-святкового» періоду. Зазвичай під час цього періоду (1.5 місяці) компанія має ~25% річного прибутку, тому й важливо щоб нічого не впливало на конверсію.
Підготовка, на мою думку, проходить стандартно — regression testing за 2 тижні до спрінта, щоб мати час на regression bugs. Далі блокування мерджу в продакшн через bitbucket restrictions (залишається доступ для tech ліда/engineering менеджера). Налаштування додаткового моніторингу стану проекту та елармів (Sentry, AWS CloudWatch метрики, тощо.). Визначення/перегляд emergency плану та формування списку людей за своїми відповідальностями та підключення, наприклад до PagerDuty.
Цікаво, що на період різдвяно-новорічних свят великих кодфрізів немає, бо це не є релевантним. Люди роблять мало замовлень, бо вже не встигають отримати товар до конкретного свята (25.12/01.01)

Практика code freeze — не має нічого спільного зі святами. І не є чимсь особливим для великих компаній чи новим у сфері розробки ПЗ.
Він робиться лише для релізу, щоб мати прогнозований набір фіч, які відтестовані. І нічого крім фіксів туди не комітиться. А потім релізиться коли треба.

Практика code freeze — не має нічого спільного зі святами

Ну як сказати, в Штатах період Різдвяних свят і Дня Подяки найбільш гарячий для е-комерсу і супутніх компаній, як написали вище, за той час генерується значна частина річного доходу ( Чорна П’ятниця, Різдвяні знижки, купівля подарунків). І тому критично важливо, щоб у той період, все працювало належно, code freeze суттєво зменшує шанс, що щось піде не так в той період.

Є в період Дня Подяки і Різдва ( ± тиждень до і тиждень після фріз), чудовий період :)

Просто так у нас кодфріз на жодному проекті за все життя не робили. Код-фріз зазвичай — це одна із передрелізних стадій, коли в код припиняють приймати нові фічі і можна пушити тільки фікс знайдених багів.

Технічно це час для того щоб відповідальні люди зробили релізні бранчі і підняли версію в бранчах робочих. Година часу десь на все.
Після цього у релізні бранчі йдуть тільки фікси з мержем потім у робочі. У робочих все як зазвичай.
Ото й увесь код фріз.

Звісно, робота в девел-бранчах продовжується :)

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

Коли у вас їх нема — у вас або маленький проект, або у вас одні проблеми хтось редеплоїть сервер коли йде демо на замовника, валяться релізи усі проти усіх і т.д.

У великої мережі рітейлу де працював ще років 8 тому було правило ніяких змін на продакшен за 2 тижні до Нового Року бо це період найбільших продажів.
Але років 5 тому скасували бо бізнес став більш динамічним і більш оцифрованим.
Були великі деплої навіть прям у новорічну ніч

В новорічну ніч повністю безпечно, власне як і в різдвяну. А от в період до різдвяних розпродажів, під чорну п’ятницю та кібр понеділок — коли держава робить людям подарунок на різдво, не беручи ПДВ — от тоді ніхто нічого чіпати не дасть. Ці пара тижнів розпродажів ретейлерів годує весь рік. При чому усього два на чорну п’ятницю та кібр понеділок це більше 70% річного оборутку. Щоправда «фальшиві розпродажі» як в Україні (бо в нас ніхто і ніколи не скасовував ПДВ на різдво) теж мають місце. Між іншим ми років 6-7 коли їм розповідали, як в Україні місцевий ретейл роблять fake sale вони не знали, що таке може бути. Напевно самі і навчили. А взагалі усі чорні базарні методи продажів, типу dynamic pricing (це коли кожному покупцеві на один і той самий товар виставляють різну ціну, в залежності від того скільки він потенційно може заплатити по максимуму — класика авторинку наприклад, де коли питаєш ціну на товар, скажімо домкрат, тебе у відповідь питають — а яка в тебе машина ? Власне задля цього різні платформи і збирають про вас данні усі що можливо, як не в себе) і т.п. стали розповсюдженим явищем, раніше цим страждали тільки різні Amazon і т.п..

Звичайно є...не вистачало покласти базу на новий рік🥲

Є різдвяний шатдаун, що по дефолту означає код-фріз.

Ахаха, уже лет 8 их не видела :D

А що вас так насмішило?

Стартує з наступної середи. Найсмішніше те, що девелоперів просять бути максимально доступними в цей період на випадок збоїв при тому, що нічого пофіксити ми все одно не зможемо.

Это странно, потому что основная идея код фриза это именно релиз новых фич. Обычно, если это багфикс, то зарелизить можно, просто с апрувами от разного уровня менеджеров

У нас буде заблокований деплоймент на прод, тобто, пушити не можна нічого взагалі

Типа если упало то пусть валяется неделю?)

Я хз, що вони збираються робити, мій ПМ не в курсі. На щастя, ймовірність того, що упаде саме через код, дуже мала. А інші проблеми можна вирішити за допомогою адмінів чи DBA, в залежності від того, що саме пішло не так

Так, у нас є різдвяний коуд-фріз.

А шо там розгортати? Комітяться відповідні чейнджи в CODEOWNERS файли та й все

З якою метою цікавитесь?

Підписатись на коментарі