Лабораторная работа №1
Декомпозиция системы на микросервисы
Вариант 110 млн10 000 RPS
1. Предметная область
Музыкальный стриминговый сервис
Платформа потокового прослушивания музыки и подкастов.
2. Бизнес-возможности
- каталог музыки
- поиск
- прослушивание
- плейлисты
- подписки
- рекомендации
- история прослушиваний
- оплата
3. Основные сущности
4. Архитектурные ограничения
Независимое развертывание
Отдельные части системы должны иметь возможность развертываться независимо.
Изоляция отказов
Отказ одного бизнес-компонента не должен автоматически приводить к отказу всей системы.
Независимое масштабирование
Различные части системы должны иметь возможность масштабироваться независимо друг от друга.
- Один из компонентов имеет значительно более высокую нагрузку
- 3 команды разработки
5. Задание
Необходимо спроектировать декомпозицию исходного монолитного приложения на микросервисную архитектуру.
- Определить основные bounded contexts.
- Определить границы микросервисов.
- Определить ответственность каждого сервиса.
- Определить владельца данных каждого сервиса.
- Определить основные взаимодействия между сервисами.
- Обосновать выбранную декомпозицию.
- Привести минимум две альтернативы.
- Указать потенциальные проблемы архитектуры.
6. Что необходимо сдать
| Артефакт | Формат |
|---|---|
| Context Map | Постройте Context Map предметной области в PlantUML. На диаграмме необходимо показать:
flowchart LR
customer["Customer Management"]
catalog["Catalog"]
order["Order Management"]
payment["Payment"]
delivery["Delivery"]
customer -->|creates order| order
catalog -->|product information| order
order -->|payment request| payment
order -->|delivery request| delivery
Исходник PlantUML
|
| Каталог микросервисов | Пример описания одного сервиса:Service: Order Service |
| ADR-001. Архитектурное решение | Зафиксируйте одно из ключевых архитектурных решений, принятых при декомпозиции системы. ADR должен содержать:
|