Тест на вакансию

Микросервисная архитектура (Microservices) и сервис-ориентированная архитектура (SOA)

30 июня 2025 г.
Обе архитектуры направлены на разбиение монолитных систем на отдельные сервисы, но отличаются подходом и степенью детализации.  

Сервис-ориентированная архитектура (SOA)

SOA — это подход, где приложение строится из крупных, слабосвязанных сервисов, взаимодействующих через стандартные протоколы (SOAP, REST, ESB).

Ключевые черты:
  • Крупные сервисы (например, «Управление заказами», «Аутентификация»).
  • Общий централизованный оркестратор (ESB — Enterprise Service Bus).
  • Акцент на повторном использовании сервисов в разных системах.
  • Жёсткие стандарты (часто XML/SOAP).
Пример:
[Клиент] → [ESB] → [Сервис заказов]  
                    [ESB] → [Сервис оплаты]

Плюсы:
  • Подходит для корпоративных систем (банки, ERP).
  • Упрощает интеграцию разных технологий.  
Минусы:
  • Централизованное управление (ESB — единая точка отказа).
  • Сложность масштабирования.

Микросервисная архитектура (Microservices)

Микросервисы — это мелкие, независимые сервисы, каждый из которых решает одну бизнес-задачу и работает как отдельное приложение.  

Ключевые черты:
  • Мелкие сервисы (например, «Корзина», «Рекомендации», «Отзывы»).
  • Децентрализованное управление (каждый сервис самодостаточен).
  • Гибкие технологии (можно использовать разные языки/БД).
  • Общение через API (REST/gRPC) или асинхронно (Kafka, RabbitMQ).  

Пример:
[Клиент] → [API Gateway] → [Сервис A (Node.js)]  
                                                [Сервис B (Python)]
                                                [Сервис C (Java)]  

Плюсы:
  • Масштабируемость (можно обновлять сервисы по отдельности).
  • Отказоустойчивость (падение одного сервиса не ломает всю систему).
  • Гибкость (разные команды работают независимо).
Минусы:
  • Сложность мониторинга и отладки (Distributed Tracing нужен).
  • Накладные расходы на сетевые вызовы.

Сравнение SOA и Microservices

Критерий SOA Микросервисы
Размер сервисов Крупные Мелкие
Управление Централизованное (ESB) Децентрализованное
Протоколы SOAP/XML, строгие стандарты REST/gRPC, гибкость
Масштабируемость Горизонтальная (сервисы) Горизонтальная + вертикальная
Сложность Высокая (ESB) Средняя (но требует DevOps)

Когда что выбирать?

  • SOA: Корпоративные системы с унаследованным кодом (банки, госструктуры).
  • Микросервисы: Современные облачные приложения (стартапы, высоконагруженные сервисы).  
Примеры:
  • SOA: SAP, Oracle ERP.
  • Микросервисы: Netflix, Uber, Spotify.  

Заключение

  • SOA — «тяжёлая» архитектура для интеграции сложных систем.
  • Микросервисы — «гибкая» архитектура для быстрого развития и масштабирования.
  • Общее: Обе избегают монолита, но микросервисы — это эволюция SOA в сторону большей автономности сервисов.
  • Для новых проектов чаще выбирают микросервисы, а SOA остаётся в legacy-системах.
Поделиться: