Как взаимодействовать с командой DevOps
Что проверяют
Понимаете ли вы, что ответственность за сервис не заканчивается на мерже, и умеете ли сделать Go-сервис удобным для эксплуатации. Следом обычно просят пример: конфликт с DevOps, инцидент или изменение в пайплайне, которое вы внедрили.
Как отвечать
Покажите, что говорите с DevOps на одном языке, и перечислите, что даёте им со своей стороны:
- сборка: многоэтапный
Dockerfile, статический бинарник сCGO_ENABLED=0, минимальный базовый образ вроде distroless. Пайплайн сgo test -race,golangci-lintи сканированием образа согласуете вместе; - поведение в кластере: эндпоинты liveness и readiness, корректное завершение по
SIGTERMчерезsignal.NotifyContextиhttp.Server.Shutdown, конфигурация через переменные окружения; - ресурсы: лимиты CPU и памяти обсуждаются вместе с настройками рантайма. С Go 1.25
GOMAXPROCSсам учитывает CPU-лимит контейнера, на старых версиях для этого подключалиautomaxprocs.GOMEMLIMITпомогает не упираться в OOM; - наблюдаемость: метрики через
prometheus/client_golang, структурированные логи черезlog/slog, трейсы OpenTelemetry,pprofна закрытом порту; - процесс: изменения инфраструктуры идут через pull request в репозиторий с Helm-чартами или Terraform, а не просьбой в чате; после инцидента разбор без поиска виноватых и runbook по итогам.
Дальше нужен ваш пример со своими цифрами: что было, что вы сделали, что изменилось. Скажем, сервис ронял запросы при деплое, потому что не обрабатывал SIGTERM, вы добавили graceful shutdown и readiness, и ошибки при выкатке пропали. Если в прошлой команде DevOps всё делали сами, скажите честно и опишите, что готовы взять на себя теперь.
Где спотыкаются
Отвечают общими словами про коммуникацию и стендапы, без единой технической детали. Для разработчика это слабый ответ.
Описывают DevOps как отдел, которому передают бинарник через забор. Интервьюер слышит, что метрики, алерты и падения вы своей задачей не считаете.
Не знают, как их сервис живёт в Kubernetes: какие у него лимиты, что происходит при остановке пода, куда смотреть при росте задержки.