SOA (Service-Oriented Architecture) и микросервисы оба разлагают системы на сервисы, но различаются по степени детализации, владению данными и способу взаимодействия сервисов.
SOA (Service-Oriented Architecture) и микросервисы оба разлагают системы на сервисы, но различаются по степени детализации, владению данными и способу взаимодействия сервисов.
| Аспект | SOA | Микросервисы |
|---|
| Детализация | Крупнозернистая | Мелкозернистая |
| Коммуникация | Часто через ESB | Легкая (REST/gRPC/messaging) |
| Данные | Часто общие | База данных на сервис |
| Управление | Централизованное | Децентрализованное |
| Протокол | Часто SOAP/XML | Обычно HTTP/JSON, gRPC |
SOA ─▶ Service A ─▶ [ Enterprise Service Bus ] ─▶ Service B
(smart pipes, central orchestration, shared schemas)
Microservices ─▶ Service A ──(direct REST/gRPC/event)──▶ Service B
("smart endpoints, dumb pipes" — logic lives in services)
Микросервисы следуют принципу "smart endpoints, dumb pipes": интеллект находится в сервисах, а передача данных остается простой. SOA часто централизует логику в ESB.
Не переизобретайте узкое место в стиле ESB. Массивная центральная шина превращает микросервисы обратно в SOA с дополнительными шагами.
Разница в основном касается децентрализации: микросервисы толкают владение данными и логику в каждый сервис, чтобы избежать центрального узкого места, которое мучило многие развертывания SOA.
Понимание этого предотвращает случайную переделку связанности SOA под именем микросервисов.