open atlas

system-design

Основы System Design

Кирпичи больших систем и фреймворк интервью — масштабирование, доступность, распределение данных, кэширование, асинхронность и трейдоффы под нагрузкой.

10 юнитов·72 уроков·~53 ч

Начать трек
00

Начни отсюда

Что такое system design и рамка, с которой подходишь к любой задаче проектирования.
01

Масштабируемость и производительность

Задержка, пропускная способность и оценки на салфетке, что управляют любым решением о масштабировании.
02

Доступность и надёжность

Резервирование, failover и математика SLO, решающая сколько девяток можно обещать.
03

Трафик и периметр

Как запросы распределяются по серверам и отдаются ближе к пользователю: балансировщики, прокси, шлюзы, CDN.
04

Распределение данных

Репликация, шардинг, consistent hashing и трейдоффы CAP/PACELC, вытекающие из дробления данных.
05

Кэширование при масштабе

Где кэшировать, что вытеснять и почему инвалидация — самая трудная часть.
06

Асинхронность и сообщения

Развязка через очереди и pub/sub, событийный поток и выживание под backpressure.
07

Выбор хранилища

Выбор правильного хранилища: реляционное, NoSQL, blob/object, time-series, поиск.
08

Строительные блоки

Переиспользуемые механизмы из каждого дизайна: rate limiter, уникальные ID, фильтры Блума, geohashing, выбор лидера.
09

Фреймворк интервью

Повторяемая процедура: требования, оценки, высокоуровневый дизайн, deep-dive, узкие места, трейдоффы.

Проекты по этому треку

Guided-проекты, которые закрепляют изученное здесь.

◆ Проекты

Сервис фич-флагов

Собери небольшой сервис флагов с правилами таргетинга, процентными раскатками и типизированным SDK, который вычисляет флаги на клиенте из закешированного набора правил.

◆ Проекты

Загрузка через presigned URL

Прямая загрузка в хранилище через presigned URL с ограничениями размера и content-type и webhook завершения, проверяющим, что объект действительно прибыл, — чтобы API-сервер никогда не касался байт файлов.

◆ Проекты

Досье по проектированию системы

Возьми одну крупную систему — сократитель URL, который должен обслуживать миллиарды редиректов, — и напиши проектный документ, который staff-инженер защищал бы на ревью. Никакого работающего кода: результат — это строгий текст, числа и диаграммы. Ты пройдёшь путь от расплывчатого «сделай короткие ссылки» к очерченным требованиям, прикидочной модели нагрузки, конкретной модели данных и API, к тому единственному узкому месту, которое реально ломается под нагрузкой, и к честной карте того, чем ты пожертвовал ради его устранения.

◆ Проекты

URL-сокращатель под нагрузкой

Собери URL-сокращатель, который выдерживает настоящий трафик, — а потом эксплуатируй его: задеплой, наблюдай и разберись с инцидентом, когда одна горячая ссылка плавит твой кэш.

Следующий трек

Разборы System Design

Сквозные разборы реальных систем — сокращатель ссылок, чат, лента, YouTube, платежи — требования, оценки, высокоуровневый дизайн и сложные deep-dive.