Подборка вопросов

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

Диагностика Linux-сервера, Dockerfile и проблема PID 1, пробы, ресурсы и CrashLoopBackOff в Kubernetes, стратегии выкатки и GitOps, сети и файрволы, Prometheus, логи и алерты по SLO, Terraform и неизменяемая инфраструктура — вопросы на DevOps- и SRE-позиции, а также то, что спрашивают у бэкендеров про эксплуатацию.

50вопросов
21Junior
27Middle
2Senior
  1. 01Как настроить алерты, чтобы дежурные не выгорали, а реальные проблемы не пропускались?

    Алерт должен означать «пользователям плохо или скоро будет плохо, и человеку нужно действовать». Будить по симптомам (ошибки, задержки, доступность глазами пользователя), а не по…

    Senior
  2. 02Чем Ansible отличается от Terraform и когда что применять?

    Terraform — создание инфраструктуры (provisioning): декларативно, со state, хорош для облачных ресурсов — сетей, ВМ, баз, DNS. Ansible — настройка существующих машин…

    Middle
  3. 03Чем trunk-based development отличается от GitFlow?

    GitFlow — долгоживущие ветки develop и main, ветки фич, релизов и хотфиксов; подходит для продуктов с редкими версионированными релизами (коробка, мобильные приложения), но…

    Middle
  4. 04Из каких этапов состоит CI/CD-пайплайн и чем continuous delivery отличается от continuous deployment?

    CI — каждое изменение автоматически собирается и проверяется: сборка, линтеры, юнит-тесты, сканирование, сборка артефакта (образа). CD: continuous delivery — артефакт всегда готов…

    Junior
  5. 05Как правильно работать с секретами в CI/CD и инфраструктуре?

    Секреты не хранят в коде, образах и логах. Источник — хранилище секретов (Vault, облачный менеджер, секреты CI), выдача — по минимальным правам и по возможности короткоживущая…

    Middle
  6. 06Что означает запись 10.0.0.0/16 и как разбить сеть на подсети?

    CIDR: адрес и число бит префикса сети. /16 — первые 16 бит фиксированы, остаётся 32 − 16 = 16 бит на адреса: 65 536 адресов (10.0.0.0–10.0.255.255). /24 — 256 адресов, /32 — один…

    Junior
  7. 07Какие базовые сервисы облака нужны типичному веб-приложению и как обеспечить отказоустойчивость?

    Базовый набор: сеть (VPC, подсети, NAT), вычисления (ВМ, управляемый Kubernetes, serverless), балансировщик, управляемая БД, объектное хранилище (S3-совместимое), DNS, IAM…

    Junior
  8. 08Как проводить код-ревью полезно, а не по вкусу?

    Смотреть по существу в порядке важности: правильность (решает ли задачу, крайние случаи, ошибки), безопасность (ввод, права, секреты), данные и совместимость (миграции, API)…

    Middle
  9. 09Почему контейнер не останавливается корректно и «висит» до SIGKILL?

    Процесс с PID 1 в контейнере особенный: ядро не применяет к нему действия сигналов по умолчанию, и если приложение не обрабатывает SIGTERM, оно его игнорирует. Частая причина …

    Middle
  10. 10Как сделать контейнер безопаснее?

    Не root внутри контейнера, минимальный образ (меньше пакетов — меньше уязвимостей), сканирование образов в CI (Trivy, Grype), файловая система только для чтения, сброс…

    Middle
  11. 11Чем контейнер отличается от виртуальной машины?

    Виртуальная машина эмулирует оборудование и запускает собственное ядро ОС поверх гипервизора. Контейнер — обычный процесс хоста, изолированный механизмами общего ядра: namespaces…

    Junior
  12. 12Какие стратегии выкатки вы знаете и как выбрать подходящую?

    Recreate — остановить старое, запустить новое: простой, зато просто. Rolling — постепенная замена экземпляров, без простоя, откат медленный. Blue-green — полная копия окружения…

    Middle
  13. 13Как поднять приложение вместе с базой данных через docker compose?

    compose.yaml описывает несколько сервисов, их образы или сборку, переменные окружения, порты, тома и зависимости; docker compose up -d поднимает всё одной командой, down …

    Junior
  14. 14Как устроены слои Docker-образа и почему образ — неизменяемый артефакт?

    Образ — стопка слоёв только для чтения, каждый — изменения файловой системы от одной инструкции. Контейнер добавляет сверху тонкий слой для записи. Слои общие между образами и…

    Junior
  15. 15Как в Docker хранить данные и как контейнеры общаются по сети?

    Volume — хранилище под управлением Docker, переживает пересоздание контейнера (базы данных). Bind mount — каталог хоста внутрь контейнера (разработка, конфиги). Сеть: в…

    Junior
  16. 16Как написать хороший Dockerfile?

    Multi-stage: собирать в образе с компиляторами, а в финальный копировать только артефакт — образ в разы меньше. Порядок инструкций под кэш: сначала то, что меняется редко…

    Middle
  17. 17Как ограничивать сетевой доступ к серверам и сервисам?

    Принцип — запрещено всё, что не разрешено явно. Слои защиты: файрвол хоста (nftables/iptables, ufw), облачные security groups у каждой машины, сетевые ACL подсетей, NetworkPolicy…

    Junior
  18. 18Как работать с ветками и коммитами в Git — от создания ветки до push?

    Работа идёт в отдельной ветке от актуальной main: git switch -c feature/login. Изменения добавляют в индекс (git add) и фиксируют коммитом с осмысленным сообщением: что изменено и…

    Junior
  19. 19Как разрешить конфликт слияния в Git?

    Конфликт — обе ветки изменили одни и те же строки, и Git не знает, что оставить. В файле появляются маркеры: между <<<<<<< и ======= — ваша версия, между ======= и >>>>>>> …

    Junior
  20. 20Чем merge отличается от rebase и почему нельзя переписывать опубликованную историю?

    merge соединяет две ветки коммитом слияния, сохраняя историю как была. rebase переносит коммиты ветки поверх другой, создавая новые коммиты с другими хешами — история становится…

    Junior
  21. 21Как отменить изменения в Git — restore, reset и revert?

    git restore файл — отменить незакоммиченные изменения в рабочей копии; git restore --staged файл — убрать из индекса. git reset двигает ветку на другой коммит: --soft оставляет…

    Junior
  22. 22Что такое GitOps и чем он отличается от деплоя скриптом из CI?

    GitOps: желаемое состояние инфраструктуры и приложений описано в Git, а агент в кластере (Argo CD, Flux) постоянно сравнивает его с фактическим и приводит к нему (pull-модель). В…

    Middle
  23. 23Как найти текст в файлах и обработать вывод через пайпы?

    grep "текст" файл — строки с совпадением; -r — рекурсивно по каталогу, -i — без учёта регистра, -n — номера строк, -c — число совпадений, -v — строки без совпадения. Пайп |…

    Junior
  24. 24Что такое неизменяемая инфраструктура и чем она лучше настройки серверов на месте?

    Неизменяемая инфраструктура: серверы и контейнеры не меняют после запуска — для обновления собирают новый образ и заменяют экземпляры. Противоположность — правки на живых…

    Middle
  25. 25Из каких компонентов состоит кластер Kubernetes?

    Control plane: kube-apiserver — единственная точка входа, всё общение идёт через него; etcd — хранилище состояния кластера; scheduler — выбирает узел для пода; controller-manager…

    Middle
  26. 26Как передать конфигурацию и секреты приложению в Kubernetes?

    ConfigMap — несекретные настройки, Secret — пароли, токены, сертификаты; оба подключаются как переменные окружения или файлы в томе. Secret по умолчанию лишь закодирован в base64…

    Middle
  27. 27Под в состоянии CrashLoopBackOff. Как найти причину?

    CrashLoopBackOff — контейнер запускается и падает, kubelet перезапускает его с растущей паузой (до 5 минут). Порядок: kubectl describe pod (события, Last State, код выхода…

    Middle
  28. 28Как работает автомасштабирование в Kubernetes?

    HPA меняет число реплик по метрике: желаемые реплики = текущие × (текущее значение / целевое). Метрика CPU считается в процентах от requests — без requests HPA не работает. VPA…

    Middle
  29. 29Чем Pod, ReplicaSet и Deployment отличаются друг от друга?

    Pod — минимальная единица: один или несколько контейнеров с общей сетью (один IP, localhost) и томами; под смертен, его IP меняется. ReplicaSet поддерживает заданное число…

    Junior
  30. 30Приложение долго стартует, а Kubernetes перезапускает его по кругу. Как правильно настроить пробы?

    Liveness начинает проверять до окончания старта, приложение не успевает ответить — kubelet убивает его и запускает заново. Решение — startupProbe: пока она не прошла, liveness и…

    Middle
  31. 31Чем requests отличаются от limits в Kubernetes и что такое OOMKilled и троттлинг CPU?

    requests — сколько ресурсов зарезервировать: по ним планировщик выбирает узел. limits — потолок: превышение памяти → контейнер убивают (OOMKilled, код 137), превышение CPU →…

    Middle
  32. 32Как Deployment выполняет обновление и как откатить неудачную версию?

    Стратегия по умолчанию — RollingUpdate: создаётся новый ReplicaSet, поды постепенно заменяются. maxSurge — сколько подов сверх нужного числа можно поднять, maxUnavailable …

    Middle
  33. 33Какие бывают Service в Kubernetes и чем Service отличается от Ingress?

    Service — стабильное имя и виртуальный IP для набора подов по меткам, балансировка на уровне L4. Типы: ClusterIP — только внутри кластера (по умолчанию), NodePort — порт на каждом…

    Middle
  34. 34Чем StatefulSet отличается от Deployment и стоит ли запускать базы данных в Kubernetes?

    StatefulSet даёт подам стабильные имена (db-0, db-1), свой том на каждую реплику (volumeClaimTemplates — том переживает пересоздание пода) и упорядоченный запуск и остановку…

    Senior
  35. 35Диск заполнен, а du показывает, что места занято мало. В чём дело?

    Частая причина — удалённый файл, который ещё держит открытым процесс (например, лог после ротации): имя исчезло, du его не видит, а место не освободилось. Найти: lsof +L1 или lsof…

    Middle
  36. 36Что показывает load average и как понять, что сервер перегружен?

    Load average — среднее за 1, 5 и 15 минут число процессов, которые выполняются или ждут CPU, а в Linux ещё и ожидают ввод-вывод (состояние D). Сравнивать с числом ядер: load 8 на…

    Middle
  37. 37Как понять, сколько памяти реально свободно в Linux, и что такое OOM killer?

    Linux использует свободную память под кэш файлов (page cache), поэтому «free» почти всегда мал — смотреть надо на available: сколько можно выделить, вытеснив кэш. Когда память…

    Middle
  38. 38Как устроены права доступа к файлам в Linux?

    У файла есть владелец, группа и три набора прав — для владельца, группы и остальных: чтение (r = 4), запись (w = 2), выполнение (x = 1). chmod 755 — владелец rwx (7), группа и…

    Junior
  39. 39Какие состояния бывают у процесса в Linux и что такое зомби и сироты?

    В ps видно состояние: R — выполняется или ждёт CPU, S — спит в ожидании события (норма для большинства), D — непрерываемый сон в ожидании ввода-вывода (не реагирует даже на…

    Middle
  40. 40Какими командами вы диагностируете проблему на Linux-сервере?

    Порядок: жив ли процесс (systemctl status, ps) → логи (journalctl, файлы приложения) → ресурсы (top, free, df, iostat) → сеть (ss -tlnp — слушает ли порт, curl localhost, dig) →…

    Middle
  41. 41Как организовать сбор логов из множества сервисов?

    Приложения пишут структурированные логи (JSON) в stdout; агент на узле (Fluent Bit, Vector, Promtail) собирает их, добавляет метаданные (под, namespace, сервис) и отправляет в…

    Middle
  42. 42Сервис A не может подключиться к сервису B. Как вы будете искать причину?

    Идти по уровням снизу вверх: DNS (dig b.internal — резолвится ли и в тот ли адрес) → маршрут и доступность (ping, traceroute/mtr) → порт (nc -zv host 8080) → TLS (openssl…

    Middle
  43. 43Что такое reverse proxy и какие задачи решает nginx перед приложением?

    Reverse proxy стоит перед серверами и принимает запросы от их имени (forward proxy — наоборот, от имени клиентов). Задачи nginx: терминация TLS, балансировка между экземплярами…

    Junior
  44. 44Что такое переменные окружения и PATH и почему команда «не найдена»?

    Переменные окружения — пары «имя=значение», которые процесс получает от родителя: настройки, пути, секреты. Задать для текущей сессии и дочерних процессов — export NAME=value, для…

    Junior
  45. 45Как работает Prometheus и какие типы метрик в нём есть?

    Prometheus сам опрашивает (pull) эндпоинты /metrics целей, найденных через service discovery, и хранит временные ряды. Типы: counter — только растёт (запросы, ошибки), смотрят…

    Middle
  46. 46Как оформить pull request, который быстро проверят?

    Маленький PR (до нескольких сотен строк) с одной задачей. В описании: что сделано и зачем (ссылка на задачу), как проверить (шаги, тесты), на что обратить внимание, скриншоты для…

    Junior
  47. 47Как работать с файлами в командной строке Linux?

    pwd — где я, ls -la — что здесь (со скрытыми и правами), cd — перейти (cd .. — вверх, cd ~ — домой, cd - — назад). mkdir -p — создать каталоги, touch — пустой файл, cp -r …

    Junior
  48. 48Как устроен доступ по SSH-ключам и зачем нужен bastion-хост?

    Пара ключей: закрытый хранится у пользователя, открытый кладут на сервер в ~/.ssh/authorized_keys. При входе сервер проверяет, что клиент владеет закрытым ключом, — сам ключ по…

    Junior
  49. 49Как управлять сервисом через systemd и смотреть его логи?

    systemd — система инициализации и менеджер сервисов. Сервис описывают unit-файлом (/etc/systemd/system/app.service): команда запуска, пользователь, перезапуск…

    Junior
  50. 50Как работает Terraform и зачем ему state?

    Terraform декларативно описывает ресурсы (сети, ВМ, базы, DNS) на HCL. plan сравнивает код, state и реальность и показывает, что будет создано, изменено, удалено; apply выполняет…

    Middle
Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования