Cả SOA (Service-Oriented Architecture) lẫn microservices đều phân rã hệ thống thành các service, nhưng chúng khác nhau về độ chi tiết, quyền sở hữu dữ liệu, và cách các service giao tiếp.
Cả SOA (Service-Oriented Architecture) lẫn microservices đều phân rã hệ thống thành các service, nhưng chúng khác nhau về độ chi tiết, quyền sở hữu dữ liệu, và cách các service giao tiếp.
| Khía cạnh | SOA | Microservices |
|---|
| Độ chi tiết | Thô (coarse-grained) | Mịn (fine-grained) |
| Giao tiếp | Thường qua ESB | Nhẹ (REST/gRPC/messaging) |
| Dữ liệu | Thường dùng chung | Database cho mỗi service |
| Quản trị | Tập trung | Phi tập trung |
| Giao thức | Thường SOAP/XML | Thường HTTP/JSON, gRPC |
SOA ─▶ Service A ─▶ [ Enterprise Service Bus ] ─▶ Service B
(ống thông minh, điều phối tập trung, schema dùng chung)
Microservices ─▶ Service A ──(REST/gRPC/event trực tiếp)──▶ Service B
("smart endpoints, dumb pipes" — logic nằm trong service)
Microservices tuân theo nguyên tắc "smart endpoints, dumb pipes": trí tuệ nằm trong các service, còn tầng vận chuyển giữ đơn giản. SOA thường tập trung logic vào một ESB.
Đừng tái lập một nút thắt kiểu ESB. Một bus trung tâm nặng nề biến microservices trở lại thành SOA với thêm vài bước thừa.
Sự khác biệt chủ yếu nằm ở phi tập trung: microservices đẩy quyền sở hữu dữ liệu và logic vào từng service để tránh nút thắt trung tâm vốn gây khổ cho nhiều triển khai SOA.
Hiểu điều này giúp bạn không vô tình tái dựng sự gắn kết của SOA dưới nhãn microservices.