DevOps

DevOps на собеседовании (FAANG)

Senior DevOps Engineer в FAANG зарабатывает $250-450K/год. Разница между junior и senior на интервью не в знании большего числа технологий - а в умении рассуждать о trade-offs, задавать правильные уточняющие вопросы и предвидеть проблемы. Этот урок - карта для структурированного мышления на высокоставочных интервью.

  • **Google L5 SRE** типичные вопросы: 'Как бы вы обнаружили что ваш сервис начинает деградировать за 5 минут до полного outage?' - проверяет понимание SLI/SLO и alerting стратегии
  • **Amazon Principal Engineer** система дизайн: 'Спроектируй deploy pipeline для 10000 микросервисов с zero-downtime требованием' - ожидается cell-based deployment и canary strategy
  • **Meta Staff Engineer** outage вопрос: '100M пользователей не могут войти в систему. У вас 15 минут. Ваши действия?' - оценивают systematic troubleshooting, коммуникацию и приоритизацию

Design CI/CD Pipeline

Типичный вопрос FAANG: 'Спроектируй CI/CD pipeline для микросервиса с 100 инженерами'. Ожидаемая структура ответа: уточнить requirements (mono/polyrepo, deployment frequency, rollback SLA), описать pipeline stages, обосновать trade-offs каждого решения. Не начинать с решения без выяснения контекста.

Pipeline для FAANG-уровня ответа: code → SAST (Semgrep, 2min) → unit tests → build Docker (layer caching) → push to registry → deploy staging → integration tests → canary 5% → monitoring (15min) → full rollout. Ключевые решения: как обеспечить rollback < 5min, как тестировать DB migrations, как управлять secrets, как handle monorepo (path-based triggering).

Что должно быть первым шагом при ответе на 'Design CI/CD pipeline' на собеседовании?

Troubleshoot Production Outage

Вопрос: 'Production API вернул 500 ошибки на 5 минут. Что делаете?' Структура ответа: Detect → Triage → Mitigate → Root Cause → Fix → Postmortem. На собеседовании важно показать systematic approach, не панику. Начинать с broad вопросов (что изменилось?), сужать к конкретному сервису.

5 Whys + данные из observability stack: Grafana (error rate spike), Jaeger (какой service виноват), Kibana (logs с trace_id). Типичные causes: deployment (недавний), resource exhaustion (OOM, connection pool), dependency failure (downstream API, DB), traffic spike (unexpected load). Первое действие: посмотреть recent deployments и recent alerts.

При production outage: mitigation или root cause analysis - что делать сначала?

Capacity Planning

Capacity planning - определение ресурсов необходимых для обработки ожидаемой нагрузки с headroom. Вопросы FAANG: 'Сколько серверов нужно для 1M RPS?' или 'Как планировать capacity для Black Friday?' Ключевые метрики: current RPS, CPU utilization per RPS, memory footprint, DB connection count, expected growth rate.

Формула capacity planning: servers = (peak_rps × cpu_per_request × safety_factor) / (cpu_per_server × target_utilization). Safety factor 1.5-2x (headroom для spike). Target utilization 70% (не 100% - нет места для burst). Load testing (k6, Locust, Gatling) перед Black Friday на production-like данных с 2-3x ожидаемого трафика.

Почему target utilization 70% при capacity planning вместо 100%?

Архитектурные Trade-offs

FAANG DevOps интервью проверяет способность обосновать trade-offs между альтернативами. Не существует 'правильного' ответа - есть правильный reasoning. Типичные trade-offs: consistency vs availability (CAP theorem), cost vs reliability, deploy speed vs safety, observability overhead vs insights.

Структура ответа на trade-off вопрос: 1) назвать оба варианта, 2) описать преимущества каждого в конкретном контексте, 3) назвать когда выбрать каждый, 4) описать hybrid подход если применим. Пример: 'Монорепо vs полирепо' - ответ зависит от размера команды, coupling сервисов, CI/CD infrastructure maturity.

На DevOps собеседовании нужно знать все команды наизусть и моментально отвечать

FAANG DevOps интервью проверяет system thinking и trade-off reasoning, не memory. 'Я не помню точный синтаксис, но логика такова: ...' - сильный ответ. Знание принципов + умение рассуждать важнее механического запоминания. Уточняющие вопросы и признание неопределённости - признаки опытного инженера

Senior engineers google syntax постоянно; интервью моделирует реальную работу - умение системно думать о проблеме ценнее чем быть ходячей документацией

Как правильно отвечать на trade-off вопрос на FAANG DevOps интервью?

Итоги

  • **CI/CD Design** - начинать с requirements (не с инструментов); описать pipeline stages с обоснованием; ключевые темы: rollback strategy, DB migrations, secrets, canary deployment
  • **Troubleshoot Outage** - mitigation первично, root cause вторично; структура: Detect → Triage → Mitigate → Root Cause → Postmortem; показать систематический подход
  • **Capacity + Trade-offs** - расчёт серверов с safety factor и target utilization; trade-off вопросы - описать оба варианта с контекстом, не выбирать 'правильный'

Связанные темы

Собеседование проверяет интеграцию всех пройденных концепций DevOps:

  • Reliability Engineering at Scale — Cell architecture, blast radius и chaos engineering - типичные senior DevOps design вопросы FAANG
  • On-Call и Incident Management — Troubleshoot outage вопрос проверяет понимание incident response process и postmortem культуры

Вопросы для размышления

  • Как объяснить выбор Kubernetes vs Lambda для обработки изображений (resize) при 1000 загрузок в день vs 1M загрузок в день?
  • Capacity planning: какие метрики нужны чтобы ответить на вопрос 'сколько серверов нам нужно на следующий год'?
  • Если интервьюер говорит 'ваш ответ неверный' при trade-off вопросе - как правильно реагировать?

Связанные уроки

  • os-23-interview-patterns
DevOps на собеседовании (FAANG)

0

1

Войти