Эйч
Эйч
  • Эйч Плюс
  • Все менторы
Гайды/DevOps-инженер/Собес в Яндекс · DevOps-инженер (Яндекс 360)

Собес в Яндекс · DevOps-инженер (Яндекс 360)

Материал Эйч · Опубликовано 21 июля 2026

Обзор

Middle-уровень: инфраструктура продуктов Диск, Почта, Календарь, Телемост и других сервисов с многомиллионной аудиторией. Проверяют Linux «под капотом», сети, K8s, IaC, CI/CD, мониторинг и Python-автоматизацию.

Linux и диагностика
Сети и балансировка
Docker и Kubernetes
Terraform и GitOps
CI/CD
Мониторинг и логирование
PostgreSQL
Python-автоматизация
Инцидент-менеджмент

Фишка: Hands-on секция на SSH-сервере с реальными сценариями (inode exhaustion, отладка бинарников) — фирменная часть процесса Яндекса, где проверяют практический troubleshooting, а не теорию.

ЭтапДлительностьЧто проверяют
HR-скрининг30–45 минОпыт, мотивация, ожидания по грейду и зарплате, адекватность. Уточняют баланс между разработкой и администрированием.
Алгоритмы / код60 минLive-coding на Python (реже Go) в онлайн-редакторе без запуска. LeetCode Easy: массивы, хэш-таблицы, парсинг строк. Проверяют чистоту кода и O-нотацию.
Hands-on (SSH)60–90 минДоступ к удалённому серверу: найти и устранить реальные проблемы — исчерпание inode, диск, память, зависшие процессы. Нужно самостоятельно диагностировать, а не ждать подсказок.
DevOps-практика60 минЗапуск кастомных бинарников, поиск причин падения/зависания. Отладка на уровне ОС и окружения.
Технические секции60–90 мин каждаяLinux, сети, Docker/K8s, CI/CD, мониторинг, PostgreSQL — глубокие вопросы по стеку вакансии. Могут быть 2–3 отдельных интервью.
Знакомство с командой45–60 минКультурный fit, day-to-day задачи Яндекс 360, поведенческие вопросы по STAR. Может повториться с разными командами.
System Design (опционально)60–90 минДля Middle+ — проектирование отказоустойчивого сервиса: масштабирование, HA, мониторинг, деплой. Типичные кейсы: хранилище файлов, сервис метрик, CI/CD-платформа.

Стек и темы

Обязательный минимум

  • Linux: процессы, память, ФС, systemd, диагностика
  • Bash и Python для автоматизации
  • Docker: слои, OverlayFS, multi-stage builds
  • Kubernetes: Pod lifecycle, Deployment/StatefulSet/DaemonSet, probes, Service, Ingress
  • Terraform (IaC, state, modules, locks)
  • CI/CD: GitLab CI / GitHub Actions, rolling/canary/blue-green
  • Prometheus / VictoriaMetrics + Grafana + Alertmanager
  • Логирование: Vector, Fluent Bit, Loki или ELK
  • PostgreSQL: администрирование, репликация, VACUUM
  • Облако: Yandex Cloud или AWS/Azure/GCP
  • SLA/SLI/SLO и инцидент-менеджмент

Плюсом будет

  • GitOps: ArgoCD, Flux CD
  • Kafka
  • ClickHouse
  • Network Policies и RBAC в K8s
  • DevSecOps: SAST, сканирование образов, секреты

Linux и системное администрирование

Что такое inode?

Структура метаданных файла (права, размер, блоки). Имя — отдельная запись в каталоге. Исчерпание inode → «No space left» при свободном месте.

В чём разница между hardlink и symlink?

Hardlink — ещё одно имя для того же inode (только в одном FS). Symlink — отдельный файл с путём-указателем.

Что такое виртуальная память и зачем она нужна?

Абстракция адресного пространства: изоляция процессов, swap, demand paging. Позволяет использовать больше памяти, чем физически есть.

Как работает OOM Killer?

При нехватке памяти ядро выбирает процесс по oom_score (память, привилегии, oom_score_adj). SIGKILL, без graceful shutdown.

В чём разница между kill -15 и kill -9?

SIGTERM (15) — graceful shutdown, процесс может перехватить. SIGKILL (9) — немедленное убийство, нельзя перехватить. D-state процесс kill -9 не спасёт.

