О курсе

Курс System Design от Владимира Балуна (2023) ориентирован на IT-специалистов, желающих углубить знания в проектировании сложных систем. Программа состоит из шести уроков, каждый из которых посвящён определённому аспекту system design.

Первый урок знакомит с базовыми терминами и компонентами: архитектурные стили (клиент-сервер, P2P), масштабирование, монолитная и микросервисная архитектура, балансировка нагрузки, проксирование, кеширование, API (REST, gRPC, GraphQL) и observability.

Второй урок посвящён хранению данных: рассматриваются типы баз данных (реляционные, документоориентированные, key-value и др.), индексы, транзакции, ACID и BASE, брокеры сообщений и CDN.

Третий урок углубляется в распределённое хранение: CAP-теорема, репликация, шардирование, партиционирование, консенсус и внутреннее устройство Kafka.

Четвёртый урок охватывает паттерны проектирования: CQRS, pub/sub, circuit breaker, отложенные задачи, релизные стратегии и событийно-ориентированную архитектуру.

Пятый и шестой уроки посвящены разбору архитектуры популярных систем: Telegram, лента друзей ВКонтакте, Яндекс Go, LeetCode, Booking.com и Google Drive.

В рамках курса предусмотрены бонусные задания по проектированию API, баз данных и применению паттернов на практике.

Что рассматривается в программе

  • Рассматриваются основные компоненты и термины system design
  • Разбираются типы баз данных и стратегии их выбора
  • Изучаются репликация, шардирование и партиционирование данных
  • Анализируются паттерны проектирования: CQRS, circuit breaker, отложенные задачи и другие
  • Проводится разбор архитектуры популярных систем (Telegram, Booking.com и др.)
  • Рассматриваются подходы к балансировке нагрузки, кешированию и проксированию

Кому может быть полезен курс

  • IT-специалистам уровня middle и выше, готовящимся к собеседованиям на позиции senior
  • Разработчикам, участвующим в проектировании сложных систем и желающим систематизировать знания
  • Тем, кто хочет разобраться в архитектуре высоконагруженных сервисов
  • Специалистам, которым необходимо ознакомиться с паттернами проектирования и распределёнными системами

Вопросы о программе

Какие темы охватывает курс?

Курс охватывает основные компоненты систем, хранение данных, распределённое хранение, паттерны проектирования и разбор архитектуры популярных сервисов.

Для кого предназначен курс?

Курс предназначен для IT-специалистов уровня middle и выше, которые хотят подготовиться к system design интервью или улучшить навыки проектирования сложных систем.

Какие популярные системы разбираются в курсе?

В курсе разбираются архитектуры Telegram, ленты друзей ВКонтакте, Яндекс Go, LeetCode, Booking.com и Google Drive.

Есть ли практические задания?

В рамках курса предусмотрены бонусные задания по проектированию API, базы данных и применению паттернов проектирования на практике.