System Design · Бесплатный курс
Как спроектировать систему, которая справится с работой
Начнём с сайта для записи на школьные мероприятия. Разберём, куда уходит запрос, где хранятся данные и почему два человека могут занять последнее место. Затем добавим нагрузку, чат, видео и несколько регионов.
В каждой главе есть объяснение, задания и разбор. Для начала достаточно браузера; код, SQL и расчёты появляются постепенно. Углублённый маршрут ведёт через сети и устройство хранения к распределённым гарантиям и архитектурной защите. Все материалы и локальные лаборатории бесплатны.
Пройдено проверочных вопросов: 0 из 16.
Начать: Из чего состоит приложение →От объяснения к собственному решению
Загружаем практический прогресс… Это отдельные результаты: проверочные вопросы и прежние заметки сохранены.
После каждой главы решите самостоятельный сценарий, затем обновите соответствующий этап проекта. Открытый разбор или сохранённый текст сами по себе не означают, что архитектура проверена.
Как пройти курс
Сначала пройдите 16 основных глав и развивайте свой «Клуб». Затем — 16 инженерных блоков по указанным предварительным знаниям. Если база уже знакома, начните с проверки нужной темы и переходите к её углублённому разбору.
Результат обучения — требования, схема, расчёты, история отказа и проверка решения при новом условии. Проверочный вопрос помогает найти ошибку; он не заменяет защиту архитектуры.
Локальные модели требуют Python 3.9 или новее; SQL-лаборатория отдельно требует PostgreSQL. Платные API и облако для завершения маршрута не нужны.
Основной маршрут
16 глав: основы, масштабирование, сбои и защита решения на собеседовании. Лучше проходить по порядку: задания опираются на предыдущие главы.
- 01Из чего состоит приложениеОткрыть главу →
- 02HTTP и договор между клиентом и серверомОткрыть главу →
- 03Данные: модель, хранение, SQL и конкурентные измененияОткрыть главу →
- 04Требования и математика нагрузкиОткрыть главу →
- 05Как один сервис выдерживает рост нагрузкиОткрыть главу →
- 06Кэш: версии, гонки, нагрузка и допустимая свежестьОткрыть главу →
- 07Репликация: журнал, конфликты и проверяемая согласованностьОткрыть главу →
- 08Шардирование: ключи, перекос, индексы и перенос владенияОткрыть главу →
- 09События: журнал, доставка, время и воспроизводимый результатОткрыть главу →
- 10Чат, лента и поток событийОткрыть главу →
- 11Файлы, видео и фоновая обработкаОткрыть главу →
- 12Безопасность, права и персональные данныеОткрыть главу →
- 13Надёжность и восстановлениеОткрыть главу →
- 14Изменения без остановки и несколько регионовОткрыть главу →
- 15Архитектурная защита и проверка решенийОткрыть главу →
- 16Собеседование и дальнейшая практикаОткрыть главу →
Инженерный маршрут · 16 углублённых блоков
База понятна, но в решении остаются неудобные вопросы? Здесь разбираем их отдельно: что гарантирует кворум, где заканчивается «ровно один раз», как переключить регион и не потерять новые записи.
- DNS, достижимость и ограничения транспортаРазобрать →
- TLS, HTTP-потоки, пулы и посредникиРазобрать →
- Движки хранения: страницы, WAL, B+tree и LSMРазобрать →
- Распределённые транзакции: решение, неизвестный исход и компенсацияРазобрать →
- Изоляция: снимки, потерянные изменения и write skewРазобрать →
- Согласованность: какие истории операций допустимыРазобрать →
- Консенсус: почему большинство ещё не доказательствоРазобрать →
- Где заканчивается «ровно один раз»Разобрать →
- Горячие ключи и перенос данных без второго владельцаРазобрать →
- Перегрузка: как не превратить замедление в отказРазобрать →
- Batch и streams: время, состояние, replay и сверкаРазобрать →
- Миграции: перенести данные и не затереть новые записиРазобрать →
- Регион недоступен: что можно обещать после переключенияРазобрать →
- Поиск и лента: производные представления данныхРазобрать →
- Бронирование и журнал операций: сохранить смысл при повторахРазобрать →
- Архитектурная защита: четыре системы и изменение требованийРазобрать →
Тематические ориентиры: DDIA, Alex Xu / ByteByteGo, Educative, университетские программы и официальные инженерные документы. Объяснения, условия задач и лаборатории написаны для этого курса.
Как проверяется учебный маршрут →
Как работать с заданиями
Сначала запишите своё решение, потом читайте разбор. Меняйте условия и проверяйте, выдерживает ли их ваша схема. Проекты сохраняются в рабочей тетради; оценивать архитектуру нужно по критериям задания. Правильный ответ на один вопрос не заменяет эту работу.