Baik SOA (Service-Oriented Architecture) mahupun microservices menguraikan sistem kepada perkhidmatan, tetapi ia berbeza dalam granulariti, pemilikan data, dan cara perkhidmatan berkomunikasi.
Baik SOA (Service-Oriented Architecture) mahupun microservices menguraikan sistem kepada perkhidmatan, tetapi ia berbeza dalam granulariti, pemilikan data, dan cara perkhidmatan berkomunikasi.
| Aspek | SOA | Microservices |
|---|
| Granulariti | Coarse-grained | Fine-grained |
| Komunikasi | Sering melalui ESB | Lightweight (REST/gRPC/messaging) |
| Data | Sering dikongsi | Pangkalan data per perkhidmatan |
| Tadbir urus | Terpusat | Terpencar |
| Protokol | Sering SOAP/XML | Biasanya 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)
Microservices mengikut prinsip "smart endpoints, dumb pipes": kecerdasan terletak dalam perkhidmatan, dan pengangkutan tetap mudah. SOA sering menumpukan logik dalam ESB.
Jangan memperkenalkan semula kesesakan gaya ESB. Bas pusat yang berat mengubah microservices kembali menjadi SOA dengan langkah tambahan.
Perbezaan ini kebanyakannya tentang perpecahan: microservices menolak pemilikan data dan logik ke setiap perkhidmatan untuk mengelakkan kesesakan pusat yang menyusahkan banyak penempatan SOA.
Memahami ini menghalang anda daripada secara tidak sengaja membina semula gandingan SOA di bawah label microservices.