Если вы готовитесь к собеседованию по DevOps / SRE (Development & Operations — разработка и эксплуатация ПО) или SRE (Software Requirements Engineering — обеспечение надежности информационных систем), заучивание определений не поможет вам преуспеть.

Большинство собеседований по DevOps проверяют не то, что вы знаете, а то, как вы мыслите в момент, когда что-то выходит из строя.

Умея диагностировать реальные проблемы в продакшен-среде, вы мгновенно выделитесь на фоне конкурентов.

Вот 20 практических вопросов для собеседования по DevOps с четкими, применимыми на практике ответами, которые помогут вам готовиться умнее, а не усерднее.

Kubernetes и контейнеры

1. Pod запущен, но возвращает код ошибки 503 (Service Unavailable — сервис недоступен). Как вы будете выполнять отладку?

Выполняйте слой за слоем:

  • Pod (Под — минимальная развертываемая единица в Kubernetes) → проверьте логи, состояние приложения, настройки зонда готовности, возможные проблемы конфигурации.
  • Service (Сервис — абстракция для доступа к подам) → проверьте конечные точки и селекторы меток.
  • Ingress (объект Kubernetes для управления внешним доступом к сервисам) → проверьте правила маршрутизации, настройки TLS (Transport Layer Security — протокол шифрования). 

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

2. Как работает планирование в Kubernetes?

Планировщик, назначающий поды на узлы (scheduler), работает в два этапа:

  1. Фильтрация (Filtering) — удаление узлов, не соответствующих требованиям.
  2. Оценка (Scoring) — ранжирование наилучшего узла на основе ресурсов и правил.

Сбои происходят из-за недостатка ресурсов, меток загрязнения (taints — запрет на размещение подов), правил совместимости/несовместимости (affinity/anti-affinity rules) или проблем с хранилищами.

3. Как выполнять развертывание с нулевым временем простоя (zero-downtime) для stateful-приложений (приложений с сохранением состояния)?

  • Используйте StatefulSet (контроллер для управления stateful-приложениями) с контролируемым постепенным обновлением.
  • Убедитесь, что изменения схемы базы данных обратно совместимы.
  • Используйте реплики (replicas — копии с данными) или резервные узлы (standby nodes).

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

4. Как работают CNI-плагины?

CNI-плагины (Container Network Interface — интерфейс для настройки сети контейнеров) назначают IP-адреса подам и настраивают сеть так, чтобы поды могли взаимодействовать между узлами. Они создают виртуальные сетевые интерфейсы и устанавливают правила маршрутизации между узлами.

CNI-плагины являются основой сетевой работы Kubernetes. Распространенные примеры: Calico, Flannel и Cilium.

5. Как диагностировать периодические перезапуски пода при отсутствии логов?

  • Проверьте события с помощью команды kubectl describe pod.
  • Обратите внимание на OOMKilled (Out Of Memory Killed — процесс уничтожен из-за нехватки памяти) или сбои проверок зондов.
  • Проверьте состояние узла (нагрузку на ЦП, использование памяти, давление на дисковое пространство).

Если логи отсутствуют, проблема часто связана с нехваткой ресурсов или проблемами на уровне узла.

CI/CD и производительность

CI (Continuous Integration) — непрерывная интеграция. 

CD (Continuous Delivery) — непрерывная доставка.

6. Пайплайн собирает 50 образов за 20 минут. Как сократить это время до менее чем 5 минут?

  • Запускайте сборки параллельно.
  • Используйте кэширование слоев Docker.
  • Избегайте пересборки неизмененных образов.
  • Применяйте более быстрые сборщики образов, например BuildKit.

Наибольший выигрыш дают параллелизация и кэширование.

7. Как спроектировать защищенный CI/CD-пайплайн?

  • Храните секреты (secrets — конфиденциальные данные: пароли, токены, ключи) в защищенном менеджере, таком как AWS Secrets Manager, Azure Key Vault, HashiCorp Vault и других (не в коде!).
  • Сканируйте образы на наличие уязвимостей.
  • Используйте RBAC (Role-Based Access Control управление доступом на основе ролей).
  • Подписывайте артефакты (результаты сборки) перед развертыванием.

Безопасность должна быть встроена на каждом этапе.

8. Пайплайн работает в тестовой среде, но дает сбой в продакшен-среде. В чем причина?

  • Сравните переменные среды и конфигурационные файлы.
  • Проверьте секреты и внешние зависимости.
  • Ищите различия в сетевых настройках или правах доступа.

Большинство проблем возникает из-за несоответствия сред.

Облачные технологии и инфраструктура

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

