← Все навыки

Системный дизайн

Научитесь проектировать системы так, как это делают на работе: от сбора требований до архитектурных решений, которые проходят ревью и собеседования

2 месяца 13 модулей + практика Индивидуально с ментором

Для кого этот курс

  • Вы готовитесь к собеседованию на позицию Middle+ / Senior и хотите уверенно проходить секцию System Design
  • Вы уже работаете с микросервисами, но хотите систематизировать знания и закрыть пробелы
  • Вы переходите с монолита на микросервисную архитектуру и хотите избежать типичных ошибок

Что вы получите

Системный подход Методика от требований до ADR/RFC, которую используют в продуктовых командах
Готовность к интервью Разбор реальных задач System Design + набор вопросов для самопроверки
Практический проект Спроектируете архитектуру музыкальной платформы от нуля до продакшена
Работа с ментором Индивидуальные занятия, код-ревью архитектурных решений и разбор ваших кейсов

Как проходит обучение

  • Компактная теория в каждом модуле: только то, что нужно для принятия архитектурных решений
  • Разбор сквозной задачи на несколько занятий: формулируете требования, рисуете диаграммы, собираете архитектуру, обсуждаете риски
  • Два полноценных разбора по System Design в формате, приближённом к собеседованию

На каждом этапе рядом будет ментор

Ментор всегда на связи

Личный чат для вопросов и разборов. Встреча с ментором по каждому навыку.

Быстрая проверка

Отправляешь задание → получаешь разбор от ментора. Понимаешь ошибки и знаешь, как улучшить результат.

Готовность к собесу

Подготовься к собеседованию с ментором из нужной компании. Оценивай свой прогресс на мок-интервью.

150+ менторов

Занимайся с менторами по DevOps, деталям баз данных или управлению командой.

Программа курса

От идеи (0) до реализации (1)

Как выявлять и приоритизировать требования, переводить FR/NFR в архитектурные решения
  • Выявление функциональных и нефункциональных требований, их анализ и систематизация
  • Методология сбора требований от заинтересованных сторон и валидация с бизнесом
  • Использование сценариев применения и пользовательских историй для описания функциональности

Нефункциональные требования

Метрики, расчёт нагрузки, доступность, перцентили задержек, масштабируемость
  • Ключевые метрики: перцентили времени отклика, DAU/MAU, RPS/RPM для оценки производительности
  • Расчёт дискового пространства под базы данных с учётом индексов, резервов и буфера роста
  • Анализ критических характеристик: доступность, надёжность, масштабируемость, отказоустойчивость

Описание архитектуры

Архитектурные представления, инструменты, диаграммы и роль архитектора
  • Классификация архитектурных подходов: системная архитектура и архитектура решения
  • Представление архитектуры через UML-диаграммы и PlantUML с визуализацией компонентов
  • Диаграммы последовательности для моделирования динамического поведения и взаимодействия сервисов

Паттерны микросервисной архитектуры

Когда микросервисы уместны, ключевые принципы, компромиссы и типичные ошибки
  • Определение и преимущества микросервисной архитектуры: независимость, гибкость, масштабируемость
  • Сравнение микросервисов и монолитной архитектуры по характеристикам разработки и эксплуатации
  • Основные критерии выбора архитектуры для разных типов приложений

Паттерны декомпозиции

Разбиение по бизнес-возможностям и доменам, bounded contexts, контекстные карты
  • Разбиение по бизнес-возможностям как основная стратегия идентификации сервисов
  • Разбиение по поддоменам через предметно-ориентированное проектирование (DDD) и Bounded Context
  • Принципы единственной ответственности (SRP) и согласованного изменения (CCP) при проектировании

Рефакторинг при переходе на МСА

Безопасная эволюция монолита, Strangler-подходы, снижение рисков миграции
  • Паттерн «Душитель» для постепенного переноса функций из монолита в микросервисы
  • Паттерн «Предохранительный слой» для интеграции с устаревшими подсистемами
  • Итеративный подход вместо полной переписи приложения с нуля

Управление данными

Database per Service, подходы к консистентности, саги и долгие процессы
  • Database Per Service для минимизации зависимостей между микросервисами
  • CQRS для разделения операций чтения и записи с независимым масштабированием
  • Event Sourcing для сохранения истории изменений вместо текущего состояния

Распределённые транзакции

Saga, Transactional Outbox, компенсирующие транзакции
  • Паттерн Saga с двумя подходами: хореография (децентрализованная) и оркестровка (централизованная)
  • Transactional Outbox для гарантированной доставки сообщений без распределённых транзакций
  • Управление компенсирующими транзакциями при сбоях в слабосвязанных системах

Коммуникация и развёртывание

API Gateway, BFF, Service Discovery, стратегии деплоя
  • API Gateway для централизованной маршрутизации, агрегации данных и offloading сквозных функций
  • Backends for Frontends для адаптации API под разные типы клиентов
  • Service Discovery (клиентский и серверный) и паттерны развёртывания (Blue-Green, Service Per Container)

Советы по проектированию

Выбор технологий, AS-IS / TO-BE, ведение ADR, Agile и архитектура
  • AS IS / TO BE диаграммы для фиксации текущей и желаемой архитектуры с заинтересованными сторонами
  • Ведение Architectural Decision Record (ADR) для документирования решений, контекста и альтернатив
  • Оттягивание выбора технологий до закрытия неопределённости через анализ требований

Вопросы к собеседованию

Проверенный набор вопросов по микросервисам — потренируйтесь до реального интервью
  • Практические вопросы по Database Per Service, API Gateway и их недостаткам
  • Message Broker, Saga и Event Sourcing в контексте интервью
  • Авторские ответы с примерами реализации: Circuit Breaker, Kubernetes, мониторинг

Как пройти System Design интервью

Пошаговый план, тайминг, на что обращают внимание интервьюеры
  • Пятиэтапный план: уточнение требований, описание флоу, high-level дизайн, deep dive, обсуждение
  • Расчёт метрик (RPS, дисковое пространство), описание пользовательских сценариев как основа архитектуры
  • Демонстрация экспертизы через обсуждение trade-offs, шардинга, репликации и отказоустойчивости

Практика: архитектура «СПОТИФАЙ»

3-5 встреч с ментором — проектируете музыкальную платформу от требований до CDN

  • Драфт с защитой функциональных и нефункциональных требований, сущностей и доменов
  • Разбор каталога с паттерном для высокой нагрузки на чтение
  • ML-блок: рекомендации и персонализация
  • Деньги и реклама: монетизация, биллинг, рекламная подсистема
  • Проектирование собственного CDN для раздачи контента

Результат выпускника

Наш менти проходит секцию System Design после завершения курса. Посмотрите, как это выглядит на практике:

System Design интервью после курса