Собесов

Что относится к архитектурным стилям ПО?

Кейсы и метрикиАрхитектура ПОЛёгкаяJunior

Условие

Что из перечисленного относится к архитектурным стилям?

  • Монолит
  • Микросервис
  • Сервис-ориентированная архитектура
  • Событийно-ориентированная архитектура
  • Ничего из этого

Задание засчитывается, если все варианты выбраны правильно.

Решение

Все четыре стиля корректны: Монолит, Микросервис, SOA, EDA.

Краткая характеристика каждого

Стиль Суть Когда применять
Монолит (Monolith) Всё приложение — один развёртываемый артефакт. Один кодбэйс, одна БД. Маленькие/средние проекты, MVP, стартапы
Микросервисы (Microservices) Множество мелких независимых сервисов, каждый со своей БД. Связь через API/события. Крупные продукты, разные команды, независимое масштабирование
SOA (Service-Oriented Architecture) Сервисы покрупнее, чем микро; единая ESB (шина) для интеграции. Корпоративные системы, легаси-интеграция
EDA (Event-Driven Architecture) Компоненты обмениваются событиями через брокер (Kafka, RabbitMQ). Слабая связанность. Реальное время, реактивные системы, сложные потоки

Сравнение

Аспект Монолит Микросервисы SOA EDA
Размер сервисов один очень мелкие средние/крупные переменные
Связь внутри процесса HTTP/gRPC через ESB через брокер событий
БД одна общая per-service общая или per-service per-service
Развёртывание один артефакт независимое вместе или раздельно независимое
Сложность ops низкая высокая средняя высокая

Другие стили (не из списка задачи)

  • Многоуровневая (Layered) — UI → бизнес-логика → DAL → БД.
  • Hexagonal / Ports & Adapters — внутренний домен изолирован, адаптеры на границах.
  • Pipe & Filter — конвейер обработки (Unix shells, ETL).
  • Client-Server — два слоя.
  • Peer-to-Peer (P2P) — равноправные узлы (BitTorrent).
  • Serverless / FaaS — функции в облаке (AWS Lambda).

Подводные камни

  1. Считать монолит «плохим стилем». Это нормальный выбор для многих задач. «Microservices first» — антипаттерн для маленьких команд.
  2. Путать SOA и микросервисы. SOA исторически тяжелее (ESB, WSDL/SOAP); микросервисы — легче (REST/gRPC, без центральной шины).
  3. EDA не про размер, а про коммуникацию. Можно иметь монолит с EDA внутри (модули общаются событиями).
  4. Распределённый монолит. Микросервисы, которые жёстко связаны и деплоятся вместе — антипаттерн, наследует минусы обоих стилей.

Эталонный ответ

Монолит, Микросервис, Сервис-ориентированная архитектура, Событийно-ориентированная архитектура — всё это валидные архитектурные стили.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти