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 вопросе - как правильно реагировать?