Skip to content

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

100 реальных вопросов с образцовыми ответами и пояснениями для уровня Junior.

Смотреть пример резюме: DevOps-инженер

Тренировка флешкарточками

Интервальное повторение · Hunter Pass

Вопросы

linux

Права Linux отдельно задают чтение, запись и выполнение для владельца, группы и остальных пользователей.

  • В числовой записи чтение равно 4, запись 2, а выполнение 1; значения складываются для каждого класса доступа.
  • chmod 755 даёт владельцу 7, то есть полный доступ, а группе и остальным 5, то есть чтение и выполнение без записи.
  • Для входа в каталог нужно право выполнения, даже если у него есть право чтения.

Зачем это спрашивают: Арифметика цифр плюс нюанс выполнения на каталогах показывают отработанное, а не заученное знание.

linux

root имеет неограниченный доступ к системе, а sudo даёт обычному пользователю повышенные права для конкретной команды.

  • sudo записывает, кто запустил привилегированную команду, и создаёт журнал действий, которого нет при общем доступе к root.
  • При постоянной работе под root любая ошибка выполняется с полными правами, поэтому опечатка в rm или сбойный скрипт могут повредить систему без дополнительной защиты.
  • Безопаснее работать под личной учётной записью и вызывать sudo только для команд, которым нужны повышенные права.

Зачем это спрашивают: Аргументы про радиус поражения и аудит - то, что интервьюер ждёт сверх определений.

concurrency

Проверка процесса в Linux начинается с поиска процесса и его PID, после чего его останавливают наименее жёстким сигналом.

  • ps aux и top показывают процессы, PID, загрузку CPU и памяти, а pgrep ищет процесс по имени.
  • kill PID отправляет SIGTERM и позволяет процессу корректно завершиться и освободить ресурсы.
  • kill -9 отправляет неперехватываемый SIGKILL и используется только в крайнем случае, потому что мгновенная остановка может пропустить очистку, повредить данные или оставить блокировки.

Зачем это спрашивают: Понимание, почему SIGKILL - последнее средство, а не дефолт, - то суждение, которое проверяется.

system-designlinux

Сервисы systemd управляются через systemctl, а их логи читаются через journalctl.

  • systemctl status nginx показывает, работает ли nginx, а также его PID и последние строки лога; start, stop и restart управляют текущим состоянием.
  • systemctl enable nginx включает запуск при загрузке, но включение автозапуска не запускает сервис прямо сейчас.
  • journalctl -u nginx показывает историю сервиса, а journalctl -u nginx -f следит за новыми записями; запущенный вручную, но не включённый сервис не вернётся после перезагрузки.

Зачем это спрашивают: Ловушка запущен-но-не-включён после перезагрузки - практическая деталь, выдающая реальный серверный опыт.

grep ищет текст, find находит файлы, а пайпы объединяют их в практичные команды для анализа логов.

  • grep -i error app.log ищет без учёта регистра, -r рекурсивно обходит каталоги, а -C 3 добавляет по три строки контекста вокруг совпадения.
  • find умеет фильтровать по имени, возрасту и размеру; find /var/log -name '*.log' -mtime -1 выводит логи, изменённые за последние сутки.
  • Пайп из find в grep ищет по выбранным файлам, а пайп из grep в wc -l считает совпавшие строки лога.

Зачем это спрашивают: Флаги контекста и комбинирование инструментов через пайпы показывают беглость дальше одиночных заученных команд.

shell

Пайпы в шелле соединяют команды, а перенаправление отправляет их обычный вывод и ошибки в файлы.

  • Пайп передаёт stdout одной команды следующей, поэтому cat app.log | grep error | wc -l считает строки со словом error.
  • Оператор > перезаписывает файл, а >> дописывает данные в конец.
  • 2>&1 объединяет stderr со stdout, чтобы ошибки сохранялись вместе с обычным выводом и не терялись незаметно в cron-задачах и CI-скриптах.

Зачем это спрашивают: Понимание 2>&1 и мест, где кусается потерянный stderr, - примета человека, отлаживавшего тихие сбои.

linux