Как диагностировать «No space left on device»?

df -h (место), df -i (inode), du для поиска больших каталогов, lsof +L1 для удалённых но открытых файлов.

Load Average высокий, CPU низкий — что проверять?

iowait в top, iostat -xz, процессы в D-state, сеть (softirq), блокировки на диске.

Какие системные вызовы используются для создания процесса?

fork() — копия процесса; execve() — замена образа; wait() — ожидание завершения дочернего.

Что такое systemd?

Init-система и менеджер сервисов: unit-файлы, dependencies, journald, target-ы. systemctl start/stop/enable/status.

Когда используют SWAP?

Когда RAM заканчивается — вытеснение редко используемых страниц на диск. На prod-серверах часто отключают или минимизируют из-за latency.

Фишка: На hands-on секции Яндекса типичный кейс — исчерпание inode: нужно найти миллионы мелких файлов и устранить причину.

Ловушка: Процесс в D-state (Uninterruptible sleep) нельзя убить kill -9 — ждёт I/O. Ищите проблему на уровне диска/сети/NFS.

Совет: Для диагностики держите под рукой: top/htop, iostat, vmstat, dmesg, lsof, strace, ss/netstat.

Сети

Что за протокол ICMP, какого уровня OSI?

Сетевой уровень (L3). Диагностика: ping (echo), traceroute (TTL), unreachable. Не передаёт данные приложений.

Какие протоколы на 4-м уровне OSI?

TCP (надёжный, с установкой соединения) и UDP (без гарантий доставки). TCP: SYN-SYN/ACK-ACK, window, retransmit.

Как traceroute вычисляет задержки до hop?

Отправляет пакеты с TTL=1,2,3… Каждый роутер отвечает ICMP Time Exceeded. Замер RTT до каждого hop.

Как проверить доступность порта на удалённом сервере?

nc -zv host port, telnet, curl, nmap. Изнутри — ss -tlnp. Учитывайте firewall и security groups.

Как посмотреть сетевые соединения процесса?

ss -tnp | grep PID, lsof -i -P -n | grep PID. Для трафика — tcpdump -i any host/port.

В чём разница между L4 и L7 балансировкой?

L4 (IP/port) — быстрее, не смотрит в payload. L7 (HTTP headers, path, cookies) — умный роутинг, SSL termination, но дороже.

Что происходит при вводе URL в браузере?

DNS resolve → ARP/MAC → TCP handshake → TLS → HTTP request → response. Кэш DNS, CDN, redirects.

Совет: Яндекс часто углубляется в TCP: TIME_WAIT, slow start, tcp_tw_reuse — покажите понимание, а не только «ping работает».

Ловушка: ICMP может быть заблокирован firewall — ping не пройдёт, но сервис доступен по TCP.

Docker и контейнеризация

Что такое слои в Docker?

Каждая инструкция Dockerfile создаёт read-only слой. Copy-on-Write при записи. Общие слои экономят место между образами.

Что такое OverlayFS в Docker?

Union FS: нижние слои read-only, верхний writable (container layer). При удалении контейнера writable слой удаляется.

В чём разница между контейнеризацией и виртуализацией?

VM — полная изоляция с guest OS (hypervisor). Контейнер — общее ядро, изоляция через namespaces + cgroups. Легче и быстрее.

Как уменьшить размер Docker-образа?

Multi-stage build, alpine/slim base, объединение RUN, удаление кэша пакетного менеджера, .dockerignore.

Совет: Свяжите Docker с Linux: namespaces (PID, NET, MNT) и cgroups — основа изоляции контейнеров.

Ловушка: Alpine использует musl — бинарники, собранные под glibc, могут не работать. Проверяйте совместимость.

Kubernetes

Какие компоненты Control Plane и Data Plane?

Control: API Server, etcd, Scheduler, Controller Manager. Data: kubelet, kube-proxy, container runtime на каждой node.

В чём разница Deployment, StatefulSet и DaemonSet?

Deployment — stateless, rolling update. StatefulSet — стабильные имена/volumes, порядок. DaemonSet — по одному pod на каждую node.

Разница liveness, readiness и startup probes?

Liveness — жив ли контейнер (restart). Readiness — готов принимать трафик (убирает из Service). Startup — для медленного старта, блокирует другие probes.

Как разместить pod на определённой node?

