Как вы выкатываете Python-сервис
Вопрос
Расскажите, как устроен деплой вашего Python-сервиса от коммита до продакшена.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
CI: линтеры, типы, тесты, проверка миграций
Сборка Docker-образа с кешем слоёв, тег по коммиту
Миграции обратно совместимы, применяются отдельным шагом
Rolling или blue-green с readiness-пробами и graceful shutdown
Наблюдение после выкладки: ошибки, латентность, быстрый откат
Секреты и конфигурация через окружение
Что могут спросить следом
- Как откатиться, если новая версия сломала прод?
- Как вы применяете миграции в Kubernetes?
Разбор
Образцовый ответ: «На каждый PR CI гоняет ruff, mypy, тесты на настоящей PostgreSQL и проверку, что миграции не забыты. После мержа собирается Docker-образ: зависимости по lock-файлу отдельным слоем, код поверх, процесс не от root, тег по хешу коммита. Деплой начинается с миграций отдельной задачей, и они обязательно совместимы с предыдущей версией кода, иначе rolling update сломает старые экземпляры. Затем rolling update: новые поды поднимаются, проходят readiness, получают трафик, старые получают SIGTERM и корректно дообрабатывают запросы. Конфигурация и секреты приходят из окружения, в образе их нет. После выкладки смотрю дашборд: доля 5xx, p95 латентности, ошибки в Sentry; при проблемах откат на предыдущий тег одной командой, и он безопасен благодаря совместимым миграциям».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.