Sia SOA (Service-Oriented Architecture) che microservizi scompongono i sistemi in servizi, ma differiscono per granularità, proprietà dei dati e modalità di comunicazione tra servizi.
Sia SOA (Service-Oriented Architecture) che microservizi scompongono i sistemi in servizi, ma differiscono per granularità, proprietà dei dati e modalità di comunicazione tra servizi.
| Aspetto | SOA | Microservizi |
|---|
| Granularità | Coarse-grained | Fine-grained |
| Comunicazione | Spesso via ESB | Lightweight (REST/gRPC/messaging) |
| Dati | Frequentemente condivisi | Database per servizio |
| Governance | Centralizzata | Decentralizzata |
| Protocollo | Spesso SOAP/XML | Solitamente 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)
I microservizi seguono il principio "smart endpoints, dumb pipes": l'intelligenza risiede nei servizi e il trasporto rimane semplice. SOA spesso centralizza la logica in un ESB.
Non reintrodurre un collo di bottiglia in stile ESB. Un bus centrale pesante trasforma i microservizi di nuovo in SOA con passaggi extra.
La differenza riguarda soprattutto la decentralizzazione: i microservizi trasferiscono la proprietà dei dati e la logica in ogni servizio per evitare il collo di bottiglia centrale che ha affetto molti deployment SOA.
Comprenderlo ti impedisce di ricostruire accidentalmente l'accoppiamento di SOA sotto un'etichetta di microservizi.
Una raccolta di domande di colloquio IT con risposte dettagliate — da Junior a Senior.
Dona