Подготовка к интервью
Вопросы, которые задают в реальных компаниях. Это не «выучи 100 вопросов» — это «понимай настолько, чтобы ответить любую формулировку».
Общие концепции
DevOps, методологии, ритуалы
Linux
Базовые и продвинутые
Networking
OSI, DNS, TCP, TLS
Контейнеры
Docker, namespace, registries
Kubernetes
Архитектура, объекты, дебаг
Cloud
AWS, IAM, VPC
CI/CD
GitOps, стратегии
Security / DevSecOps
OWASP, supply chain, секреты
System Design
Архитектурные кейсы
Behavioral
STAR метод, soft skills
Общие концепции
- Что такое DevOps? Ожидаемое: не про инструменты, а про культуру, автоматизацию, измерения, делёж, ответственность.
- Чем DevOps отличается от SRE? SRE — конкретная реализация DevOps по принципам Google. SLO, error budget, toil reduction.
- Что такое DevSecOps? Безопасность как часть процесса, shift-left.
- Что такое DORA метрики? Deployment frequency, Lead time for changes, MTTR, Change failure rate.
- 12-factor app? Принципы cloud-native приложений (см. урок).
- Идемпотентность? Операция, повторённая дважды, даёт тот же результат.
- Чем отличается Continuous Delivery от Continuous Deployment? Delivery — готовность к деплою, кнопка для прод. Deployment — авто-деплой в прод.
- Что такое blue-green vs canary? Blue-green — два полных стека, переключение. Canary — постепенное увеличение трафика.
- Что такое GitOps? Состояние инфры в Git, агент в кластере применяет изменения.
Linux
- Что происходит когда печатаешь
lsи жмёшь Enter? Shell parsing,$PATHпоиск, fork/exec, kernel system calls, terminal вывод. - Разница между процессом и потоком?
- Что такое inode? Метаданные файла. Может закончиться при миллионах мелких файлов даже при свободном диске.
- Hard link vs symlink? Hard — на тот же inode (в одной FS). Symlink — указатель на путь.
- Что такое cgroups и namespaces? Основа контейнеров. cgroups — лимиты, namespaces — изоляция.
- Что такое OOM killer? Когда RAM кончилась — kernel убивает процесс с наибольшим oom_score.
- Что такое SUID? Зачем у
passwd? Чтобы пользователь мог изменить shadow, требующий root прав. - В чём разница SIGTERM и SIGKILL? TERM можно перехватить (cleanup). KILL — мгновенно ядром.
- Что такое systemd? Init system + service manager. Управляет сервисами, логами (journald), timers, cgroups.
- Дискаподнагрузкой / no space — что делать?
df -h,du -sh /*, проверь inodes (df -i),lsof | grep deleted(файл удалён, но процесс держит fd).
Networking
- Расскажи путь HTTPS-запроса от Enter до ответа. См. отдельный урок — must know.
- Разница TCP и UDP? TCP — handshake, гарантии, упорядоченность. UDP — fire and forget, быстрее.
- Что такое 3-way handshake? SYN, SYN-ACK, ACK.
- Что такое TIME_WAIT? Почему много — проблема? Закрытое соединение ждёт 60s. Может исчерпать порты при высоком rate.
- Объясни TLS handshake.
- Что такое SNI? Server Name Indication — клиент указывает host в Client Hello, чтобы сервер выдал правильный сертификат на shared IP.
- Что такое mTLS? Обе стороны предъявляют сертификаты. Стандарт в Service Mesh.
- DNS типы записей? A, AAAA, CNAME, MX, TXT, SRV, NS, CAA.
- Что такое CDN? Географически распределённый кэш. Сокращает latency, защищает от DDoS.
- Разница 502 и 504? 502 — LB получил invalid от upstream. 504 — upstream не ответил за timeout.
- Что в
ss -tanищешь когда продакшен медленный? Много TIME_WAIT, CLOSE_WAIT (баг приложения), забитые очереди.
Контейнеры
- Что такое контейнер? Процесс с изоляцией через namespaces + cgroups. НЕ VM.
- Контейнер vs VM? Container — общий kernel, легче. VM — свой kernel, тяжелее, но сильнее изоляция.
- CMD vs ENTRYPOINT? CMD — default args, переопределяется. ENTRYPOINT — фиксированная команда, CMD к ней.
- Разница COPY и ADD? ADD умеет URL и tar-распаковку. Почти всегда используй COPY.
- Что такое multi-stage build? Несколько FROM. Build-стадия с компилятором, runtime-стадия с минимумом.
- Как сделать образ маленьким? Multi-stage, distroless/alpine/scratch base, очистка apt, .dockerignore.
- Что хранится в
/var/lib/docker? Образы, слои, контейнеры, volumes. - Что такое OCI? Open Container Initiative — стандарты image-spec и runtime-spec.
- Почему не запускать как root? Если контейнер скомпрометирован — атакующий не root в host (если есть user namespace) и не root в контейнере.
- Что такое BuildKit? Современный builder Docker — параллелизм, secrets, cache mounts.
Kubernetes
- Компоненты control plane? kube-apiserver, etcd, scheduler, controller-manager.
- Что делает kubelet? Агент на ноде. Получает PodSpec от api-server, говорит с container runtime через CRI.
- Что такое CRI? Container Runtime Interface — kubelet ↔ runtime (containerd, CRI-O).
- Pod vs Container? Pod — наименьшая deployable единица K8s, 1+ контейнеров с общим net/storage.
- Когда StatefulSet, а не Deployment? Для приложений со state: БД, очереди. Stable network ID, persistent volumes.
- Service types? ClusterIP, NodePort, LoadBalancer, ExternalName.
- Разница liveness, readiness, startup probe? Live — рестарт. Ready — в Service endpoints. Startup — для медленных стартов.
- Что значит CrashLoopBackOff? Pod падает, K8s ждёт экспоненциальный backoff перед рестартом.
- Pod падает — алгоритм дебага? get → describe → logs → logs --previous → events.
- Что такое RBAC? Role/ClusterRole + RoleBinding/ClusterRoleBinding для авторизации.
- Что такое HPA? Horizontal Pod Autoscaler — scale по CPU/memory/custom metrics.
- Что такое Karpenter? Node autoscaler нового поколения (AWS).
- Helm vs Kustomize? Helm — шаблоны + values. Kustomize — патчинг без шаблонов. Используй оба.
- Что такое Operator? Controller для CRD = автоматизированное знание SRE для конкретной системы.
- Зачем NetworkPolicy? Firewall на уровне pod. Без неё все pod-ы общаются — это плохо.
Cloud / AWS
- Чем S3 отличается от EBS? S3 — object storage, globally available. EBS — block storage, привязан к AZ.
- Что такое VPC? Логически изолированная сеть в AWS.
- NAT GW vs Internet GW? IGW — для public subnets, двусторонний. NAT GW — позволяет private subnet выходить наружу, но не наоборот.
- Что такое VPC Endpoints? Приватный доступ к AWS сервисам без интернета. Экономия на NAT GW.
- Security Group vs NACL? SG — stateful, на уровне ENI. NACL — stateless, на subnet level.
- Что такое IAM Role? Временная identity для AWS-сервиса или cross-account. Без access keys.
- Что такое IRSA? IAM Roles for Service Accounts — AWS credentials для pod в EKS через ServiceAccount.
- Когда Spot vs On-Demand? Spot — fault-tolerant нагрузки (batch, CI, K8s workers). 70-90% скидка.
- Что такое Multi-AZ для RDS? Standby в другой AZ, синхронная репликация, авто-failover.
- Чем CloudFront отличается от ALB? CF — глобальный CDN. ALB — региональный L7 балансировщик.
CI/CD
- Что такое GitOps? Состояние = Git. Агент в кластере (Argo CD/Flux) подтягивает.
- Стратегии деплоя? Recreate, Rolling, Blue-Green, Canary, Shadow.
- В чём преимущество Canary? Постепенный rollout, быстрый rollback, проверка на части пользователей.
- Что такое feature flag? Отделение деплоя от релиза. Можно деплоить выкл фичу.
- Что такое OIDC в GitHub Actions? Доступ к AWS/GCP без long-lived access keys.
- Зачем pin actions к SHA? Supply chain — tag можно переписать, SHA — нет.
- Зачем reusable workflow? DRY между репо, единые стандарты CI.
- Что такое Argo Rollouts? Progressive delivery: canary с auto-promotion по метрикам.
Security / DevSecOps
- OWASP Top 10? Знай каждый и могу объяснить mitigation.
- SAST vs DAST vs SCA? SAST — анализ кода. DAST — тест работающего приложения. SCA — анализ зависимостей.
- Что такое supply chain attack? SolarWinds, Log4Shell, xz-utils. Атака через цепочку поставки ПО.
- Что такое SBOM? Software Bill of Materials. Список всех компонентов.
- Что такое Sigstore / Cosign? Keyless signing OCI artifacts через OIDC. Без хранения private keys.
- Что такое SLSA? Supply-chain Levels for Software Artifacts. 4 уровня зрелости.
- Как хранить секреты в K8s? Не нативный Secret (это base64). Vault + External Secrets Operator.
- Что такое mTLS и зачем? Взаимная аутентификация. Service Mesh для encryption + identity в K8s.
- Что такое Zero Trust? Никому не доверяй. Каждый запрос проверяется. NIST 800-207.
- Pod Security Standards? Privileged / Baseline / Restricted. Restricted — цель.
- JWT уязвимости? alg=none, weak secret, отсутствие validation expiration.
- OAuth 2.0 vs OIDC? OAuth — authz. OIDC — authn поверх OAuth.
- Что такое STRIDE? Threat modeling: Spoofing, Tampering, Repudiation, Info disclosure, DoS, Elevation.
System Design — типовые кейсы
- Спроектируй URL shortener (bit.ly). Hash function, БД (Redis для hot path), CDN, analytics.
- Спроектируй rate limiter. Token bucket / leaky bucket. Redis для distributed.
- Спроектируй автоматический деплой на 100 микросервисов. GitOps (Argo CD ApplicationSet), мониторинг SLO, canary, fail-fast.
- Как обеспечить 99.99% uptime? Multi-AZ, multi-region для DR, health checks, чёткий incident response.
- Спроектируй observability для микросервисов. Prometheus, OpenTelemetry, distributed tracing, SLO.
- Как мигрировать монолит в микросервисы? Strangler pattern, выделять боунд контексты, начинать с малого.
- Спроектируй secure CI/CD pipeline. См. проект 7.
- Как реализовать blue-green? Два таргет-группы за ALB, переключение Weight.
- Как сделать DR plan для регионального падения AWS? Multi-region active-passive или active-active. RTO/RPO.
Behavioral — STAR метод
Структура ответа: Situation → Task → Action → Result.
Типичные вопросы
- Расскажи про критический инцидент. Что ты сделал?
- Конфликт с разработчиками — как решил?
- Самая большая ошибка в продакшене. Что выучил?
- Как ты митигировал tech debt?
- Как ты повышаешь quality процессов?
- Расскажи про проект, которым гордишься.
- Когда ты сменил подход после feedback?
- Как ты onboard-ишь нового члена команды?
Что они на самом деле проверяют
- Blameless mindset (не вали на других)
- Ownership (брал ли ответственность)
- Способность учиться (что выучил)
- Коммуникация со stakeholder'ами
- Подход к incident response (методично)
- Развитие команды (не только себя)
Финальные советы
- Знай свой CV наизусть. Каждая строчка может стать темой разговора.
- Готовь 2-3 хороших кейса с цифрами (снизил CI time на 60%, сэкономил $20K/мес).
- Задавай вопросы в конце. Покажи инженерное мышление: «Как вы measure SLO?», «Как сейчас выглядит pipeline?».
- Не врать. Не знаешь — скажи «Не знаю, но мог бы погуглить и подумать так-то».
- Английский — практикуй говорение. Mock interview через Pramp, Interviewing.io.
- Тестовые задания — делай качественно. Лучше меньше, но идеально.
Если знаешь 80% этих вопросов хорошо — Senior-уровень. 50% — Middle. 30% — Junior.