
ARC-020 Проектирование интеграций: от требований до выбора технологий
Описание курса
Курс по проектированию и интеграции современных ИТ-систем с акцентом на архитектурные шаблоны и решение практических задач.
Введение: закон Конвея и его влияние на архитектуру. Эволюция архитектур: event-driven дизайн. Монолит: проблемы и ограничения, компонентная архитектура, SOA, MSA.
Интеграция в микросервисах:
- Внешние сервисы: прямой вызов, шлюз (API-Gateway), BFF.
- Внутренние интеграционные процессы: управление потоком, синхронные и асинхронные подходы, событийная архитектура.
Роль архитектуры в интеграции. Связь требований и архитектуры. Требования к интеграции:
- функциональные требования,
- нефункциональные требования.
Сценарии атрибутов качества. Подбор архитектурного решения в зависимости от требований.
Шаблоны интеграции. Достижение качества проектируемого решения:
- Производительность: основные стратегии, паттерны и анти-паттерны.
- Согласованность: ACID и CAP-теорема. Двух-фазные фиксации (2PC). Паттерн "Сага". Ослабление согласованности (BASE).
- Надежность: угрозы надежности. Механизмы отказоустойчивости.
- Безопасность сервисов: монолит vs. микросервисы. Кросс-доменное взаимодействие. Аутентификация и авторизация.
Общий процесс проектирования интеграции. Диаграммы потоков данных. UML для документирования. Диаграммы последовательности (Sequence Diagrams).
Инструменты для реализации интеграций:
- REST, GraphQL, SOAP.
- Swagger (OpenAPI), AsyncAPI.
- Выбор брокеров сообщений: RabbitMQ vs Kafka (углублённое сравнение и преимущества Kafka).
Модуль 1: Основы архитектуры интеграции.
Практика: Анализ требований к интеграции ИТ-систем и выбор архитектурных шаблонов.
Модуль 2: Инструменты интеграции.
Практика: Практическое применение инструментов (REST, GraphQL, SOAP) и выбор брокеров сообщений (RabbitMQ, Kafka).
Модуль 3: Проектирование систем.
Практика: Создание архитектуры решения и установление связей между сервисами.
Модуль 4: Обеспечение качества процессов.
Практика: Решение задач по интеграции и обеспечению качества процессов.