AI
prepair.app
Пройти интервью →
EnglishУкраїнськаРусский
⚙️

Вопросы на собеседовании DevOps инженера

Собеседование DevOps и SRE — это не про перечисление инструментов, а про решения в условиях ограничений: что откатывать первым, на что ставить алерт и что сознательно оставить сломанным до утра. Ниже — вопросы, которые задают чаще всего, каждый с эталонным ответом.

Junior · без опыта / до 1 годаMiddle · 2–4 года опытаSenior · 5+ лет опыта

Что спрашивают

CI/CD пайплайны
Docker и контейнеры
Kubernetes
Terraform и IaC
Наблюдаемость и SLO
Инциденты и надёжность

12 реальных вопросов с ответами

К каждому вопросу — эталонный ответ, с которым можно сравнить свой.

1

В чём разница между continuous integration, delivery и deployment?

Ответ

Continuous integration означает, что каждый коммит вливается и проверяется автоматической сборкой и тестами, поэтому ветка не расходится с main. Continuous delivery означает, что каждая зелёная сборка даёт артефакт, готовый к продакшену, а финальный выкат остаётся человеческим решением. Continuous deployment убирает это решение — каждая зелёная сборка едет в прод. Различие важно на собеседовании, потому что большинство команд, заявляющих CD, на деле практикуют delivery.

2

Как устроены слои Docker и как держать образ маленьким?

Ответ

Каждая инструкция создаёт read-only слой, слои кешируются и переиспользуются, пока не менялось всё, что было до них, — поэтому манифест зависимостей копируют и ставят зависимости до копирования исходников. Размер снижают многоступенчатой сборкой, которая оставляет компилятор позади, slim- или distroless-базой и объединением команд, чтобы промежуточные файлы вообще не попали в слой. Удаление файла в более позднем слое образ не уменьшает — он всё ещё лежит в раннем слое.

3

Объясните связь между Pod, Deployment и Service.

Ответ

Pod — минимальная планируемая единица: один или несколько контейнеров с общим сетевым пространством и жизненным циклом. Deployment управляет ReplicaSet, который держит заявленное число одинаковых подов и обеспечивает роллинг-обновления и откаты. Service даёт этому меняющемуся набору подов стабильный виртуальный IP и DNS-имя, балансируя между теми подами, которые сейчас подходят под селектор, так что вызывающей стороне не нужно следить за адресами отдельных подов.

4

В чём разница между liveness и readiness пробами?

Ответ

Readiness-проба решает, идёт ли на под трафик; её провал убирает под из эндпоинтов сервиса, но оставляет его работать. Liveness-проба решает, перезапускать ли контейнер. Их путаница — классическая авария: если направить liveness на зависимость, то медленная база перезапустит все реплики одновременно, превратив деградацию в полный простой. Liveness должна проверять только «не завис ли процесс», readiness — «могу ли я обслуживать прямо сейчас».

5

Что такое Terraform state и чем он опасен?

Ответ

State сопоставляет ресурсы, объявленные в конфигурации, с реальными объектами у провайдера, чтобы Terraform понимал, что создать, изменить или удалить. Опасен он тем, что является источником истины: потеряв его, Terraform перестаёт знать, что владеет вашей инфраструктурой, и попытается создать её заново. Кроме того, он часто содержит секреты в открытом виде. Поэтому state держат в удалённом бэкенде с шифрованием, версионированием и блокировкой, чтобы два инженера не сделали apply одновременно.

6

Когда использовать Terraform, а когда Ansible?

Ответ

Terraform — декларативное провижининг: он создаёт и удаляет инфраструктуру и приводит реальность к объявленному состоянию. Ansible — процедурное управление конфигурацией: он выполняет упорядоченные задачи на уже существующих машинах. Чистое разделение такое: Terraform для всего, у чего есть жизненный цикл в облачном API, Ansible для того, что происходит внутри виртуалки. На стеке с Kubernetes роль Ansible сильно сжимается, потому что образы контейнеров заменяют конфигурацию машин.

7

