← Все навыки

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

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

3 модуля Middle+ / Senior Индивидуально с ментором

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

  • Вы готовитесь к собеседованию на позицию 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, CQRS, Event Sourcing, Saga
  • Database Per Service для минимизации зависимостей между микросервисами
  • API-композиция: как собрать ответ из нескольких сервисов
  • CQRS для разделения операций чтения и записи с независимым масштабированием
  • Event Sourcing для сохранения истории изменений вместо текущего состояния
  • Сага: хореография против оркестровки и компенсирующие транзакции

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

API Gateway и Backends for Frontends
  • API Gateway для централизованной маршрутизации, агрегации данных и сквозных функций
  • Backends for Frontends: адаптация API под разные типы клиентов
  • Чем платят за шлюз: единая точка отказа и рост связности

Ещё немного паттернов

Service Discovery, развёртывание, отказоустойчивость
  • Обнаружение сервисов на стороне клиента и на стороне сервера
  • Паттерны развёртывания: экземпляр сервиса на хост, сине-зелёное развёртывание
  • Отказоустойчивость: автоматический выключатель (Circuit Breaker) и переборка (Bulkhead)
  • Transactional Outbox для гарантированной доставки сообщений

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

Выбор технологий, 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, шардинга, репликации и отказоустойчивости

Практика: архитектура музыкальной платформы «ТУНЕЦ»

Две встречи с ментором в формате архитектурного комитета: черновик — обратная связь — защита финального решения

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

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

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

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