Иерархия файловой системы Linux задаёт стандартные места для конфигурации, изменяемых данных, пользовательских файлов, временных данных и программ.

  • /etc хранит конфигурацию, а /var содержит изменяемые данные, включая логи в /var/log.
  • /home содержит каталоги пользователей, а /tmp служит временным рабочим пространством, которое может очищаться при перезагрузке.
  • /usr и /bin содержат программы; знание этих путей помогает на незнакомом сервере сначала искать настройки сервиса в /etc, а причины сбоев в /var/log.

Зачем это спрашивают: Быстрая ориентация на незнакомом сервере - практический навык, за которым стоит эта словарная проверка.

При заполнении диска нужно найти затронутую файловую систему, безопасно освободить место и предотвратить повторение.

  • df -h определяет заполненную файловую систему, а команды вроде du -sh /var/* вместе с sort находят самые крупные каталоги.
  • Частые причины: разросшиеся логи, старые резервные копии и артефакты Docker; логи нужно ротировать или обрезать, а кеши пакетов и контейнеров чистить их штатными инструментами.
  • Нельзя вслепую удалять файл, который всё ещё открыт работающим процессом, потому что место освободится только после закрытия файла процессом.
  • Ротация логов и алерты на использование диска позволяют отреагировать до достижения 100 процентов.

Зачем это спрашивают: Тонкость с открытыми файловыми дескрипторами и профилактика в конце поднимают ответ над пересказом команд.

config

Переменные окружения представляют собой настройки процесса в виде пар ключ-значение, а PATH определяет, где шелл ищет команды.

  • Процессы наследуют переменные окружения при запуске и часто получают через них URL баз данных, API-ключи и переключатели режимов вместо зашитой в код конфигурации.
  • PATH содержит список каталогов с командами, поэтому установленный вне этих каталогов исполняемый файл всё равно может вызвать ошибку command not found.
  • export в одном терминале не обновляет уже работающий сервис, потому что его окружение было задано при запуске процесса.

Зачем это спрашивают: Инсайт про область процесса, почему работающий сервис не видит ваш export, - маркер глубины здесь.

passwordsssh

SSH представляет собой шифрованный протокол удалённого доступа к шеллу, а аутентификация по ключам безопаснее входа по паролю.

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

Зачем это спрашивают: Пункт про приватный-ключ-не-путешествует подтверждает реальное понимание модели ключей, а не ритуальное использование.

linux

scp удобен для простого копирования по SSH, а rsync лучше подходит для эффективной или повторяемой синхронизации.

  • scp использует синтаксис, похожий на cp, например scp app.tar.gz user@server:/opt/, и подходит для одного небольшого файла.
  • rsync передаёт только различия, показывает прогресс, продолжает прерванную передачу и умеет зеркалировать деревья каталогов, включая удаление исчезнувших в источнике файлов.
  • Для повторных синхронизаций, больших деревьев и нестабильных соединений лучше rsync, поэтому его часто использовали в скриптах деплоя.

Зачем это спрашивают: Знание дельта-передачи rsync как причины его существования показывает выбор инструмента по механизму, а не по привычке.

Медленный сервер диагностируют измерениями, чтобы до любых изменений определить перегруженный тип ресурса.

  • top или htop показывают load average относительно числа CPU, процессы с высокой загрузкой CPU и давление на память; free -h подтверждает использование RAM и swap, а активный swap может сильно замедлить систему.
  • df -h проверяет заполнение файловых систем, а iostat или iotop выявляют перегрузку дискового I/O, когда CPU простаивает, но система остаётся медленной.
  • Сначала узкое место относят к CPU, памяти, диску или сети, а затем исследуют именно этот ресурс вместо догадок.

Зачем это спрашивают: Классификация узкого места до действий - системная привычка триажа, которую слушает интервьюер.

dns

DNS преобразует имена вроде api.example.com в IP-адреса и кеширует результаты.

  • Резолвер сначала проверяет доступные кеши, а затем проходит цепочку корневых, TLD и авторитетных DNS-серверов домена.
  • A-запись сопоставляет имя с IPv4-адресом, а CNAME делает одно имя псевдонимом другого.
  • Каждый ответ кешируется на время TTL, поэтому старые значения сохраняются до истечения кеша и изменения DNS распространяются не мгновенно.

Зачем это спрашивают: Кеширование и TTL как причина неммгновенных изменений - практически важная часть ответа.

networking

TCP ориентирован на надёжную доставку, а UDP на низкие накладные расходы и задержку.

  • TCP устанавливает соединение и использует подтверждения и повторные передачи для полной доставки данных по порядку, поэтому подходит для HTTP, баз данных и SSH.
  • UDP отправляет пакеты без соединения и гарантий доставки, поэтому подходит для DNS-запросов, видеостриминга и метрик, где скорость важнее полноты.
  • Отказы выглядят по-разному: при потере данных TCP может ждать и повторять передачу, а UDP может молча потерять пакеты.

Зачем это спрашивают: Привязка каждого протокола к его режиму отказа показывает понимание глубже учебникового сравнения.

Порт определяет процесс сервиса, который должен получить трафик, отправленный на IP-адрес.

  • Операционная система направляет входящий трафик процессу, который слушает порт назначения, поэтому один IP может обслуживать много сервисов.
  • Частые порты: 22 для SSH, 80 для HTTP, 443 для HTTPS, 53 для DNS, 5432 для PostgreSQL, 3306 для MySQL и 6379 для Redis.
  • ss -tlnp или netstat показывает реальные слушающие процессы и помогает отличить остановленный сервис от сервиса на неверном порту.

Зачем это спрашивают: Рефлекс проверки слушающих портов через ss или netstat превращает знание портов в инструмент отладки.

httphttps

HTTPS представляет собой HTTP, защищённый TLS-шифрованием и проверкой подлинности сервера.

  • Сервер предъявляет сертификат, выданный доверенным центром сертификации, чтобы подтвердить свою подлинность.
  • Во время TLS-рукопожатия клиент проверяет цепочку сертификатов, а стороны создают сессионные ключи для шифрования дальнейшего трафика.
  • Сертификаты истекают, поэтому важно автоматическое продление, например через Let's Encrypt; браузеры могут отклонить сервис с просроченным сертификатом, что для пользователей равносильно недоступности.

Зачем это спрашивают: Упоминание истечения и автопродления связывает теорию с инцидентами, с которыми реально сталкиваются команды эксплуатации.

load-balancing

Балансировщик нагрузки распределяет входящие запросы между несколькими экземплярами сервиса.

  • Распределение трафика между экземплярами увеличивает общую пропускную способность.
  • Проверки состояния выводят неисправные экземпляры из ротации и повышают доступность.
  • Стабильный внешний адрес позволяет добавлять, удалять и обновлять экземпляры за ним, что делает возможным поэтапный деплой без простоя.

Зачем это спрашивают: Названные health-чеки и свойство стабильного адреса показывают понимание, почему балансировщики делают возможной эксплуатацию без даунтайма.

http-tools

curl помогает разделить проблемы DNS, TLS, соединения и приложения, показывая точный ответ веб-эндпоинта.

  • curl -I https://api.example.com/health быстро возвращает статус и заголовки, а -v показывает полный обмен, включая детали TLS и запроса.
  • Параметр -w с переменными времени показывает источник задержки, а -H вместе с -d позволяет воспроизвести аутентифицированный POST-запрос клиента.
  • Сравнение этих результатов из разных точек помогает понять, сломан сам сервис или сетевой путь от пользователя.

Зачем это спрашивают: Использование curl для разделения слоёв сети, TLS и приложения - тот навык отладки, который проверяется.

networking

Файрвол ограничивает сетевую доступность, пропуская только трафик, который соответствует явным правилам.

  • Правила фильтруют трафик по адресу источника, протоколу и порту, а всё неразрешённое отбрасывается.
  • Облачные security groups выполняют эту роль для привязанных инстансов и обычно хранят состояние соединения, поэтому обратный трафик разрешённого соединения проходит автоматически.
  • При запрете по умолчанию порт 443 можно открыть всем, 22 только доверенным адресам, а порты базы только группе приложения; каждому открытому правилу нужна ясная причина, потому что оно увеличивает поверхность атаки.

Зачем это спрашивают: Мышление default-deny с конкретными примерами правил отличает осознание безопасности от теории.

proxy

Обратный прокси принимает запросы клиентов и передаёт их бэкенд-приложениям за единой точкой входа.

  • nginx может завершать TLS, чтобы приложения не управляли сертификатами, а также эффективно отдавать статические файлы и сжимать ответы.
  • Он может добавлять заголовки, ограничивать частоту запросов и направлять разные пути в разные сервисы.
  • Буферизация запросов принимает на себя медленных клиентов, чтобы воркеры приложения не были заняты плохими клиентскими соединениями.

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

Закрытые вопросы

  • 21

    Сервис на другом хосте недоступен. Как локализовать проблему сетевыми инструментами?

  • 22

    В чём разница между 127.0.0.1 и 0.0.0.0?

    networking
  • 23

    В чём разница между приватными и публичными IP-адресами и что делает NAT?

    networking
  • 24

    Пользователи жалуются на ошибки, балансировщик отдаёт 502 и 504. О чём говорят эти коды?

    load-balancing
  • 25

    Опишите, что происходит, когда пользователь открывает https://app.example.com.

    https
  • 26

    Какую проблему решает git и как выглядит ваш базовый рабочий процесс?

    git
  • 27

    Почему команды используют ветки и пул-реквесты вместо пушей в main?

    code-review
  • 28

    Вы подтянули свежие изменения и получили конфликт слияния. Что делаете?

    git
  • 29

    Почему конфигурация инфраструктуры должна жить в git?

    gitconfig
  • 30

    Что должно лежать в .gitignore и что делать, если секрет попал в коммит?

    secretsgit
  • 31

    Что такое непрерывная интеграция?

    ci-cd
  • 32

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

    deploymentci-cd
  • 33

    Какие стадии у типичного CI/CD пайплайна и что происходит на каждой?

    ci-cd
  • 34

    Как бы вы написали базовый пайплайн в GitHub Actions?

    ci-cd
  • 35

    Что может запускать пайплайн, кроме пуша?

    ci-cd
  • 36

    Пайплайн красный. Как расследуете падающую сборку?

    ci-cd
  • 37

    Что такое артефакт сборки и как версионировать артефакты?

    ci-cdartifacts
  • 38

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

    ci-cdsecretssoft-skills
  • 39

    Почему скорость пайплайна важна и что ускоряет сборки?

    ci-cd
  • 40

    Почему YAML повсюду в DevOps и каковы основы его синтаксиса?

    yaml
  • 41

    Какие подвохи YAML кусали людей в конфигах?

    configyaml
  • 42

    Чем конфигурация должна отличаться между окружениями и где живут значения?

    config
  • 43

    Что такое идемпотентность и почему она важна в автоматизации?

    idempotency
  • 44

    С чего начинается добротный bash-скрипт и зачем set -e и коды выхода?

    solidbash
  • 45

    Приведите практический пример цикла и условия в bash-скрипте.

    bash
  • 46

    Как работает cron и о чём всегда должна заботиться запланированная задача?

    cron
  • 47

    Что такое инфраструктура как код и каковы её выгоды?

    iac
  • 48

    Как на базовом уровне работает Terraform и что такое state?

    terraform
  • 49

    Почему ручные изменения инфраструктуры в консоли - проблема, когда ею управляет Terraform?

    terraform
  • 50

    Что такое управление конфигурацией и где инструмент вроде Ansible стоит рядом с Terraform?

    terraformconfigansible
  • 51

    В чём разница между контейнерами и виртуальными машинами?

    containers
  • 52

    В чём разница между образом Docker и контейнером?

    dockercontainers
  • 53

    Что делают основные инструкции Dockerfile?

    docker
  • 54

    Как работают слои Docker и кеш сборки и почему важен порядок инструкций?

    cachingdocker
  • 55

    Какие команды Docker покрывают ежедневную работу с контейнерами?

    dockercontainers
  • 56

    Как работают теги образов и реестры?

    containers
  • 57

    Как на базовом уровне работает сеть Docker?

    docker
  • 58

    Как сохранять данные в Docker и чем тома отличаются от bind-монтирований?

    docker
  • 59

    Как конфигурация и секреты попадают в контейнеры?

    containersconfigsecrets
  • 60

    Что такое docker-compose и когда это правильный инструмент?

    docker
  • 61

    Почему важны маленькие образы и что делает образ меньше?

  • 62

    Контейнер постоянно перезапускается или сразу выходит. Как отлаживаете?

    containers
  • 63

    Что такое Kubernetes и какие проблемы он решает сверх голого Docker?

    dockerkubernetes
  • 64

    Что такое Pod, Deployment и Service в Kubernetes?

    kubernetesdeployment
  • 65

    Опишите процесс деплоя приложения в Kubernetes.

    kubernetesdeploymentconcurrency
  • 66

    Какими командами kubectl вы осматриваете и отлаживаете нагрузки?

    kubernetes
  • 67

    Что такое Helm и какую проблему он решает?

    helm
  • 68

    Что такое GitOps и что делает инструмент вроде ArgoCD?

    gitops
  • 69

    В чём разница между IaaS, PaaS и SaaS?

    cloud
  • 70

    Что такое EC2 и какие базовые решения приходят с запуском инстанса?

    aws
  • 71

    Что такое S3 и для чего он используется?

    aws
  • 72

    Зачем управляемая база вроде RDS вместо базы на собственной ВМ?

    database
  • 73

    Что такое регионы и зоны доступности и зачем деплоиться в несколько AZ?

    availabilitydeployment
  • 74

    Какие основы IAM обязан уважать каждый джун в облаке?

  • 75

    От чего взрываются облачные счета и какие привычки держат затраты в норме?

  • 76

    Зачем существует централизованное логирование и что делает запись в логе полезной?

    logging
  • 77

    Что такое метрики и какие важны для типичного сервиса?

    monitoring
  • 78

    Что делает алерт хорошим, а что шумным?

    alerting
  • 79

    Что должно быть на дашборде сервиса в Grafana?

    monitoring
  • 80

    Что такое health-чеки и чем liveness отличается от readiness?

    health-checks
  • 81

    Что на практике означают SLA и проценты аптайма?

  • 82

    Сервис лежит. Ваши первые шаги?

  • 83

    Что такое откат и что должно быть правдой, чтобы он был быстрым?

    rollback
  • 84

    Зачем существуют окружения dev, staging и prod и каким должен быть staging?

  • 85

    Какие стратегии деплоя существуют, кроме остановить и перезапустить всё?

    deployment
  • 86

    Деплой завершился успешно. Откуда вы знаете, что релиз реально работает?

    deployment
  • 87

    Почему миграции базы опасны при деплоях и что делает их безопаснее?

    databasemigrationsdeployment
  • 88

    Что делает стратегию бэкапов заслуживающей доверия?

    backups
  • 89

    Какая базовая гигиена безопасности ожидается от джуна-DevOps?

  • 90

    TLS-сертификат истёк, пользователи видят ошибки браузера. Что делаете сейчас и навсегда после?

    tls
  • 91

    Что означает проблема работает-на-моей-машине и как её закрывают контейнеры?

    containers
  • 92

    Зачем писать ранбуки и что содержит хороший?

    runbooks
  • 93

    Ваше изменение конфига сломало продакшен. Пройдите по своим действиям.

    config
  • 94

    Сработал алерт, и смотрите на него вы. Каков ваш процесс?

    alertingconcurrency
  • 95

    Коллега просит по-быстрому поменять что-то руками на продакшен-сервере. Как отвечаете?

  • 96

    Как вы растёте как джун-DevOps-инженер?

  • 97

    Разработчик просит открыть порт или дать широкий доступ, чтобы ускориться. Что делаете?

  • 98

    Вам прилетает размытый тикет: сделай деплой лучше. Что делаете?

    deployment
  • 99

    CI-пайплайн сломан у всей команды, и у вас своя задача с дедлайном. Что приоритизируете?

    ci-cdprioritization
  • 100

    Сеньор предлагает решение, которое вы считаете неверным. Как поступаете?

    soft-skills