О курсе
Курс охватывает тему System Design — от базовых понятий до проектирования распределённых систем. В программе последовательно разбираются этапы работы над архитектурой: формирование функциональных и нефункциональных требований, учёт бизнес-ограничений, расчёт нагрузки, пропускной способности и стоимости инфраструктуры.
Отдельные разделы посвящены верхнеуровневому дизайну, клиент-серверной архитектуре, подходам к построению монолитов и микросервисов. Рассматриваются типы баз данных — реляционные, key-value, колоночные и документные, а также вопросы выбора БД, транзакций, CAP-теоремы и принципов ACID.
В блоке о модульном дизайне обсуждаются брокеры сообщений, API Gateway, оркестрация и хореография. Темы оптимизации включают балансировку нагрузки, масштабирование баз данных и кэширование. Дополнительно затрагиваются ограничение нагрузки, защита системы, мониторинг и внешние подсистемы.
Материал включает разбор учебных кейсов, например проектирование системы бронирования отелей и расчёт нагрузки для маркетплейса. Часть программы посвящена подготовке к собеседованиям: чек-листы, разбор вопросов и обсуждение того, как выстраивать ответ по System Design.
Что рассматривается в программе
- Формирование функциональных и нефункциональных требований, учёт бизнес-ограничений
- Расчёт нагрузки, пропускной способности и стоимости инфраструктуры
- Проектирование архитектуры с учётом масштабируемости и отказоустойчивости
- Разбор клиент-серверных моделей, монолитов и микросервисов
- Выбор баз данных: SQL, NoSQL, key-value, документные и колоночные
- Работа с транзакциями, CAP-теоремой и принципами ACID
- Проектирование модульных систем с брокерами сообщений и API Gateway
- Оптимизация через кэширование, балансировку нагрузки и шардирование
Кому может быть полезен курс
- Разработчикам Frontend, Backend и SW, которые интересуются переходом на уровень Senior или Architect
- Специалистам по тестированию и QA, которым нужно ознакомиться с проектированием систем и поиском узких мест
- Системным аналитикам, работающим с анализом требований и проектированием решений
- Solution Architects и Tech Leads, которым важно систематизировать знания об архитектуре
- DevOps и SRE-инженерам, имеющим дело с распределёнными системами
Вопросы о программе
Какие темы рассматриваются в курсе?
В программе рассматриваются требования, расчёт нагрузки и стоимости, верхнеуровневый дизайн, базы данных, модульный дизайн, оптимизация, дополнительные подсистемы, безопасность и мониторинг. Отдельное внимание уделено подготовке к собеседованиям по System Design.
Для кого предназначен этот курс?
Курс ориентирован на разработчиков, QA-специалистов, системных аналитиков, архитекторов решений, Tech Leads, DevOps/SRE-инженеров, студентов, начинающих инженеров и менеджеров, которым нужно понимать основы проектирования систем.
Какие учебные кейсы разбираются в программе?
Среди примеров — проектирование системы бронирования отелей и расчёт нагрузки для маркетплейса. Также в программе есть чек-листы для собеседования и разбор вопросов по System Design.
Какие типы баз данных рассматриваются?
В материалах курса рассматриваются реляционные базы данных, базы типа ключ-значение, колоночные и документные базы данных, а также вопросы выбора БД на собеседовании.