Sekä SOA (Service-Oriented Architecture) että mikropalvelut jakavat järjestelmät palveluiksi, mutta ne eroavat rakeisuudessa, tiedon omistajuudessa ja siinä, miten palvelut kommunikoivat.
Sekä SOA (Service-Oriented Architecture) että mikropalvelut jakavat järjestelmät palveluiksi, mutta ne eroavat rakeisuudessa, tiedon omistajuudessa ja siinä, miten palvelut kommunikoivat.
| Näkökulma | SOA | Mikropalvelut |
|---|
| Rakeisuus | Karkeaa rakeisuutta | Hienoa rakeisuutta |
| Kommunikaatio | Usein ESB:n kautta | Kevyt (REST/gRPC/messaging) |
| Tiedot | Usein jaettua | Tietokanta palvelua kohti |
| Hallinto | Keskitetty | Hajatettu |
| Protokolla | Usein SOAP/XML | Yleensä 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)
Mikropalvelut noudattavat periaatetta "smart endpoints, dumb pipes": älykkyys sijaitsee palveluissa ja kuljetus pysyy yksinkertaisena. SOA usein keskittää logiikan ESB:hen.
Älä uudelleenota ESB-tyyppistä pullonkaulaa. Raskas keskitetty väylä muuntaa mikropalvelut takaisin SOA:ksi ylimääräisine askeleittaan.
Eroavaisuus liittyy pääasiassa hajauttamiseen: mikropalvelut siirtävät tiedon omistajuuden ja logiikan jokaiseen palveluun välttääkseen keskitetyn pullonkaulan, joka vaivannut monia SOA-käyttöönottoja.
Tämän ymmärtäminen estää sinua vahingossa rakentamasta uudelleen SOA:n kytkentää mikropalveluiden leiman alle.