Архитектура систем. Хард
О чём курс
Курс «Архитектура систем. Хард» представляет собой углубленную программу для системных аналитиков, обладающих базовыми знаниями в области архитектуры и стремящихся перейти на уровень Senior или развиваться в сторону архитектора. Основная цель обучения — научить студентов не просто оперировать архитектурными терминами, а глубоко понимать принципы проектирования сложных, высоконагруженных систем (Highload), осознанно выбирать технологические решения и аргументированно защищать их перед командой и бизнесом.
Программа курса сфокусирована на практическом применении знаний. Студенты учатся анализировать архитектурные решения через призму ограничений, рисков, последствий и компромиссов (trade-offs). Обучение проходит в формате сквозного проекта «МаркетХаб», который позволяет видеть, как архитектура системы усложняется и трансформируется по мере роста нагрузки. Такой подход помогает избежать изучения тем в отрыве от реальности и дает четкое понимание того, как теоретические концепции работают в связке.
В ходе обучения вы освоите нотацию C4 для структурного описания архитектуры (Context и Container), разберетесь в архитектурных слоях и уровнях, а также научитесь выявлять и избегать типичных антипаттернов проектирования. Значительная часть курса посвящена работе с нагрузкой: вы изучите метрики RPS, Latency, Throughput, SLA, SLO, SLI и поймете, как они влияют на выбор архитектурных решений. Вы научитесь грамотно применять индексы, репликацию, шардирование, кэширование и NoSQL-решения, понимая не только их преимущества, но и проблемы, которые они могут привнести в систему.
Курс идеально подходит тем, кто хочет укрепить свои позиции как системный аналитик, научиться видеть «узкие места» в системе и предлагать масштабируемые решения. Вы научитесь говорить с разработчиками на одном языке, понимать принципы модульности, связности и связанности, а также проектировать API Gateway и эффективно управлять состоянием системы. Результатом прохождения курса станет готовое архитектурное описание сложной системы, включающее C4-схемы, логику масштабирования и обоснование выбора хранилищ и слоев. Это не просто теоретический курс, а интенсивная практика, направленная на развитие инженерного мышления и способности принимать ответственные архитектурные решения в условиях реальных бизнес-задач.
Программа обучения
Неделя 1. Введение про highload-приложения и С4:
- Урок 1. Зачем системному аналитику понимать архитектуру:
- Определение и зачем нужна архитектура ПО
- Разница и граница разделения обязанностей архитектора и аналитика
- Цена неверного архитектурного решения
- Урок 2. Проблемы highload-приложений:
- Что такое highload системы
- Как измерять нагрузку: метрики RPS, Latency, Throughput, SLA, SLO, SLI
- 6 основных проблем нагруженных систем
- Масштабирование — куда расти?
- База данных — самое уязвимое звено
- Кэширование — не так просто, как кажется
- Сетевые задержки и асинхронность
- Управление состоянием
- Мониторинг и observability
- Примеры плохой архитектуры
- Урок 3. Как строить архитектуру в нотации С4:
- Как описывать архитектуру: ArchiMate, TOGAF, UML, C4
- Концепция нотации С4
- Уровни С4
- Объекты нотации
- Примеры С4
- Урок 4. Разбираем на примере, как строить архитектуру в С4:
- Отрабатываем на примере проекта МаркетХаб, это "сквозной" проект на протяжении всего курса
- Домашняя работа: Построение архитектуры в С4
Неделя 2. Архитектурные слои:
- Урок 5. Архитектурные уровни и слои:
- Зачем слои аналитику
- Что такое слой на примере чистой архитектуры
- Слой vs Уровень
- Уровень представления (Presentation Layer)
- Уровень бизнес-логики (Business Logic Layer)
- Уровень данных (Data Layer)
- Многослойная архитектура (Layered)
- Плюсы и минусы многослойности
- N-Tier — физическое разделение
- Урок 6. Ошибки и антипаттерны при проектировании уровней:
- Зачем аналитику знать антипаттерны
- Что такое антипаттерны и какие бывают на примерах: умный UI, толстый контроллер, прямой доступ из UI в БД, Layer Bleed (размытые границы), God Service, анемичная доменная модель
- Чеклист для ревью требований и архитектурных обсуждений
- Домашняя работа: Разделение по слоям
Неделя 3. Архитектурные стили и подходы:
- Урок 7. Принципы модульности и связности:
- Что такое модульность
- Модульность в контексте связности и связанности
- Связность (Cohesion), виды, примеры хорошей и плохой связности
- Связанность (Coupling), виды, примеры
- Принцип слабой связанности (Loosely Coupled) на практике
- Урок 8. Архитектурные стили и подходы:
- MVC
- Layered Architecture
- Microfrontend
- BFF: Backend for Frontend
- Rate Limiter
- Как аналитику распознать, когда стиль нужен или не нужен
- Урок 9. Разбираем на примере, как разбивать на архитектурные слои и уровни:
- Отрабатываем на примере проекта МаркетХаб, это "сквозной" проект на протяжении всего курса
- Домашняя работа: Отработка архитектурных паттернов
Неделя 4. Индексы, репликация, шардирование:
- Урок 10. Индексы:
- Что такое индексы
- B-Tree
- Hash
- Bitmap
- RUM
- Как и когда индексы помогают, а когда мешают
- Примеры использования
- Урок 11. Репликация:
- Что такое репликация и зачем она нужна
- Какие бывают репликации master-slave / master-master / master-less
- sync / async / semisync
- logical / physical
- push / pull
- CAP-теорема в жизни: какой подход для каких сценариев
- Урок 12. Шардирование:
- Партиционирование и его виды
- Шардирование и его виды
- Горизонтальное и вертикальное шардирование
- Географическое шардирование
- Комбинируем схемы: когда вместе репликация и шардирование
- Сравнение подходов и примеры реальных компаний
- Урок 13. Разбор как делать шардирование и репликацию на примере:
- Отрабатываем на примере проекта МаркетХаб, это "сквозной" проект на протяжении всего курса
- Домашняя работа: Шардирование, репликация
Неделя 5. Кэширование, NoSQL и API Gateway:
- Урок 14. NoSQL базы данных:
- Что такое NoSQL и почему это не "анти-SQL"
- Виды NoSQL
- Разбираем примеры MongoDB, Cassandra и Redis
- Графовые БД
- Выбор БД, типичные ошибки
- Урок 15. Кэширование и in-memory хранилища:
- Определение и суть кэша
- Кэширование и in-memory хранилища
- Когда кэш не нужен
- Где кэш может находиться в системе: browser, CDN, In-memory, Distributed, Database
- Локальный кэш vs распределённый кэш
- Как работает cache hit / miss
- Ключ кэша: что именно храним, примеры
- Cash-aside
- Read-through: кэш сам читает источник
- Write-through: сначала кэш, потом источник
- Вытеснение: как не захламить память
- Инвалидация: самая сложная часть кэша
- Практические кейсы: где кэш уместен
- Урок 16. API Gateway:
- API Gateway: зачем нужна единая точка входа
- Функции API Gateway
- Место API Gateway в общей архитектуре
- Rate Limiting: одно правило для всех запросов
- Агрегация: один запрос клиента — несколько вызовов Gateway
- API Gateway vs BFF: один для всех или у каждого свой
- Gateway: когда брать, когда не брать
- Что должен описать системный аналитик
- Домашняя работа: Добавление API Gateway, кеша
Теги курса
Отзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.