nodeSelector, nodeAffinity/antiAffinity, taints + tolerations. Для hard constraint — requiredDuringScheduling.

Что произойдёт при превышении CPU limits?

Throttling (CFS quota), не OOMKill. CPU — compressible ресурс. Memory limit превышение → OOMKill.

CrashLoopBackOff — ваши шаги?

kubectl describe pod (Events), logs --previous, проверка OOMKilled, env/secrets, probes, image pull, resource limits.

Что такое etcd в Kubernetes?

Distributed KV store — единственный source of truth для состояния кластера. Бэкапы критичны. Проблемы etcd = проблемы всего кластера.

Фишка: Для Яндекс 360 важны probes, HPA, graceful shutdown и zero-downtime deploy — сервисы с миллионами пользователей.

Совет: Знайте путь трафика: Ingress → Service → Endpoints → Pod. CoreDNS для service discovery внутри кластера.

IaC, CI/CD и GitOps

Как Terraform хранит state и зачем locks?

State file — актуальное состояние ресурсов. Remote backend (S3+ DynamoDB, Terraform Cloud). Lock предотвращает concurrent apply.

Что такое идемпотентность?

Повторное применение даёт тот же результат. Ключевое свойство Ansible/Terraform — можно запускать многократно без побочных эффектов.

Rolling update vs Canary vs Blue-Green?

Rolling — постепенная замена. Canary — малая доля трафика на новую версию. Blue-Green — два окружения, мгновенный switch.

Что такое GitOps?

Git — source of truth для инфраструктуры/деплоя. ArgoCD/Flux следят за репо и синхронизируют кластер. Declarative + audit trail.

Как встроить безопасность в CI/CD?

SAST, сканирование образов (Trivy/Grype), secret scanning, DAST, подпись образов, policy-as-code.

Совет: Вакансия Яндекс 360 явно требует Terraform, CI/CD и GitOps (ArgoCD/Flux — плюс). Приведите пример своего pipeline end-to-end.

Мониторинг, логирование и SRE

Pull vs Push модель сбора метрик?

Prometheus scrape (pull) — targets, service discovery, нагрузка на scraper. Push (Pushgateway, StatsD) — для batch/краткоживущих jobs.

Четыре золотых сигнала мониторинга?

Latency, Traffic, Errors, Saturation (Google SRE). Алерты на симптомы, а не причины — меньше alert fatigue.

SLI, SLO, SLA — в чём разница?

SLI — метрика (availability, latency p99). SLO — целевое значение SLI. SLA — контракт с последствиями при нарушении.

Как организовать сбор логов в K8s?

DaemonSet агент (Fluent Bit/Vector) → Loki/ELK. Structured logging (JSON), labels, retention policy. Не хранить логи вечно.

Что такое TTL кеша?

Time To Live — время жизни записи. По истечении инвалидируется. Баланс freshness vs нагрузка на backend.

Фишка: Стек вакансии: Prometheus/VictoriaMetrics + Grafana + Alertmanager, Vector/Fluent Bit + Loki/ELK — повторите типовые PromQL-запросы и правила алертов.

Ловушка: Алерт на CPU > 80% без контекста — плохая практика. Лучше: error rate, latency p99, saturation ресурса с impact на пользователей.

PostgreSQL и хранение данных

Как работает VACUUM в PostgreSQL?

Удаляет dead tuples после UPDATE/DELETE, предотвращает bloat и transaction ID wraparound. autovacuum — фоновый процесс.

Синхронная vs асинхронная репликация?

Sync — commit ждёт реплику, zero data loss, выше latency. Async — быстрее, риск потери при падении primary.

В чём разница шардирования и партиционирования?

Партиционирование — деление таблицы внутри одной БД (по дате/ключу). Шардирование — распределение данных между независимыми БД/серверами.

Совет: ClickHouse и Kafka — плюс для вакансии. Знайте, когда columnar DB лучше для аналитики логов.

Python и алгоритмы

Какие языки программирования знаете?

Python — основной для автоматизации в вакансии. Покажите опыт: скрипты, API-клиенты, парсинг логов, утилиты для CI.

Как найти top-N IP в лог-файле на 100 ГБ с ограниченной RAM?

Streaming: построчное чтение, Counter/dict, не загружать файл целиком. При необходимости — external sort или MapReduce.

