Вопросы на собеседовании: DevOps-инженер
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Junior.
Смотреть пример резюме: DevOps-инженер →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
Права Linux отдельно задают чтение, запись и выполнение для владельца, группы и остальных пользователей.
- В числовой записи чтение равно 4, запись 2, а выполнение 1; значения складываются для каждого класса доступа.
- chmod 755 даёт владельцу 7, то есть полный доступ, а группе и остальным 5, то есть чтение и выполнение без записи.
- Для входа в каталог нужно право выполнения, даже если у него есть право чтения.
Зачем это спрашивают: Арифметика цифр плюс нюанс выполнения на каталогах показывают отработанное, а не заученное знание.
root имеет неограниченный доступ к системе, а sudo даёт обычному пользователю повышенные права для конкретной команды.
- sudo записывает, кто запустил привилегированную команду, и создаёт журнал действий, которого нет при общем доступе к root.
- При постоянной работе под root любая ошибка выполняется с полными правами, поэтому опечатка в rm или сбойный скрипт могут повредить систему без дополнительной защиты.
- Безопаснее работать под личной учётной записью и вызывать sudo только для команд, которым нужны повышенные права.
Зачем это спрашивают: Аргументы про радиус поражения и аудит - то, что интервьюер ждёт сверх определений.
Проверка процесса в Linux начинается с поиска процесса и его PID, после чего его останавливают наименее жёстким сигналом.
- ps aux и top показывают процессы, PID, загрузку CPU и памяти, а pgrep ищет процесс по имени.
- kill PID отправляет SIGTERM и позволяет процессу корректно завершиться и освободить ресурсы.
- kill -9 отправляет неперехватываемый SIGKILL и используется только в крайнем случае, потому что мгновенная остановка может пропустить очистку, повредить данные или оставить блокировки.
Зачем это спрашивают: Понимание, почему SIGKILL - последнее средство, а не дефолт, - то суждение, которое проверяется.
Сервисы 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 считает совпавшие строки лога.
Зачем это спрашивают: Флаги контекста и комбинирование инструментов через пайпы показывают беглость дальше одиночных заученных команд.
Пайпы в шелле соединяют команды, а перенаправление отправляет их обычный вывод и ошибки в файлы.
- Пайп передаёт stdout одной команды следующей, поэтому cat app.log | grep error | wc -l считает строки со словом error.
- Оператор > перезаписывает файл, а >> дописывает данные в конец.
- 2>&1 объединяет stderr со stdout, чтобы ошибки сохранялись вместе с обычным выводом и не терялись незаметно в cron-задачах и CI-скриптах.
Зачем это спрашивают: Понимание 2>&1 и мест, где кусается потерянный stderr, - примета человека, отлаживавшего тихие сбои.
Иерархия файловой системы Linux задаёт стандартные места для конфигурации, изменяемых данных, пользовательских файлов, временных данных и программ.
- /etc хранит конфигурацию, а /var содержит изменяемые данные, включая логи в /var/log.
- /home содержит каталоги пользователей, а /tmp служит временным рабочим пространством, которое может очищаться при перезагрузке.
- /usr и /bin содержат программы; знание этих путей помогает на незнакомом сервере сначала искать настройки сервиса в /etc, а причины сбоев в /var/log.
Зачем это спрашивают: Быстрая ориентация на незнакомом сервере - практический навык, за которым стоит эта словарная проверка.
При заполнении диска нужно найти затронутую файловую систему, безопасно освободить место и предотвратить повторение.
- df -h определяет заполненную файловую систему, а команды вроде du -sh /var/* вместе с sort находят самые крупные каталоги.
- Частые причины: разросшиеся логи, старые резервные копии и артефакты Docker; логи нужно ротировать или обрезать, а кеши пакетов и контейнеров чистить их штатными инструментами.
- Нельзя вслепую удалять файл, который всё ещё открыт работающим процессом, потому что место освободится только после закрытия файла процессом.
- Ротация логов и алерты на использование диска позволяют отреагировать до достижения 100 процентов.
Зачем это спрашивают: Тонкость с открытыми файловыми дескрипторами и профилактика в конце поднимают ответ над пересказом команд.
Переменные окружения представляют собой настройки процесса в виде пар ключ-значение, а PATH определяет, где шелл ищет команды.
- Процессы наследуют переменные окружения при запуске и часто получают через них URL баз данных, API-ключи и переключатели режимов вместо зашитой в код конфигурации.
- PATH содержит список каталогов с командами, поэтому установленный вне этих каталогов исполняемый файл всё равно может вызвать ошибку command not found.
- export в одном терминале не обновляет уже работающий сервис, потому что его окружение было задано при запуске процесса.
Зачем это спрашивают: Инсайт про область процесса, почему работающий сервис не видит ваш export, - маркер глубины здесь.
SSH представляет собой шифрованный протокол удалённого доступа к шеллу, а аутентификация по ключам безопаснее входа по паролю.
- Приватный ключ остаётся на клиентской машине, а соответствующий публичный ключ размещается на сервере.
- Ключи защищают от перебора паролей и не вводятся каждый раз там, где их могут подсмотреть; отключение входа по паролю устраняет частый путь атаки на доступные из интернета серверы.
- Приватный ключ никогда не покидает клиент и должен быть дополнительно защищён парольной фразой.
Зачем это спрашивают: Пункт про приватный-ключ-не-путешествует подтверждает реальное понимание модели ключей, а не ритуальное использование.
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 преобразует имена вроде api.example.com в IP-адреса и кеширует результаты.
- Резолвер сначала проверяет доступные кеши, а затем проходит цепочку корневых, TLD и авторитетных DNS-серверов домена.
- A-запись сопоставляет имя с IPv4-адресом, а CNAME делает одно имя псевдонимом другого.
- Каждый ответ кешируется на время TTL, поэтому старые значения сохраняются до истечения кеша и изменения DNS распространяются не мгновенно.
Зачем это спрашивают: Кеширование и TTL как причина неммгновенных изменений - практически важная часть ответа.
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 превращает знание портов в инструмент отладки.
HTTPS представляет собой HTTP, защищённый TLS-шифрованием и проверкой подлинности сервера.
- Сервер предъявляет сертификат, выданный доверенным центром сертификации, чтобы подтвердить свою подлинность.
- Во время TLS-рукопожатия клиент проверяет цепочку сертификатов, а стороны создают сессионные ключи для шифрования дальнейшего трафика.
- Сертификаты истекают, поэтому важно автоматическое продление, например через Let's Encrypt; браузеры могут отклонить сервис с просроченным сертификатом, что для пользователей равносильно недоступности.
Зачем это спрашивают: Упоминание истечения и автопродления связывает теорию с инцидентами, с которыми реально сталкиваются команды эксплуатации.
Балансировщик нагрузки распределяет входящие запросы между несколькими экземплярами сервиса.
- Распределение трафика между экземплярами увеличивает общую пропускную способность.
- Проверки состояния выводят неисправные экземпляры из ротации и повышают доступность.
- Стабильный внешний адрес позволяет добавлять, удалять и обновлять экземпляры за ним, что делает возможным поэтапный деплой без простоя.
Зачем это спрашивают: Названные health-чеки и свойство стабильного адреса показывают понимание, почему балансировщики делают возможной эксплуатацию без даунтайма.
curl помогает разделить проблемы DNS, TLS, соединения и приложения, показывая точный ответ веб-эндпоинта.
- curl -I https://api.example.com/health быстро возвращает статус и заголовки, а -v показывает полный обмен, включая детали TLS и запроса.
- Параметр -w с переменными времени показывает источник задержки, а -H вместе с -d позволяет воспроизвести аутентифицированный POST-запрос клиента.
- Сравнение этих результатов из разных точек помогает понять, сломан сам сервис или сетевой путь от пользователя.
Зачем это спрашивают: Использование curl для разделения слоёв сети, TLS и приложения - тот навык отладки, который проверяется.
Файрвол ограничивает сетевую доступность, пропуская только трафик, который соответствует явным правилам.
- Правила фильтруют трафик по адресу источника, протоколу и порту, а всё неразрешённое отбрасывается.
- Облачные security groups выполняют эту роль для привязанных инстансов и обычно хранят состояние соединения, поэтому обратный трафик разрешённого соединения проходит автоматически.
- При запрете по умолчанию порт 443 можно открыть всем, 22 только доверенным адресам, а порты базы только группе приложения; каждому открытому правилу нужна ясная причина, потому что оно увеличивает поверхность атаки.
Зачем это спрашивают: Мышление default-deny с конкретными примерами правил отличает осознание безопасности от теории.
Обратный прокси принимает запросы клиентов и передаёт их бэкенд-приложениям за единой точкой входа.
- 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