Собеседование DevOps в 2026-м редко проваливается из-за «не назвал все 40 инструментов из вакансии». Чаще ломается другое: человек помнит команды kubectl, но не может рассказать инцидент: что упало, как поняли, что сделали, что изменили в пайплайне после. Нанимающий покупает вероятность, что вы не сделаете из релиза лотерею и не будете героем в одиночку в три часа ночи.
Ниже — блоки экрана, полные ответы про Linux, CI, контейнеры и инцидент, и как готовить истории, а не только шпаргалку команд. Общий каркас — вопросы на собеседовании. Карта без культа бейджей — в что должен знать DevOps. Слоты: вакансии DevOps.
Коротко:
- Linux, сети и «почему сервис не слушает порт» важнее десятого пункта в списке Helm-чартов.
- CI спрашивают как поставку: что ломает пайплайн, кто откатывает, где секреты.
- Контейнеры — образ, слои, почему «works on my machine» умер, не «docker run как магия».
- Инцидент готовьте как STAR: сигнал, гипотеза, действие, постмортем без яда.
- Junior не обязан быть platform lead. Честная граница сильнее выдуманного Kubernetes-космоса.
Как читать вакансию: не готовить не тот контур
Выпишите: облако или свои серверы, CI-система, Kubernetes да/нет, онкол, размер команды. Если в тексте Docker Compose и Jenkins на паре сервисов — не учите неделю операторы Kubernetes «на всякий случай». Если слот platform/SRE — будут SLO и инциденты, это уже соседняя роль. Сверьтесь с резюме DevOps: что написали в стеке, то и будут копать.
Junior: один пайплайн, один сервис в контейнере, базовый Linux, простой инцидент «диск забился / сертификат истёк». Middle: несколько сервисов, откат, секреты, наблюдение. Senior: границы ответственности, стоимость простоя, как не стать единственным человеком на контур.
Не готовьте Terraform-модуль на всю компанию, если в вакансии «допилить Jenkins и Docker». Не готовьте только bash, если в тексте Kubernetes и онкол. Вторая ошибка — список из 40 логотипов в CV: вас попросят любой, и пустой ответ по Helm после «эксперт Kubernetes» закрывает экран. Лучше три инструмента с историей, чем музей бейджей. Облако: один контур, который поднимали руками — сеть, ВМ или managed k8s, секрет, бэкап мысли на уровне «как восстановим» — сильнее курса с слайдами.
Linux и сети: сценарий, не man page
Типовой вопрос: «сервис не открывается снаружи, на машине вроде запущен. Куда смотрите?»
Сначала: слушает ли процесс порт, тот ли порт, localhost или 0.0.0.0. ss или netstat, потом локальный curl на порт. Если локально живо, а снаружи нет — файрвол, security group, неправильный upstream в балансировщике, DNS на старый IP. Смотрю логи юнита: упал сразу после старта из-за нехватки файла конфигурации — это не «сеть сломалась».
Диск и inode: сервис пишет логи в /var и диск 100% — процесс жив, писать некуда, внешне «тупит». Память: OOM, рестарт в цикле. Не начинаю с tcpdump, пока не закрыл слушает / не слушает. tcpdump — когда уже ясно, что пакет доходит или не доходит.
Граница: тонкости conntrack в NAT могу нарисовать на пальцах, но на этом слоте сначала порт, юнит, диск, группа безопасности. Не обещаю «сейчас найду в ядре», если не смотрел.
Follow-up: DNS TTL, TLS-сертификат, time skew для Kerberos/JWT — держите по одной фразе, если это в вакансии.
CI/CD: поставка, не зелёная галочка
Спросят: что у вас в пайплайне, кто жмёт prod, как откатываете, где секреты.
Типичный контур, который я закрывал: линт и тесты на PR, сборка образа по git sha, деплой на стейдж автоматически, на прод — руками или по тегу с approval. Секреты не в репозитории: в хранилище CI или в менеджере секретов, в лог не печатаем. Артефакт неизменяемый: тот же digest, который прошёл стейдж, уезжает на прод, не «ещё раз соберём на проде, вдруг повезёт».
Откат: предыдущий известный digest, не «починим вперёд на горячую», если нет миграции, которую нельзя откатить. Если миграция вперёд-only — это отдельно в README и в критерии релиза, не сюрприз в три часа. Флаки: карантин теста с тикетом, не mute навсегда без хозяина.
Что ломает пайплайн чаще, чем Kubernetes: протухший токен в registry, зависимость от «latest», ручной шаг, который один человек помнит. Это я и чинил: убрали latest, повесили digest, добавили проверку, что образ существует, до деплоя.
Не рисуйте идеальный GitOps, если у вас был Jenkins с двумя джобами. Честный маленький контур сильнее чужой схемы из блога.
Спросят про IaC. Если Terraform/Ansible в резюме — один модуль: что создаёт, как не храните стейт в git, как накатываете на стейдж. Если нет — «конфиг в репозитории манифестов, руками не правим прод». Не стыдно. Стыдно «я кликаю в консоли и как-то живём» без плана, как это менять. Баш на экране: прочитайте чужой скрипт, найдите set -e, незакавыченный путь, curl без -f. Это ближе к работе, чем написать fizzbuzz.
Контейнеры и оркестрация по факту резюме
Docker: зачем multi-stage, почему не root в проде, что даёт HEALTHCHECK, чем COPY . опасен без dockerignore. Compose — зависимость, сеть, volume для разработки, не «прод на одной ВМ навсегда». Kubernetes — только если он в вакансии: под, проба, лимиты, зачем не latest, чем rolling отличается от recreate на одном реплике.
Образ собираю от не-root, зависимости отдельно от кода, чтобы слой кэша жил. В прод не тащу компилятор и .git. Тег — git sha. Если в Kubernetes: requests/limits по памяти, иначе соседи съедят ноду; liveness не должен бить тяжёлый запрос к базе каждую секунду — это уже самоDDoS. Рестарт из-за пробы, которая ходит в зависимость, которая ещё поднимается — классика, initialDelay или раздельные readiness/liveness.
Чего не делаю на junior-слоте: не проектирую service mesh «потому что модно». Если в вакансии два сервиса и Compose — так и готовлю.