Има вид ирония, която сякаш е написана.
Един production release трябваше да бъде скучен. Това е мечтата. Чеклистът се движи, тагът пада, миграцията минава, таблото остава спокойно и никой не научава ново поведение на базата данни в 16:00.
Този имаше други планове.
Приложението спря да отговаря с едно малко, брутално изречение:
no healthy upstream
Не поетично. Не драматично. Точно достатъчно, за да направи стаята по-тясна.
Спряхме релийза и тръгнахме по следите на чакането. Една миграция искаше да промени формата на таблица. Нещо друго стоеше на прага.
Първо търсих драматичната причина. Новия код. Самата миграция. Страшния път.
Не беше нищо от това.
Беше нормална фонова задача, задействана от нормално потребителско действие, която държеше транзакция в базата данни по-широка, отколкото трябваше. В повечето дни това е просто неучтиво. В деня на релийза се превърна в архитектура.
Конекцията изглеждаше idle. Спяща, технически. Не изпълняваше заявка. Не беше заета. Просто беше там, все още с малка хватка върху таблица, от която миграцията имаше нужда.
Заспала, но с ръка върху дръжката на вратата.
После дойде шегата.
Потребителското действие, което стартира задачата, включваше страница, наречена How Things Break.
Естествено.
Един релийз се счупи заради How Things Break.
По-късно, след като системата отново беше здрава, преброих една по-ранна чернова на тази история. Имаше 1199 думи. Потърсих числото, главно на шега, и интернет ми каза, че 1199 означава „края на голям жизнен цикъл и началото на нов път.“
Саундтракът, естествено, беше Lorn - Anvil.
Абсурдно.
И точно.
Това беше целият урок. Една стара форма в codebase-а беше стигнала края на полезния си живот. Поправката не беше мистична: свий транзакцията, заздрави пътя на релийза, обнови runbook-а.
Но все пак.
Софтуерът прекарва по-голямата част от живота си, преструвайки се на логичен, а после реалността подава bug report със заглавие, по-добро от твоето.
Урокът е прост:
Обикновените пътища заслужават подозрение.
Не параноя. Подозрение.
Кодът, който хората използват всеки ден, е мястото, където компромисите се натрупват. Той става познат, а познатото е приспивателно.
Понякога production те учи с огън.
Понякога те учи с число, име и поанта.

Коментари