Ответ вслух Middle Стратегии деплоя спрашивают часто обновлено

Как выкатить без простоя

Вопрос

Интервьюер: «Как вы обеспечиваете деплой без простоя для HTTP-сервиса с базой данных?»

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Образцовый ответ: «Беру rolling update с maxUnavailable 0, чтобы готовых экземпляров не становилось меньше. Новый под получает трафик только после readiness, а старый при SIGTERM перестаёт принимать соединения, дорабатывает текущие и выходит; preStop на несколько секунд закрывает гонку с обновлением балансировщика.

Что должно прозвучать в ответе

  • Стратегия: rolling, blue-green или canary, и почему выбрана

  • Readiness probe и прогрев: трафик только в готовые экземпляры

  • Graceful shutdown: SIGTERM, доработка запросов, preStop

  • Совместимость версий API и схемы БД: expand/contract

  • Быстрый откат и наблюдение за метриками после выкатки

Что могут спросить следом

  • Как удалить колонку, которую использует код?
  • Что будет с долгими WebSocket-соединениями при деплое?
  • Как проверить, что деплой действительно без простоя?

Разбор

Образцовый ответ: «Беру rolling update с maxUnavailable 0, чтобы готовых экземпляров не становилось меньше. Новый под получает трафик только после readiness, а старый при SIGTERM перестаёт принимать соединения, дорабатывает текущие и выходит; preStop на несколько секунд закрывает гонку с обновлением балансировщика. Самое сложное база: во время выкатки работают две версии, поэтому миграции делаю по expand/contract, удаление колонки только отдельным релизом, когда старого кода нет. После выкатки смотрю на долю 5xx и задержку, при деградации rollout undo. Проверяю, что простоя нет, нагрузочным прогоном во время выкатки на стенде: ни одного 502».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.