Архитектура систем. Хард
О чём курс
Владимир Бурмистров разбирает проектирование сложных и высоконагруженных систем, а на сквозном проекте «МаркетХаб» вы подготовите архитектурное описание системы.
Для кого
Курс рассчитан на системных аналитиков, которые знают основы архитектуры и хотят увереннее разбирать решения для систем с высокой нагрузкой. Он также адресован тем, кто развивает навыки senior-аналитика или движется к роли архитектора: здесь нужно объяснять выбор решений через ограничения, компромиссы, риски и последствия для системы.
Что вы разберёте
Владимир начинает с проблем роста нагрузки и метрик RPS, Latency, Throughput, SLA, SLO и SLI. Затем вы научитесь описывать систему в нотации C4 на уровнях Context и Container, выделять архитектурные слои и замечать ошибки в их границах. Программа охватывает модульность, связность и связанность, архитектурные стили и типичные антипаттерны.
Работу с данными автор разбирает через индексы, репликацию, партиционирование и шардирование. Вы сравните варианты NoSQL-хранилищ, способы кэширования и роль API Gateway. Для каждого подхода курс рассматривает условия применения и проблемы, которые могут появиться после его внедрения.
Сквозной проект и задания
На примере «МаркетХаба» вы последовательно строите C4-схемы, разделяете систему на слои и отрабатываете архитектурные паттерны. Дальше в проект добавляются решения по репликации, шардированию, кэшу и API Gateway. Итоговая работа объединяет схемы, слои, хранилища и логику масштабирования в одно архитектурное описание.
Автор и формат
Владимир Бурмистров — главный системный аналитик ИТ-холдинга Т1 на проекте Dion; он специализируется на системном анализе и архитектуре и работает в IT с 2007 года. В тарифе «Только послушать» доступны все уроки и материалы для самостоятельного изучения на пять месяцев. Проверка домашних заданий, обратная связь и участие в воркшопах в этот тариф не входят.
Программа обучения
Неделя 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 (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.