Фишка: На код-секции Яндекса — LeetCode Easy на Python: массивы, хэш-таблицы, строки. Код без запуска — проговаривайте edge cases вслух.

Совет: Знайте модули: os, sys, subprocess, json, collections, re. Обсуждайте сложность: set lookup O(1) vs list O(n).

Задачи

Диагностика исчерпания inode

На сервере команда падает с «No space left on device», но df -h показывает свободное место. Найдите причину и устраните проблему.

# 1. Проверить inode
df -i

# 2. Найти каталог с миллионами мелких файлов
for d in /*; do echo "$(find "$d" -xdev -type f 2>/dev/null | wc -l) $d"; done 2>/dev/null | sort -rn | head

# 3. Детализировать проблемный каталог
cd /path/to/dir && find . -type f | head

# 4. Удалить лишние файлы / настроить logrotate / исправить приложение
# 5. Проверить: df -i && touch /tmp/testfile

Сложность: O(n) по количеству файлов при поиске

Top-10 IP из access.log

Дан access.log (>10 ГБ). Напишите Python-скрипт, который находит 10 IP-адресов с наибольшим числом запросов. Память ограничена.

import collections

def top_ips(path: str, n: int = 10):
    counter = collections.Counter()
    with open(path) as f:
        for line in f:
            parts = line.split()
            if parts:
                counter[parts[0]] += 1
    return counter.most_common(n)

# Обсудить: regex для IP, обработка битых строк, streaming без загрузки в RAM

Сложность: O(n) по строкам, O(k) память где k — уникальные IP

CrashLoopBackOff после деплоя

После обновления Deployment новые pod'ы в CrashLoopBackOff. Опишите пошаговую диагностику и возможные причины.

1. kubectl get pods -o wide
2. kubectl describe pod <name> — секция Events
3. kubectl logs <pod> --previous
4. Проверить: OOMKilled (kubectl describe, dmesg), image pull, env/secrets, configmap
5. Проверить probes (liveness/readiness слишком агressive?)
6. kubectl exec для ручной проверки
7. Откат: kubectl rollout undo deployment/<name>

Сложность: N/A — troubleshooting playbook

Слияние интервалов (алгоритм)

Дан список интервалов [(start, end)] — времена работы серверов. Объедините перекрывающиеся интервалы.

def merge_intervals(intervals):
    if not intervals:
        return []
    intervals.sort(key=lambda x: x[0])
    merged = [list(intervals[0])]
    for start, end in intervals[1:]:
        if start <= merged[-1][1]:
            merged[-1][1] = max(merged[-1][1], end)
        else:
            merged.append([start, end])
    return merged

# O(n log n) из-за сортировки

Сложность: O(n log n)

System Design

  • Спроектируйте CI/CD-платформу для 50 микросервисов Яндекс 360 с zero-downtime deploy
  • Спроектируйте систему мониторинга и алертинга для K8s-кластера с 1000+ pod'ов
  • Спроектируйте отказоустойчивое файловое хранилище (аналог Диска) с репликацией между ДЦ
  • Как организовать централизованный сбор логов из 100 сервисов с retention 30 дней?

Каркас ответа

  1. Уточнить требования: RPS, объём данных, latency, RTO/RPO, бюджет
  2. High-level схема: клиент → LB → сервисы → storage/queue
  3. Выбор хранилища и паттернов: репликация, шардирование, кэш (Redis)
  4. Отказоустойчивость: multi-AZ, health checks, circuit breaker, graceful degradation
  5. Масштабирование: HPA, sharding, CDN, async через Kafka
  6. Observability: метрики (Prometheus), логи (Loki/ELK), tracing, SLO/алерты
  7. Безопасность: RBAC, Network Policies, secrets management (Vault)
  8. Deployment strategy: canary/blue-green, rollback plan, feature flags
  9. Trade-offs: CAP, consistency vs availability, cost vs performance

Поведенческое

  • Расскажите о своём опыте (структурированно: роли, стек, масштаб систем)
  • Расскажите о самом сложном инциденте — как нашли причину и что изменили после
  • Как вы реагируете, когда разработчик хочет задеплоить код, который может положить prod?
  • Опишите ситуацию, когда автоматизация сломала production — что делали?
  • Как организуете on-call и post-mortem?
  • Какие у вас вопросы к команде?
  • Почему Яндекс 360 / продуктовая инфраструктура?
  • Как оцениваете свой грейд?

План подготовки

3 дня

  • Повторить Linux: inode, OOM, процессы, kill signals, df/di/du/lsof
  • Пройти 5–7 LeetCode Easy на Python (массивы, Counter, строки)
  • Разобрать kubectl debug flow: describe, logs --previous, exec
  • Повторить probes, Deployment vs StatefulSet, Service/Ingress
  • Подготовить 2-min pitch опыта без персональных деталей — структура: роль → стек → масштаб → достижения

7 дней

  • + Terraform: state, modules, plan/apply workflow
  • + PromQL: rate(), histogram_quantile(), типовые alert rules
  • + CI/CD: описать идеальный pipeline (build → test → scan → deploy)
  • + PostgreSQL: VACUUM, репликация, connection pooling
  • + Практика hands-on: поднять VM, сломать (inode/disk/memory), починить
  • + 1 mock system design: мониторинг или CI/CD платформа

14 дней

  • + Сети: TCP handshake, DNS, TLS, L4 vs L7 LB
  • + Docker: multi-stage, security (non-root, readOnlyRootFilesystem)
  • + GitOps: принципы ArgoCD/Flux
  • + Kafka/ClickHouse basics (nice-to-have вакансии)
  • + 15–20 LeetCode Easy + 5 Medium
  • + 3 STAR-истории: инцидент, конфликт с dev, автоматизация
  • + Прочитать про продукты Яндекс 360 и их масштаб
БлокГотов, если...
Linuxможешь диагностировать No space (место vs inode), объяснить OOM Killer и D-state
Сетиможешь описать TCP handshake, traceroute, разницу L4/L7 LB
Kubernetesможешь отладить CrashLoopBackOff и объяснить probes + Deployment/StatefulSet
IaC/CI/CDможешь описать Terraform state/locks и rolling vs canary deploy
Мониторингможешь назвать 4 golden signals и написать простой PromQL rate()
Pythonможешь за 20 мин написать streaming парсер логов с Counter
Поведениеесть 2–3 STAR-истории про инциденты с измеримым результатом

В день собеседования

  • Проверить SSH-клиент, стабильный интернет, тихое место
  • Держать под рукой шпаргалку: kubectl, df/di, ss, systemctl
  • На live-coding — проговаривать мысли, edge cases, сложность
  • На hands-on — methodical approach: observe → hypothesize → test → fix
  • Задать 3–5 вопросов команде: on-call, стек, deploy frequency, SLO

Профессия

DevOps-инженер

Темы

Linux и диагностика
Сети и балансировка
Docker и Kubernetes
Terraform и GitOps
CI/CD
Мониторинг и логирование
PostgreSQL
Python-автоматизация
Инцидент-менеджмент

Компания

ЯндексЯндекс

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Сервисы
AI поиск работы newПоиск вакансий newПоиск компаний newКонструктор резюме newВопросы с собеседований newЗадачи с собеседований newГайды к собеседованиям newПроверятор резюме newГенератор сопроводительных new
Поиски себя
Войти в ITКарьерная стратегияПовысить доходПрофориентация
Работа в России
Сопровождение до оффера Найти работу в РоссииРевью портфолиоРевью резюмеТестовое собеседование
Работа за рубежом
Найти работу за границейПомощь в оформлении LinkedInРевью резюме на английскомТестовое собеседование на английском
Навыки
Личный брендОценка навыковРазвитие навыков и компетенций
Поддержка
ВыгораниеОтношения с коллективомОтношения с руководителемСиндром самозванцаСложное увольнение
Для бизнеса
Аудит процессов компанииВыступление на внутреннем мероприятии компанииКонсалтинг бизнеса
Профессии
HRАдминистрированиеАналитикаДизайнИнформационная безопасностьИскусственный интеллектИсследованияКонсалтингКонтентМаркетингМенеджментНаука и образованиеОфисПоддержкаПредпринимательство
Компания
С чем помогаемОтзывы Вопросы и ответыСертификатыВебинарыСтать ментором

Услуги оказывает ООО «Эйч Карьера»
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, г. Москва, Старопименовский пер., д. 18, стр. 2, помещ./ком./этаж I/19/2
Платформа принадлежит ООО «Эйч Карьера»

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта