Skip to content
14 / 15

Обновление версии Go в проде: что проверять перед выкаткой

Обновление Go обычно проходит спокойно благодаря гарантии совместимости, но спокойно — не значит бездумно. Проверять надо три слоя. Совместимость сборки: она почти всегда сохраняется, а ломается там, где код опирался на непубличные детали — unsafe, рефлексию над внутренностями рантайма, порядок обхода чего-либо. Изменения поведения: они приходят не с новым компилятором, а с поднятием директивы go в go.mod, поэтому обновление разделяют на два шага. Производительность и память: новые версии меняют сборщик мусора, планировщик и оптимизации, и эффект бывает в обе стороны — Go 1.26 с новым алгоритмом маркировки Green Tea обычно улучшает картину, но профиль потребления меняется, а значит, настройки GOMEMLIMIT и лимиты пода стоит перепроверить. Практический порядок: обновить тулчейн, прогнать тесты с -race, сравнить бенчмарки через benchstat, выкатить на часть трафика и посмотреть на задержку, память и долю процессорного времени на сборку.

Обновление версии Go в проде: что проверять перед выкаткой | JScriptiser