О курсе

Курс охватывает тему 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.

Какие типы баз данных рассматриваются?

В материалах курса рассматриваются реляционные базы данных, базы типа ключ-значение, колоночные и документные базы данных, а также вопросы выбора БД на собеседовании.