System Design: от паники к алгоритму
О чём курс
Олег Козырев разбирает алгоритм прохождения секции по проектированию распределённых систем (System Design) для технических собеседований в крупные технологические компании. Материал помогает систематизировать архитектурные знания, перейти от хаотичных рассуждений к последовательному плану и понять инженерные принципы работы высоконагруженных сервисов.
Для кого
Материал ориентирован на специалистов, которые готовятся к прохождению собеседований или внутреннему повышению квалификации:
- разработчики уровня Middle, планирующие переход на грейд Senior;
- инженеры, которые хотят устроиться в бигтех-компании, включая Яндекс, Озон, Т-Банк, ВКонтакте, Сбер, Авито или Wildberries;
- специалисты, у которых нет практического опыта проектирования распределённых систем на текущих рабочих проектах;
- инженеры, стремящиеся разобраться в деталях работы инфраструктурных компонентов и архитектурных решений.
Что внутри
Автор предлагает пошаговую систему подготовки, разделенную на пять недель с постепенным переходом от базовых правил прохождения интервью к сложным инженерным задачам.
В первой части программы автор разбирает структуру и регламент собеседования: 45-минутный фреймворк, формулирование уточняющих вопросов в начале встречи и демонстрацию сигналов инженерной зрелости. В практическом блоке рассматриваются расчет нагрузок через capacity planning, проектирование REST API, применение сетевых шлюзов, балансировщиков нагрузки, CDN и разбор сквозного примера ленты объявлений.
Второй и третий модули охватывают архитектуру баз данных, асинхронные коммуникации и обеспечение устойчивости. Автор объясняет критерии выбора между SQL и NoSQL, устройство индексов B-Tree и LSM, уровни изоляции транзакций, алгоритмы распределенного консенсуса, такие как Raft, а также репликацию и шардирование. В блоке надежности анализируются стратегии кэширования, проблемы инвалидации данных, брокеры сообщений, реализация идемпотентности, транзакционный паттерн outbox, rate limiting и изоляция сбоев с помощью circuit breaker.
Четвертый и пятый модули содержат разбор практических кейсов из реальной практики. В их числе проектирование архитектуры мессенджера уровня Telegram, видеоплатформы YouTube, сервиса бронирования билетов с защитой от овербукинга, поискового автодополнения и геораспределенного сервиса такси с геоиндексами. Завершает обучение блок рекомендаций по коммуникации: управление таймингом, мышление вслух и аргументация решений при углубленных вопросах интервьюера.
Формат материалов
Программа тарифа «Стандарт» включает в себя следующие составляющие:
- видеозаписи всех уроков на пять недель обучения;
- еженедельные онлайн-сессии вопросов и ответов;
- методические материалы, конспекты, шпаргалки и деревья решений;
- справочник по продвинутым темам проектирования архитектуры.
Программа обучения
Неделя 01. Алгоритм интервью + первый слой архитектуры Блок 1 · Алгоритм интервью: Как устроено SD-интервью. Что на самом деле оценивают и почему «правильного ответа» не существует. Сигналы зрелости. По каким фразам интервьюер отличает Senior от джуна, и как их подавать. 5-шаговый фреймворк разбора. Скелет, который превращает «спроектируй X» в план на 45 минут. Уточняющие вопросы. Что спросить в первые 5 минут, чтобы сузить задачу (плюс памятка частых пропусков). Блок 2 · Первый слой архитектуры: Capacity planning через ×10 DAU. Прикинуть RPS, storage и bandwidth на салфетке, без страха перед числами. REST API на собесе. Контракт, Idempotency-Key и почему «Monolith First» это сильный ход, а не слабость. Сквозной кейс: Лента Avito. Прогоняем весь фреймворк на живом примере от и до. Сеть и доставка. Load Balancer, API Gateway, CDN, DNS, из чего собирается вход в любую систему. Неделя 02. Ядро баз данных Блок 1 · Хранение и запросы: Модели данных и выбор БД. SQL vs NoSQL по делу: когда документ, когда KV, когда граф. Индексы под собес. B-Tree vs LSM и почему запрос «тормозит», на уровне, где не подловят. Транзакции и ACID. Что реально гарантирует БД, а что ты додумал. Уровни изоляции и аномалии. Dirty read, phantom, write skew, и как выбрать уровень под задачу. Блок 2 · Распределённые данные: Репликация. Single-leader и leaderless: пережить падение узла и не потерять данные. Distributed consensus (Raft). Как кластер договаривается о лидере, без академизма. Шардирование и партиционирование. Как разрезать данные, когда они не влезают на один узел. CAP и PACELC. Теорема, которую все цитируют неправильно, с практическим применением. Неделя 03. Кэш, очереди и устойчивость Блок 1 · Кэш и очереди: Кэширование. Стратегии и архитектура: где поставить кэш и что он реально ускорит. Проблемы кэша. Инвалидация, stampede, «протухшие» данные, любимая ловушка интервьюеров. Очереди и брокеры. Message Queue vs Event Stream, Kafka: когда async, когда sync. Блок 2 · Согласованность между сервисами: Идемпотентность и transactional outbox. Как не отправить платёж дважды и не потерять событие. Распределённые транзакции. 2PC, 3PC, saga: согласовать данные между сервисами без общей БД. Блок 3 · Отказоустойчивость: Retries, timeout, backoff. Как ретраить, чтобы не устроить лавину на упавший сервис. Circuit breaker и bulkhead. Локализовать отказ, чтобы падение одного не утянуло всё. Rate limiting. Token bucket и sliding window: защита от перегрузки и абьюза. Масштабирование и graceful degradation. Как деградировать красиво, а не падать целиком. Неделя 04. Первые боевые кейсы Блок 1 · Мессенджер и лента: Мессенджер (Telegram). WebSockets vs polling, presence, доставка и порядок сообщений, хранение истории. Лента (Avito Объявления). Fan-out on write vs on read, ранжирование, кэш ленты, media pipeline. Блок 2 · Видеоплатформа: Видеоплатформа (YouTube). Upload и транскодирование, CDN-доставка, обзор рекомендаций. Неделя 05. Сложные кейсы + поведение на собесе Блок 1 · Три сложных кейса: Билеты (Яндекс Афиша). Double booking, борьба за одно место, виртуальная очередь под пик. Поиск + Autocomplete (Яндекс / Google). Inverted index, Elasticsearch, trie, relevance и ранжирование. Ride-sharing (Яндекс Такси / Uber). Geospatial-индексы (geohash, quadtree), матчинг, real-time tracking, surge. Блок 2 · Поведение на собесе: Как вести себя на собесе. Тайминг 45 минут, думать вслух, первые 5 минут, как реагировать когда «копают» и выкрутиться из тупика. Объяснять «почему», а не пересказывать паттерны.
Теги курса
Другие материалы автора 2
ОК Олег Козырев Все материалыОтзывов пока нет. Будьте первым!
Нажмите «Купить» и оплатите взнос любым удобным способом (карта, СБП, электронные кошельки). Сейчас идёт сбор взносов, поэтому цена минимальная: после завершения сбора она вырастет примерно вдвое.
Складчина ещё в сборе, поэтому материал выдают не сразу, а когда сбор завершится. Выдача идёт на нашем основном сайте — материал появится там в разделе «Мои складчины». Если покупаете впервые, после оплаты на почту придёт письмо «Завершить регистрацию»: задайте пароль, и аккаунт на основном сайте будет готов. Подробная инструкция по входу — на странице после оплаты.
Это минимальный взнос на этапе сбора. Стоимость официального доступа делится между всеми участниками; когда сбор завершится, складчина перейдёт в «Можно купить», и взнос для новых участников вырастет примерно вдвое.