Что такое SLI, SLO и error budget?

Ответ

SLI — измеряемый показатель здоровья сервиса, например доля запросов, обслуженных успешно быстрее 300 мс. SLO — цель по этому показателю на окне, скажем 99,9% за 30 дней. Error budget — допустимый недобор, те самые 0,1% запросов, и он превращает надёжность в расходуемый ресурс: пока бюджет цел, можно катить быстрее, а когда исчерпан, фичи замораживают и чинят надёжность. Именно это превращает спор «надёжность против скорости» из вкусовщины в арифметику.

8

В чём разница между метриками, логами и трейсами?

Ответ

Метрики — дешёвые числовые агрегаты во времени, отвечают на вопрос «что-то сломалось?» и именно на них ставят алерты. Логи — дискретные события с деталями, отвечают «что именно произошло» в конкретном запросе или компоненте. Трейсы прослеживают один запрос через сервисы и отвечают «куда ушло время» в распределённой цепочке вызовов. Алертить по логам дорого и шумно, а отлаживать по одним метрикам — гадание. Нужны все три, каждый по своему назначению.

9

Сравните rolling, blue-green и canary выкаты.

Ответ

Rolling заменяет инстансы постепенно, почти не требует запасной мощности, но во время выката трафик обслуживают две версии, а откат медленный. Blue-green держит полноценное второе окружение и переключает трафик разом, давая мгновенный откат ценой двойной мощности и тяжёлой проблемы миграций базы. Canary направляет небольшую долю трафика на новую версию и смотрит метрики перед расширением, что ловит проблемы на реальных пользователях, но окупается только при хорошей наблюдаемости и автоматическом анализе.

10

Как правильно обращаться с секретами в пайплайне?

Ответ

Секреты не живут ни в репозитории, ни в слоях образа, ни в обычных переменных окружения, зашитых на этапе сборки. Они приходят из выделенного хранилища — Vault, облачный secret manager или зашифрованные секреты CI — и подставляются в рантайме с минимально возможной областью действия и сроком жизни. Короткоживущие креды через OIDC-федерацию лучше долгоживущих ключей, потому что главный риск не в краже секрета, а в секрете, который остаётся валидным годами.

11

Под в состоянии CrashLoopBackOff. Разберите ход диагностики.

Ответ

Начинают с kubectl describe pod и смотрят события — там видны ошибки скачивания образа, неудавшиеся монтирования, OOMKilled и проваленные пробы. Затем kubectl logs с --previous, потому что текущий контейнер может быть слишком молод, чтобы успеть что-то записать. Проверяют код выхода на предмет OOM и сравнивают лимит памяти с реальным потреблением. Если контейнер стартует и сразу умирает, обычные причины — отсутствующий конфиг или секрет, падающая на старте миграция, либо liveness-проба со слишком коротким начальным ожиданием.

12

Что делает постмортем полезным, а не ритуальным?

Ответ

Полезный постмортем безобвинительный, поэтому люди описывают то, что действительно делали, а не то, что выглядит защитимо, и он сосредоточен на условиях, которые позволили ошибке превратиться в аварию. В нём есть точный таймлайн, разделены триггер и корневая причина, и он рождает небольшое число задач с владельцем и датой, а не список пожеланий. Проверка простая: поймёт ли по этому документу новый инженер аварию через год и были ли доведены до конца сами следствия.

🦎

Прочитать ответы недостаточно

На собеседовании ты говоришь вслух под давлением. Кем задаст эти же вопросы, оценит каждый ответ и покажет, что именно подтянуть.

Пройти интервью DevOps / SRE →
Бесплатно · 3 интервью в месяц

Другие специализации

🔍QA Manual🤖QA AutomationJava Backend🐍Python Backend🐘PHP Backend🦫Go Backend🟢Node.js Backend⚛️React Frontend💚Vue Frontend🅰️Angular FrontendNext.js🍏iOS (Swift)🤖Android (Kotlin)🗄️Data Engineer📈Business Analyst🎯Product Manager📋Project Manager🎨UI/UX Designer📣Marketing