Программа и содержание
Сайт: Сайт автора
Продвинутый курс для системных аналитиков, которые уже знают базу архитектуры и хотят глубже разбираться в проектировании сложных и высоконагруженных систем.
На курсе вы разберёте C4, архитектурные слои, антипаттерны, модульность, индексы, репликацию, шардирование, кэширование и NoSQL
Вам подойдёт этот курс, если:
Уже знаете базу архитектуры, но хотите глубже разобраться в сложных темах: highload, C4, архитектурные слои, модульность, индексы, репликация, шардирование, кэширование и NoSQL
Хотите не просто знать термины, а уметь объяснять, почему выбрано именно такое архитектурное решение
Хотите укрепиться как senior-аналитик или развиваться в сторону архитектора, защищать архитектурные решения, понимать trade-off, риски, антипаттерны и последствия решений для системы
Чему научитесь:
Поймете, что такое highload-системы и какие проблемы возникают при росте нагрузки
Научитесь работать с RPS, Latency, Throughput, SLA, SLO, SLI и понимать их влияние на архитектуру
Сможете описывать архитектуру в нотации C4: Context и Container
Разберетесь в архитектурных слоях, уровнях, антипаттернах и типовых ошибках проектирования
Поймете принципы модульности, связности и связанности, чтобы оценивать качество разбиения системы
Разберетесь, когда нужны индексы, репликация, шардирование, кэширование и NoSQL, а когда они создают новые проблемы
Сможете обсуждать архитектуру сложной системы через ограничения, trade-off, риски и последствия решений
На итоговом проекте соберете архитектурное описание системы: C4-схемы, слои, хранилища и решения по масштабированию
Если Хард пока рано:
Тогда начните с базового курса по архитектуре.
Курс \"Архитектура систем. Хард\" рассчитан на тех, кто уже понимает базу и хочет глубже разбираться в сложных архитектурных решениях: highload, архитектурных слоях, антипаттернах, индексах, репликации и шардировании.
Если пока плаваете в этих темах, сначала пройдите \"Архитектура систем. База\". Там вы разберётесь в фундаменте: НФТ, декомпозиции по DDD, API, очередях, вебхуках, callbacks и балансировщиках.
Что делает курс практичным:
Сквозной проект
Весь курс строится вокруг МаркетХаба: вы видите, как архитектура усложняется по шагам, а не изучаете темы в отрыве друг от друга
Не просто термины
Разбираем не \"что такое шардирование\", а зачем оно нужно, какие проблемы решает и какие новые риски создаёт
Фокус на trade-off
Учитесь смотреть на архитектурное решение через ограничения, риски, последствия и компромиссы
C4 на практике
Не просто говорим про архитектуру, а учимся описывать её структурно: через контекст, контейнеры и понятные схемы
Highload без магии
Разбираем нагрузку, SLA/SLO/SLI, CAP, кэширование, репликацию и шардирование простым языком и на примерах
Закрываем пробелы
Разбираем темы, в которых чаще всего плавают аналитики, понятным языком и на реальных примерах
Результат курса — архитектурное решение сложной системы:
На выходе у вас будет готовое описание архитектуры: 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 базы данных:
Что