Вопросы и ответы для собеседования Junior DevOps Engineer

Milad Bonakdar
Автор
Подготовьтесь с практическими вопросами по Linux troubleshooting, Git, CI/CD, Docker, облаку, Terraform, мониторингу, Kubernetes и Bash.
Краткий вывод
На собеседовании Junior DevOps обычно проверяют, умеете ли вы спокойно разбирать инциденты, объяснять поток доставки ПО и безопасно работать с инструментами, близкими к production. Ожидайте вопросы по Linux-сервисам и логам, Git, CI/CD, Docker, облакам, Terraform, мониторингу, Kubernetes, управлению конфигурацией и Bash.
Используйте это руководство, чтобы тренировать не только ответы, но и ход мыслей: что проверить первым, какие логи открыть, когда откатываться и когда просить больше контекста.
Основы Linux
1. Объясните, какие общие команды Linux вы используете ежедневно в качестве DevOps инженера.
Ответ: Основные команды Linux для работы DevOps:
Распространенность: Очень часто
Сложность: Легко
2. Как вы устраняете проблему, когда служба не запускается в Linux?
Ответ: Систематический подход к устранению неполадок:
Общие проблемы:
- Ошибки синтаксиса конфигурации
- Порт уже используется
- Отказ в доступе
- Отсутствующие зависимости
- Недостаточно места на диске
Распространенность: Очень часто
Сложность: Средне
Контроль версий с помощью Git
3. Объясните основной рабочий процесс Git и общие команды.
Ответ: Рабочий процесс Git для ежедневных задач DevOps:
Лучшие практики:
- Пишите понятные сообщения к коммитам
- Часто коммитьте, регулярно отправляйте
- Используйте ветки для разработки
- Получайте обновления перед отправкой
- Проверяйте изменения перед коммитом
Распространенность: Очень часто
Сложность: Легко
4. Как вы разрешаете конфликт слияния в Git?
Ответ: Пошаговое разрешение конфликта:
Маркеры конфликтов:
<<<<<<< HEAD- Ваша текущая ветка=======- Разделитель>>>>>>> branch-name- Входящие изменения
Распространенность: Часто
Сложность: Легко-Средне
Основы CI/CD
5. Что такое CI/CD и почему это важно?
Ответ: CI/CD расшифровывается как Continuous Integration и Continuous Deployment/Delivery (Непрерывная интеграция и Непрерывное развертывание/доставка).
Continuous Integration (CI):
- Автоматическая сборка и тестирование кода при каждом коммите
- Обнаружение ошибок на ранней стадии
- Обеспечение правильной интеграции кода
Continuous Deployment (CD):
- Автоматическое развертывание в production после успешного прохождения тестов
- Более быстрые циклы выпуска
- Уменьшение количества ручных ошибок
Преимущества:
- Более быстрые циклы обратной связи
- Уменьшение проблем с интеграцией
- Автоматизированное тестирование
- Последовательные развертывания
- Более быстрое время выхода на рынок
Распространенность: Очень часто
Сложность: Легко
6. Объясните базовый CI/CD пайплайн с использованием GitHub Actions.
Ответ: Пример рабочего процесса GitHub Actions:
Основные концепции:
- Триггеры: Когда запускается пайплайн (push, PR, по расписанию)
- Jobs: Независимые задачи, которые могут выполняться параллельно
- Steps: Отдельные команды в рамках задания
- Artifacts: Файлы, передаваемые между заданиями
Распространенность: Очень часто
Сложность: Средне
Docker и контейнеризация
7. Что такое Docker и зачем мы используем контейнеры?
Ответ: Docker — это платформа для разработки, доставки и запуска приложений в контейнерах.
Контейнеры vs Виртуальные машины:
- Контейнеры используют ядро ОС хоста (легкие)
- Виртуальные машины включают полную ОС (тяжелые)
- Контейнеры запускаются за секунды
- Лучшее использование ресурсов
Преимущества:
- Согласованность: Одинаковая среда везде
- Изоляция: Приложения не мешают друг другу
- Переносимость: Запуск где угодно
- Эффективность: Легкие и быстрые
Распространенность: Очень часто
Сложность: Легко
8. Объясните общие команды Docker.
Ответ: Основные команды Docker:
Распространенность: Очень часто
Сложность: Легко
9. Напишите файл Docker Compose для веб-приложения с базой данных.
Ответ: Пример многоконтейнерного приложения:
Основные концепции:
- services: Определить контейнеры
- depends_on: Зависимости сервисов
- volumes: Постоянное хранилище данных
- environment: Переменные окружения
- ports: Отображение портов
- restart: Политика перезапуска
Распространенность: Часто
Сложность: Средне
Основы Cloud
10. Объясните разницу между IaaS, PaaS и SaaS.
Ответ: Модели облачных сервисов:
IaaS (Infrastructure as a Service):
- Предоставляет: Виртуальные машины, хранилище, сети
- Вы управляете: ОС, средой выполнения, приложениями
- Примеры: AWS EC2, Azure VMs, Google Compute Engine
- Вариант использования: Полный контроль над инфраструктурой
PaaS (Platform as a Service):
- Предоставляет: Среду выполнения, базы данных, промежуточное ПО
- Вы управляете: Приложениями и данными
- Примеры: AWS Elastic Beanstalk, Heroku, Google App Engine
- Вариант использования: Сосредоточьтесь на коде, а не на инфраструктуре
SaaS (Software as a Service):
- Предоставляет: Готовые приложения
- Вы управляете: Данными пользователей и настройками
- Примеры: Gmail, Salesforce, Office 365
- Вариант использования: Готовые к использованию приложения
Распространенность: Часто
Сложность: Легко
11. Какие базовые сервисы AWS должен знать DevOps инженер?
Ответ: Основные сервисы AWS:
Вычислительные ресурсы:
- EC2: Виртуальные серверы
- Lambda: Бессерверные функции
- ECS/EKS: Оркестрация контейнеров
Хранилище:
- S3: Объектное хранилище
- EBS: Блочное хранилище для EC2
- EFS: Общее файловое хранилище
Сеть:
- VPC: Виртуальное частное облако
- Route 53: DNS сервис
- CloudFront: CDN
- ELB: Балансировка нагрузки
База данных:
- RDS: Управляемые реляционные базы данных
- DynamoDB: NoSQL база данных
Инструменты DevOps:
- CodePipeline: CI/CD сервис
- CodeBuild: Сервис сборки
- CloudWatch: Мониторинг и логирование
- IAM: Управление доступом
Пример: Запуск экземпляра EC2 с помощью AWS CLI:
Распространенность: Очень часто
Сложность: Средне
Инфраструктура как код
12. Что такое Infrastructure as Code (IaC) и почему это важно?
Ответ: IaC — это управление инфраструктурой с помощью кода, а не ручных процессов.
Преимущества:
- Контроль версий: Отслеживание изменений инфраструктуры
- Воспроизводимость: Создание идентичных сред
- Автоматизация: Уменьшение количества ручных ошибок
- Документация: Код служит документацией
- Согласованность: Одинаковая конфигурация везде
Популярные инструменты IaC:
- Terraform: Мультиоблачное развертывание
- Ansible: Управление конфигурацией
- CloudFormation: Специфично для AWS
- Pulumi: IaC на основе кода
Пример Terraform:
Распространенность: Очень часто
Сложность: Средне
13. Объясните базовый рабочий процесс Terraform.
Ответ: Этапы рабочего процесса Terraform:
Структура файлов Terraform:
Пример переменных:
Распространенность: Часто
Сложность: Средне
Мониторинг и логирование
14. Какие метрики вы бы отслеживали для веб-приложения?
Ответ: Ключевые метрики мониторинга:
Метрики приложения:
- Время ответа / задержка
- Частота запросов (запросов в секунду)
- Частота ошибок (4xx, 5xx ошибки)
- Пропускная способность
Системные метрики:
- Использование ЦП
- Использование памяти
- Дисковый ввод-вывод
- Сетевой ввод-вывод
Метрики инфраструктуры:
- Статус контейнера/пода
- Доступность сервиса
- Здоровье балансировщика нагрузки
Пример запроса Prometheus:
Пороговые значения оповещений:
- Время ответа > 500 мс
- Частота ошибок > 1%
- Использование ЦП > 80%
- Использование памяти > 85%
- Использование диска > 90%
Распространенность: Часто
Сложность: Средне
15. Как вы централизуете логи с нескольких серверов?
Ответ: Архитектура централизованного логирования:
Общий стек (ELK):
- Elasticsearch: Хранение и индексация логов
- Logstash/Fluentd: Сбор и обработка логов
- Kibana: Визуализация и поиск логов
Пример конфигурации Filebeat:
Лучшие практики:
- Использовать структурированное логирование (JSON)
- Включать идентификаторы корреляции
- Устанавливать политики хранения
- Индексировать стратегически
- Мониторить объем логов
Распространенность: Часто
Сложность: Средне
Основы Kubernetes
16. Что такое Kubernetes и каковы его основные компоненты?
Ответ: Kubernetes — это платформа оркестрации контейнеров, которая автоматизирует развертывание, масштабирование и управление контейнеризированными приложениями.
Основные компоненты:
Control Plane:
- API Server: Точка входа для всех команд
- etcd: Хранилище ключей-значений для данных кластера
- Scheduler: Назначает поды узлам
- Controller Manager: Поддерживает желаемое состояние
Worker Nodes:
- kubelet: Управляет подами на узле
- kube-proxy: Сетевая маршрутизация
- Container Runtime: Запускает контейнеры через CRI runtime, например containerd или CRI-O
Основные объекты Kubernetes:
1. Pod:
2. Deployment:
3. Service:
Общие команды kubectl:
Распространенность: Очень часто
Сложность: Легко
Управление конфигурацией
17. Объясните основы Ansible и напишите простой плейбук.
Ответ: Ansible — это инструмент управления конфигурацией без агентов, который использует SSH для настройки серверов.
Основные концепции:
- Inventory: Список серверов для управления
- Playbook: YAML файл, определяющий задачи
- Modules: Многократно используемые единицы работы
- Roles: Организованный набор задач
Файл Inventory:
Простой плейбук:
Пример шаблона:
Запуск плейбуков:
Структура ролей Ansible:
Использование ролей:
Ad-hoc команды:
Распространенность: Часто
Сложность: Средне
Скриптинг и автоматизация
18. Напишите bash скрипт для автоматизации общей задачи DevOps.
Ответ: Bash скриптинг необходим для автоматизации в DevOps.
Пример 1: Скрипт резервного копирования
Пример 2: Скрипт проверки работоспособности
На собеседовании можно показать более короткий скрипт, если вы объясняете обработку ошибок, exit codes, логирование и безопасную проверку автоматизации.
Распространенность: Очень часто
Сложность: Средне
Заключение
Подготовьте небольшой end-to-end проект: Git-репозиторий, тесты, CI workflow, Dockerfile, простой деплой и несколько логов или метрик. Для junior-позиции важнее показать аккуратный подход к диагностике, чем перечислить команды без контекста.


