Architettura monolitica implica che tutte le funzionalità dell'applicazione siano raccolte in un codice unico, da sviluppare e distribuire.
Architettura orientata ai servizi (SOA) e in particolare i microservizi — è un approccio in cui l'applicazione è composta da un insieme di moduli che interagiscono tramite interfacce chiare (di solito reti).
Quando è conveniente il monolitico:
Quando è vantaggiosa la SOA:
Esempio di confronto: Monolitico:
public class Application { public static void main(String[] args){ UserService userService = new UserService(); OrderService orderService = new OrderService(); // Logica per ordini e utenti — tutto in un'unica applicazione } }
SOA — interazione tramite API:
GET /user/42 # richiesta al servizio utenti GET /order/532 # richiesta al servizio ordini
Caratteristiche chiave:
SOA divide il database tra i servizi?
Di solito i servizi separano i dati per una debole interconnessione. Database comuni sono ammissibili nelle fasi di migrazione, ma idealmente ogni servizio ha il proprio database.
Il monolitico è sempre peggiore in termini di prestazioni?
No, il monolitico può essere più performante su piccole dimensioni, poiché non ci sono chiamate di rete superflue e separazione della memoria.
È possibile convertire un monolitico in microservizi "tutto in una volta"?
No, di solito la transizione avviene in fasi, iniziando dall'assegnazione dei confini dei contesti e dalla loro trasformazione in servizi.