Solution Architecture: Модули
Программа учит проходить путь от бизнес-требований к обоснованной архитектуре решения: делать атрибуты качества измеримыми, выбирать стиль и паттерн интеграции, проектировать данные и безопасность, оценивать компромиссы облака и стоимости. Результат - решение, описанное через C4 и ADR и прошедшее ревью.
01
Требования, атрибуты качества и ограничения
Превратить расплывчатое бизнес-желание в проверяемые сценарии качества.
- Функциональные и нефункциональные требования
- Формат сценария атрибута качества
- Ограничения: бюджет, команда, регулирование, legacy
- Компромиссы между атрибутами
- Выявление неоднозначности в требованиях
Лабораторная: По заданному бизнес-описанию подготовить восемь сценариев качества и приоритизированный список ограничений.
02
Архитектурные стили и границы
Оценивать выбор стиля в контексте команды, требований и стадии роста.
- Компромиссы монолита, модульного монолита и микросервисов
- Границы домена и bounded context
- Событийная архитектура и её цена
- Layered и hexagonal: где какой уместен
- Эволюционная архитектура и пути миграции
Лабораторная: Подготовить два варианта стиля для одних и тех же требований, сравнительную таблицу и рекомендацию.
03
Паттерны интеграции
Строить надёжные и устойчивые к изменениям связи между системами.
- Выбор между синхронным API и асинхронными сообщениями
- Идемпотентность, повторы и паттерн outbox
- Версионирование API и эволюция контракта
- Anti-corruption layer и внешние системы
- Saga и альтернативы распределённым транзакциям
Лабораторная: Спроектировать поток интеграции с платёжным провайдером и складской системой и свести сценарии отказов в таблицу.
04
Архитектура данных
Балансировать владение данными, консистентность и потребности отчётности.
- Данные каждого сервиса и риск общей базы
- Выбор между строгой и итоговой консистентностью
- CQRS, read-модели и кеш
- Миграция данных и подходы без простоя
- Разделение аналитических и операционных данных
Лабораторная: Карта владения данными для домена заказов и план миграции с legacy-базы.
05
Архитектура безопасности
Закладывать безопасность в дизайн, а не добавлять её сверху.
- Моделирование угроз (STRIDE)
- Аутентификация, авторизация и потоки OAuth 2.0 / OIDC
- Границы доверия и сегментация сети
- Управление секретами и шифрование
- Проверка по OWASP API Security Top 10
Лабораторная: Для заданного решения построить диаграмму границ доверия, список угроз и меры снижения.
06
Облако, отказоустойчивость и стоимость
Связать модель развёртывания, устойчивость и стоимость с требованиями.
- Managed-сервис или самостоятельная эксплуатация
- Отказоустойчивость на нескольких зонах, RTO и RPO
- Цена сложности и зависимость от вендора
- Моделирование ёмкости и стоимости
- Требования к observability в архитектуре
Лабораторная: Таблица компромиссов устойчивости и стоимости для двух вариантов развёртывания (числа фиксируются как допущения).
07
Документирование с C4 и ADR
Держать архитектуру понятной для разных аудиторий и пригодной для обновления.
- C4: уровни context, container, component
- Что показывать и не показывать на каждом уровне
- Связь ADR и диаграмм
- Актуальность документации и её владелец
- Dynamic- и deployment-диаграммы
Лабораторная: Набор диаграмм C4 от context до component для учебного кейса.
08
Архитектурное ревью и работа с командой разработки
Донести архитектурное решение до команды и сохранить его при реализации.
- Форматы и критерии архитектурного ревью
- Облегчённый подход в духе ATAM
- Fitness function и автоматические проверки
- Сотрудничество с командой разработки
- Управление отклонением от решения
Лабораторная: Провести учебное архитектурное ревью решения другого участника и оформить письменный результат.