Подготовка к собеседованию — DevOps-инженер
Колода из 210+ карточек с вопросами для собеседования по направлению «DevOps-инженер» — по темам и уровню сложности, с повторениями по вашим оценкам. Посмотрите несколько карточек ниже, затем выберите доступ, чтобы учить всё направление по расписанию в стиле Anki (SM-2).
Новым подписчикам месяца или года может быть доступно 7 дней бесплатно. Условия и сумму подтвердит страница оплаты.
С чего начать
Нужны уверенная работа с терминалом, основы Linux и HTTP/сетей. В примерах используются команды оболочки, конфигурационные файлы и Python; дополняйте карточки практикой с инфраструктурой.
Первый проход: DevOps и инфраструктура → Основы CS. Начните с базовых вопросов в этих модулях, затем продолжайте по плану. К сложным и senior-вопросам возвращайтесь по требованиям вакансии; все карточки доступны с самого начала.
Общие темы могут входить в несколько направлений и сохраняют одну историю повторений. План ниже отмечает общие основы и профильные модули; выбирайте глубину под свою вакансию.
Что внутри
Все темы направления, сгруппированные так, как вы будете их учить.
DevOps и инфраструктура
35 карточекОбщие основы
Основы CS
33 карточкиОбщие основы
Linux и траблшутинг
11 карточекПрофильный модуль
Сети в эксплуатации
10 карточекПрофильный модуль
Внутренности контейнеров
8 карточекПрофильный модуль
Kubernetes
13 карточекПрофильный модуль
CI/CD и GitOps
8 карточекПрофильный модуль
Terraform и Ansible (IaC)
8 карточекПрофильный модуль
Системный дизайн
29 карточекОбщие основы
Наблюдаемость и SRE
11 карточекПрофильный модуль
Облако и безопасность
9 карточекПрофильный модуль
Поведенческое интервью
35 карточекОбщие основы
Примеры вопросов
Несколько карточек из колоды — откройте ответ, затем выберите доступ, чтобы учить весь набор по расписанию.
Что такое Docker и какую проблему он решает?
Что такое Docker и какую проблему он решает?
Короткий ответ: Docker упаковывает приложение и его зависимости пользовательского пространства в образ, а затем запускает из него изолированный процесс. Это уменьшает различия между разработкой, CI и продакшеном.
Для Go-сервиса образ может содержать бинарник, сертификаты CA и необходимые динамические библиотеки. Совместимые ядро и архитектуру CPU предоставляет хост; конфигурация, секреты, лимиты ресурсов и внешние сервисы задаются отдельно.
docker build -t myapp:1.0 .
docker run -d -p 127.0.0.1:8000:8000 --name myapp myapp:1.0
docker logs -f myapp
Приложение должно слушать интерфейс контейнера, например :8000. Здесь порт опубликован только на loopback хоста для локальной работы.
Ограничение: одинаковый образ не гарантирует одинаковое поведение на любой машине. Linux-контейнеры на macOS/Windows обычно работают внутри Linux-VM; архитектура CPU, возможности ядра, сеть и внешняя конфигурация остаются важны. Собирай варианты для нужных платформ и проверяй реальное окружение запуска.
Источники: Документация 1, Документация 2.
Что такое модель OSI и какие у неё уровни?
Что такое модель OSI и какие у неё уровни?
Короткий ответ: OSI — это эталонная (теоретическая) модель, разбивающая сетевое взаимодействие на 7 уровней, где каждый уровень предоставляет услуги вышестоящему и пользуется услугами нижестоящего. На практике используется реже, чем TCP/IP, но удобна для обсуждения и диагностики.
Подробно:
Уровни снизу вверх (мнемоника: «Please Do Not Throw Sausage Pizza Away»):
| № | Уровень | Что делает | Единица данных | Примеры |
|---|---|---|---|---|
| 7 | Application (Прикладной) | Взаимодействие с приложением | Data | HTTP, DNS, FTP, SMTP |
| 6 | Presentation (Представления) | Кодирование, шифрование, сжатие | Data | TLS, JPEG, ASCII |
| 5 | Session (Сеансовый) | Установка/управление сессией | Data | sockets, RPC |
| 4 | Transport (Транспортный) | Доставка между процессами, порты | Segment (TCP)/Datagram (UDP) | TCP, UDP |
| 3 | Network (Сетевой) | Логическая адресация, маршрутизация | Packet | IP, ICMP |
| 2 | Data Link (Канальный) | Передача в пределах сегмента сети, MAC | Frame | Ethernet, Wi-Fi, ARP |
| 1 | Physical (Физический) | Биты по среде передачи | Bit | кабели, радио, оптика |
Каждый уровень при отправке добавляет свой заголовок (инкапсуляция), при получении — снимает его (декапсуляция). Например, HTTP-данные оборачиваются в TCP-сегмент, тот — в IP-пакет, тот — в Ethernet-кадр.
Схема инкапсуляции:
[ Ethernet [ IP [ TCP [ HTTP-данные ] ] ] ]
L2 L3 L4 L7
⚠️ Ловушка: TLS/шифрование часто относят к уровню 6 (Presentation) в OSI, но в реальной модели TCP/IP его помещают между транспортом и приложением. Не путайте «теоретический» уровень с практикой. Также MAC-адрес — это L2, а IP-адрес — L3; их часто смешивают.
free показывает почти ноль свободной памяти. Сервер задыхается без RAM?
free показывает почти ноль свободной памяти. Сервер задыхается без RAM?
Короткий ответ: Почти наверняка нет. Linux сознательно занимает «лишнюю» память под page cache — она отдаётся приложениям мгновенно. Смотреть надо на колонку available, а не free; о реальном дефиците говорят swap-in и major page faults.
Подробно:
| Метрика | Что означает | Тревожиться? |
|---|---|---|
| free | память, не занятая вообще ничем | нет — у здорового сервера близка к нулю |
| buff/cache | page cache: кэш файлов и блоков | нет — вытесняется по требованию |
| available | сколько реально можно выдать без свопа | да, если стабильно стремится к нулю |
- Пустая память — потерянная память — ядро кэширует диск, чтобы повторные чтения шли из RAM, а не с устройства.
- Реальные признаки дефицита — растущий si в
vmstat 1(swap-in), major page faults, срабатывания OOM-killer в dmesg.
free -h # смотрим available, не free
vmstat 1 5 # колонки si/so — идёт ли активный своппинг
⚠️ Частая ошибка: «свободной памяти нет — перезагрузим» или сброс кэша через drop_caches. Page cache — это фича: очистка только замедлит систему до повторного прогрева.
L4- vs L7-балансировка: что видит и что умеет каждый уровень?
L4- vs L7-балансировка: что видит и что умеет каждый уровень?
Короткий ответ: L4-балансировщик видит только IP и порт — раскидывает TCP/UDP-потоки, быстрый и дешёвый, но для него протокол непрозрачен. L7 разбирает HTTP: маршрутизация по пути и заголовкам, ретраи, терминация TLS, sticky-сессии — ценой CPU на парсинг.
Подробно:
| L4 | L7 | |
|---|---|---|
| Видит | IP:порт, SYN | метод, путь, заголовки, куки |
| Маршрутизация | round-robin/хэш по потокам | /api → один пул, /static → другой |
| Ретраи и таймауты | нет — не знает, где кончается запрос | per-request ретраи, circuit breaking |
| TLS | пропускает насквозь (passthrough) | терминация, X-Forwarded-For |
| Цена | почти нулевая, миллионы pps | парсинг HTTP: CPU и латентность |
Примеры: L4 — IPVS, AWS NLB; L7 — nginx, Envoy, AWS ALB. Частый каскад: L4 снаружи → L7 внутри.
⚠️ Частая ошибка: ждать от L4 ретраев и маршрутизации по пути — он не видит HTTP и в принципе не знает, где закончился один запрос и начался следующий.
Что такое контейнер на уровне ядра Linux и какие механизмы его реализуют?
Что такое контейнер на уровне ядра Linux и какие механизмы его реализуют?
Короткий ответ: Контейнер — это обычный процесс Linux, которому ядро подсунуло изолированный «вид» системы: неймспейсы прячут чужое, cgroups ограничивают ресурсы, слоёная файловая система даёт свой rootfs. Гостевого ядра нет — ядро одно на всех, и в этом настоящая разница с VM.
Подробно:
- Namespaces — изоляция видимости: каждый тип прячет свой кусок системы.
- cgroups — лимиты CPU, памяти, IO: сколько процессу можно, а не что он видит.
- Слоёный rootfs (overlayfs) — собственная файловая система поверх общих read-only слоёв образа.
| Неймспейс | Что изолирует |
|---|---|
| pid | дерево процессов: внутри свой PID 1 |
| net | сетевой стек: интерфейсы, маршруты, свои порты |
| mnt | точки монтирования, свой rootfs |
| uts | hostname и domainname |
| ipc | System V IPC, POSIX-очереди |
| user | маппинг UID/GID: root внутри ≠ root снаружи |
| cgroup | видимую иерархию cgroups |
⚠️ Частая ошибка: «контейнер — это лёгкая VM». У VM гипервизор и своё гостевое ядро; контейнер делит ядро хоста — поэтому стартует за миллисекунды, но изоляция слабее: уязвимость ядра пробивает все контейнеры сразу.
Что происходит после kubectl apply -f deployment.yaml? Опишите всю цепочку до работающего пода.
Что происходит после kubectl apply -f deployment.yaml? Опишите всю цепочку до работающего пода.
Короткий ответ: kubectl валидирует манифест и отправляет его в API server: authn → RBAC → admission-вебхуки → запись в etcd. На этом синхронная часть заканчивается — дальше контроллеры, scheduler и kubelet асинхронно замечают изменения через watch и приводят кластер к желаемому состоянию. Никто ничего не «пушит».
Подробно:
- API server — аутентификация, авторизация (RBAC), admission (mutating → validating вебхуки), объект сохранён в etcd.
- Deployment-контроллер — видит новый Deployment (watch) и создаёт ReplicaSet.
- ReplicaSet-контроллер — создаёт Pod-объекты, пока без ноды.
- Scheduler — находит поды с пустым nodeName, фильтрует и скорит ноды, делает bind.
- kubelet — на выбранной ноде видит «свой» под: тянет образы, запускает контейнеры через CRI, сеть поднимает CNI-плагин.
- Readiness — проба прошла → под попадает в EndpointSlice и получает трафик.
kubectl ──► API server (authn → RBAC → admission) ──► etcd
▲ watch ▲ watch ▲ watch ▲ watch
deploy-ctrl → RS rs-ctrl → Pods scheduler → bind kubelet → CRI/CNI
⚠️ Частая ошибка: «API server шедулит под и запускает контейнеры». Он только хранит и раздаёт состояние — всю работу делают независимые контроллеры по модели watch/reconcile.
Готовы лучше запоминать?
Посмотрите пример, выберите направление и настройте регулярную практику под свою подготовку.
Вопросы об этом направлении
Как готовиться к собеседованию на «DevOps-инженер»?
Учите концепции, которые придётся объяснять, а не только те, что умеете кодить. Направление «DevOps-инженер» в RecallDeck даёт 210+ отобранных вопросов и возвращает каждый по расписанию в стиле Anki (SM-2), основанному на ваших оценках — чтобы тренировать вспоминание и объяснение. Дополняйте повторения кодингом и пробными собеседованиями.
Какие темы охватывает направление «DevOps-инженер»?
Направление «DevOps-инженер» разбито на ключевые области, которые реально проверяют на таких собеседованиях, — по темам и уровню сложности (Concept, Junior, Middle, Senior). Полный план и примеры вопросов можно посмотреть выше до входа.
Помогает ли интервальное повторение в подготовке к «DevOps-инженер»?
Да. Активное вспоминание и честная самооценка помогают закреплять знания. RecallDeck назначает повторения карт по направлению «DevOps-инженер» на основе ваших оценок: знакомые карты возвращаются реже, а сложные получают больше практики.
Можно попробовать направление «DevOps-инженер» до оплаты?
Новым подписчикам месячного или годового тарифа может быть доступен пробный период семь дней со всем направлением «DevOps-инженер» и всеми функциями. Право на него и сумму подтвердит страница оплаты; при повторной подписке списание может быть сразу. Отмените подписку онлайн до конца пробного периода, чтобы избежать первого списания. У вечного доступа пробного периода нет.