Бриф: что нужно знать к секции системного дизайна
Формат секции (Yandex Codenv, этап 2): ~60 минут, нарисовать крупноблочную схему сервиса уровня «инстаграм/твиттер», объяснить отказоустойчивость. Знания ниже — полный перечень того, что должно быть наготове. По каждому разделу запланирована отдельная статья верхнего уровня (articles/NN-*.md, задачи TASK-45.41–45.52) + одна обзорная статья по всему брифу (articles/00-overview.md, TASK-45.40). Глубина (числа, детали, разборы) — в knowledge-base.md, methodology.md, classic-designs.md.
Разделы знаний
01. Фреймворк прохождения интервью и работа с требованиями
Как вести секцию от старта до финиша: уточнить функциональные и нефункциональные требования, договориться о масштабе, нарисовать высокоуровневую схему, углубляться по запросу интервьюера, называть трейдоффы.
Умею, если: могу перечислить 6 этапов с таймингом и знаю, что говорить на каждом.
Источники: methodology.md §1–2 · статья Яндекса (45.5) · Сюй гл. 3 · Gabbard (45.9).
02. Оценки: back-of-envelope, числа, латентность
Считать QPS, storage, bandwidth, размер кэша «на салфетке»; знать порядки латентностей (L1/RAM/SSD/сеть/диск) и степени двойки.
Умею, если: по любому сервису за 2 минуты называю RPS, объём хранения на 5 лет и ширину канала.
Источники: knowledge-base.md §1–2 · SDP appendix (45.6) · Сюй гл. 2 · latency-таблица (45.25).
03. Масштабирование с нуля: LB, CDN, stateless
Путь «один сервер → миллионы пользователей»: вертикальное vs горизонтальное, балансировщики, CDN, отделение стейта, web-сервер vs app-сервер.
Умею, если: могу объяснить, что и в каком порядке добавляю при росте нагрузки и почему.
Источники: Сюй гл. 1 · SDP (45.7) · knowledge-base.md §3.
04. Модели данных и выбор хранилища
SQL vs NoSQL, когда что; реляционная / документная / key-value / wide-column / графовая / временные ряды; B-tree vs LSM; индексы.
Умею, если: для любого кейса называю класс хранилища + 2 аргумента за и 1 против.
Источники: knowledge-base.md §3 · DDIA гл. 3–4 (45.39) · Сюй.
05. Репликация и шардирование
Leader/follower, multi-leader, leaderless, кворумы, лаг репликации; стратегии шардирования, hot spots, ребалансировка, consistent hashing.
Умею, если: могу обосновать схему репликации и ключ шардирования для ленты/чата и что происходит при отказе ноды.
Источники: knowledge-base.md §5–6 · DDIA гл. 6–7 (45.39) · Сюй гл. 5.
06. Кэширование
Уровни кэша (клиент → CDN → приложение → БД), политики вытеснения (LRU/LFU), cache-aside vs write-through/write-back, инвалидация, thundering herd, CDN для статики.
Умею, если: объясняю, где ставлю кэш, как его инвалидирую и что будет при его отказе.
Источники: knowledge-base.md §4 · статья Яндекса (L1/L2, 45.5) · Сюй гл. 1.
07. Асинхронная обработка: очереди и потоки
Message queues (Kafka/RabbitMQ), паб-саб, at-least-once / exactly-once, idempotency потребителей, backpressure, batch vs stream.
Умею, если: могу объяснить, что выношу из request-path в очередь и что делаю при потере/дубле сообщения.
Источники: knowledge-base.md §8 · DDIA гл. 11–13 (45.39).
08. Отказоустойчивость и надёжность
SPOF-анализ, репликация + failover, health checks, таймауты/ретраи с idempotency, circuit breaker, graceful degradation, SLA/99.9%, много-ДЦ топологии (majority-коммит).
Умею, если: для нарисованной схемы прохожу по каждой ноде и говорю, что будет при её падении.
Источники: knowledge-base.md §9 · статья Яндекса (45.5) · DDIA гл. 9 (45.39).
09. Согласованность и распределённые транзакции
CAP/PACELC, ACID vs BASE, уровни изоляции, linearizability vs eventual consistency, 2PC vs сага, консенсус (Raft/Paxos) — уметь упомянуть на правильном уровне.
Умею, если: объясняю, какую согласованность выбираю для конкретного кейса и чем плачу.
Источники: knowledge-base.md §7 · DDIA гл. 8, 10 (45.39).
10. Прикладные компоненты и паттерны
Дизайн API (REST/gRPC, пагинация), rate limiter (leaky bucket), генераторы ID (snowflake), delivery real-time (WebSocket / long-polling / SSE), поисковый краулер, автозаполнение.
Умею, если: для любого из компонентов могу в 2 фразах описать схему и трейдофф.
Источники: Сюй гл. 4, 5, 7, 9, 13 · knowledge-base.md.
11. Эталонные архитектуры сервисов
Сквозные разборы: URL shortener, лента новостей, мессенджер, медиа-хостинг — знать ход решения целиком, а не по кусочкам.
Умею, если: собираю полный разбор ленты за 15 минут по фреймворку из 6 этапов.
Источники: classic-designs.md · Сюй гл. 8, 11–15 (45.38).
12. Эксплуатация и наблюдаемость
Метрики/логи/трейсинг, как деплоим без простоя (rolling/canary), shadow traffic, конфигурация, топология ДЦ, «metrics first».
Умею, если: на этапе 6 сам называю наблюдаемость и стратегию выката, не дожидаясь вопроса.
Источники: knowledge-base.md §10 · статья Яндекса, этап 6 (45.5).
Связанные документы
- Обзорная статья по брифу (15 мин) →
articles/00-overview.md— TASK-45.40 - Статья по каждому разделу (10–20 мин) →
articles/01…12— TASK-45.41–45.52 - Глубина:
knowledge-base.md(справочник),methodology.md(как вести секцию),classic-designs.md(разборы),materials/(конспекты источников)