О курсе
Курс 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, базы данных и применению паттернов проектирования на практике.