При использовании Amazon Web Services:

  • Развертывание системы в нескольких регионах.
  • Использование глобального балансировщика нагрузки для маршрутизации трафика.
  • Реплицирование данных между регионами.

Компромисс: обеспечение более высокой доступности за счет возможной несогласованности данных.

10. Счет за AWS вырос в 3 раза за одну ночь. Что делать?

  • Проверьте Cost Explorer (инструмент AWS для анализа затрат), чтобы найти источник.
  • Ищите всплески трафика или новые ресурсы.
  • Распространенные причины: неисправности автоматического масштабирования, неверно настроенные задания, использование экземпляров неоптимального размера.

Всегда настраивайте оповещения о расходах (billing alerts), чтобы обнаружить проблему на ранней стадии.

11. Как избежать расхождения между командами в настройках Terraform?

При использовании Terraform (инструмента для управления инфраструктурой как кодом):

  • Используйте удаленное состояние (remote state) с блокировками.
  • Запускайте terraform plan в CI-пайплайнах.
  • Ограничьте ручные изменения в облаке.

Цель: поддерживать синхронизацию фактической инфраструктуры и ее кода.

12. Выполнение terraform apply прервалось на полпути. Как восстановиться?

  • Проверьте файл состояния Terraform.
  • Определите частично созданные ресурсы.
  • При необходимости используйте импорт или ручное исправление.

Никогда не перезапускайте вслепую — сначала исправьте состояние.

Безопасность и секреты

13. Как обеспечить безопасное управление секретами при масштабировании?

  • Используйте централизованные инструменты (Vault / Secrets Manager).
  • Предоставляйте доступ через роли.
  • Регулярно выполняйте ротацию секретов (смену значений).

Никогда не храните секреты в коде или образах.

14. Система прошла сканирования уязвимостей, но была скомпрометирована. Почему?

Потому что одних сканирований недостаточно. Отсутствующие уровни защиты могут включать:

  • Безопасность времени исполнения (runtime security).
  • Сетевые ограничения.
  • Мониторинг и системы оповещения.

Безопасность должна быть многоуровневой, основанной на принципе эшелонированной защиты (defense in depth).

Наблюдаемость и надежность

15. Как спроектировать наблюдаемость системы?

  • Метрики (metrics) — производительность системы.
  • Логи (logs) — подробно описанные события.
  • Трассировки (traces) — поток запросов между сервисами.

В совокупности они помогают быстро определить корневую причину проблемы.

16. Как настроить оповещения на основе SLO без шума (лишних ложных срабатываний)?

  • Определите SLO (Service Level Objectives — целевые уровни обслуживания), например, время безотказной работы (uptime), задержку (latency).
  • Оповещайте только в случае угрозы нарушения SLO.

Ориентируйтесь на последствия для пользователей, а не на сырые метрики.

17. Всплески задержки возникают каждые 60 секунд. Как выполнить диагностику?

Ищите повторяющиеся шаблоны:

  • Задания по расписанию (cron jobs).
  • Сборку мусора (garbage collection).
  • Фоновые задачи базы данных.

Регулярные всплески обычно указывают на запланированную активность.

Продакшен-среда и обработка инцидентов

18. Система в продакшен-среде недоступна. Назовите первые 5 шагов.

  1. Проверьте панели мониторинга.
  2. Определите затронутые сервисы.
  3. Отмените недавние изменения.
  4. Снизьте влияние инцидента.
  5. Сообщите команде.

Сохраняйте спокойствие и действуйте системно.

19. Как спроектировать механизм плавного снижения производительности (graceful degradation)?

  • Используйте резервные ответы (fallback responses — возврат заранее заданных значений вместо недоступных данных).
  • Включите кэширование.
  • Применяйте механизм защиты от перегрузок (circuit breakers).

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

20. Как выполнить обновление Kubernetes с нулевым временем простоя?

В Kubernetes:

  • Обновляйте узлы постепенно.
  • Безопасно освобождайте ресурсы узлов.
  • Используйте PDB (PodDisruptionBudget  — механизм, гарантирующий минимальное количество доступных подов).

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

Заключение

На собеседованиях по DevOps выигрышное мышление проявляет себя в практическом подходе к любой проблеме «Вот как я выполнил бы диагностику и исправил эту проблему в условиях продакшен-среды».

Именно это отличает того, кто знает DevOps, от того, кто умеет работать с DevOps в продакшен-среде.


Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Riya Sharma: 20 DevOps Interview Questions That Reveal How You Think in Production

Предыдущая статья7 библиотек Python, заменяющих целые компоненты бэкенда