Направление

Подготовка к собеседованию — DevOps-инженер

Колода из 210+ карточек с вопросами для собеседования по направлению «DevOps-инженер» — по темам и уровню сложности, с повторениями по вашим оценкам. Посмотрите несколько карточек ниже, затем выберите доступ, чтобы учить всё направление по расписанию в стиле Anki (SM-2).

210 карточек12 тем
Посмотреть цены и начать

Новым подписчикам месяца или года может быть доступно 7 дней бесплатно. Условия и сумму подтвердит страница оплаты.

С чего начать

Нужны уверенная работа с терминалом, основы Linux и HTTP/сетей. В примерах используются команды оболочки, конфигурационные файлы и Python; дополняйте карточки практикой с инфраструктурой.

Первый проход: DevOps и инфраструктура → Основы CS. Начните с базовых вопросов в этих модулях, затем продолжайте по плану. К сложным и senior-вопросам возвращайтесь по требованиям вакансии; все карточки доступны с самого начала.

Общие темы могут входить в несколько направлений и сохраняют одну историю повторений. План ниже отмечает общие основы и профильные модули; выбирайте глубину под свою вакансию.

Что внутри

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

DevOps и инфраструктура

35 карточек

Общие основы

Docker, CI/CD и Linux

Основы CS

33 карточки

Общие основы

Сети

Linux и траблшутинг

11 карточек

Профильный модуль

Linux и траблшутинг

Сети в эксплуатации

10 карточек

Профильный модуль

Сети в эксплуатации

Внутренности контейнеров

8 карточек

Профильный модуль

Внутренности контейнеров

Kubernetes

13 карточек

Профильный модуль

Kubernetes

CI/CD и GitOps

8 карточек

Профильный модуль

CI/CD и GitOps

Terraform и Ansible (IaC)

8 карточек

Профильный модуль

Terraform и Ansible

Системный дизайн

29 карточек

Общие основы

Системный дизайн

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

11 карточек

Профильный модуль

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

Облако и безопасность

9 карточек

Профильный модуль

Облако и безопасность

Поведенческое интервью

35 карточек

Общие основы

Поведенческое интервью

Примеры вопросов

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

Что такое 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 — это эталонная (теоретическая) модель, разбивающая сетевое взаимодействие на 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?

Короткий ответ: Почти наверняка нет. Linux сознательно занимает «лишнюю» память под page cache — она отдаётся приложениям мгновенно. Смотреть надо на колонку available, а не free; о реальном дефиците говорят swap-in и major page faults.

Подробно:

Метрика Что означает Тревожиться?
free память, не занятая вообще ничем нет — у здорового сервера близка к нулю
buff/cache page cache: кэш файлов и блоков нет — вытесняется по требованию
available сколько реально можно выдать без свопа да, если стабильно стремится к нулю
  1. Пустая память — потерянная память — ядро кэширует диск, чтобы повторные чтения шли из RAM, а не с устройства.
  2. Реальные признаки дефицита — растущий 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-балансировщик видит только 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, которому ядро подсунуло изолированный «вид» системы: неймспейсы прячут чужое, cgroups ограничивают ресурсы, слоёная файловая система даёт свой rootfs. Гостевого ядра нет — ядро одно на всех, и в этом настоящая разница с VM.

Подробно:

  1. Namespaces — изоляция видимости: каждый тип прячет свой кусок системы.
  2. cgroups — лимиты CPU, памяти, IO: сколько процессу можно, а не что он видит.
  3. Слоёный 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 валидирует манифест и отправляет его в API server: authn → RBAC → admission-вебхуки → запись в etcd. На этом синхронная часть заканчивается — дальше контроллеры, scheduler и kubelet асинхронно замечают изменения через watch и приводят кластер к желаемому состоянию. Никто ничего не «пушит».

Подробно:

  1. API server — аутентификация, авторизация (RBAC), admission (mutating → validating вебхуки), объект сохранён в etcd.
  2. Deployment-контроллер — видит новый Deployment (watch) и создаёт ReplicaSet.
  3. ReplicaSet-контроллер — создаёт Pod-объекты, пока без ноды.
  4. Scheduler — находит поды с пустым nodeName, фильтрует и скорит ноды, делает bind.
  5. kubelet — на выбранной ноде видит «свой» под: тянет образы, запускает контейнеры через CRI, сеть поднимает CNI-плагин.
  6. 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-инженер» и всеми функциями. Право на него и сумму подтвердит страница оплаты; при повторной подписке списание может быть сразу. Отмените подписку онлайн до конца пробного периода, чтобы избежать первого списания. У вечного доступа пробного периода нет.

Другие направления