In termini di architettura e design del software, in che modo i microservizi "impilano" (gioco di parole) contro il middleware? Sto venendo da Java, e sembra che mentre ti allontani dal REST come API, e allontani diversi livelli e parametri di connessione, almeno in Java, sei quasi tornato al punto di partenza per alcune idee di vecchia scuola . Siamo tornati alla virtualizzazione ... dove la JVM è già virtuale.
In modo agnostico, puoi, e direi i vantaggi, astrarre un'API RESTful su CORBA. Oppure, in modo più incentrato sul Java, JMS o MDB.
Un tempo EJB era un grosso problema in Java, poi è stato riconosciuto come un po 'un effetto cluster, ma, ora, siamo tornati all'inizio?
Oppure, i microservizi offrono qualcosa di cui manca CORBA, o meglio, MDB? Quando leggo (TLDR) Martin Fowler che spiega i microservizi, mi sembra una buona soluzione a un cattivo problema, se vuoi. O meglio, un approccio di mentalità chiusa che introduce un livello di complessità solo spingendo il problema in giro. Se i servizi sono veramente micro e sono numerosi, ognuno ha un costo in dollari per gestirlo e mantenerlo.
Inoltre, se un micro servizio tra molti cambia la sua API, allora tutto a seconda di quel servizio si rompe. Non sembra vagamente accoppiato, sembra il contrario di agile. O sto abusando di quelle parole?
Certamente, ci sono una quantità indeterminata di scelte tra questi estremi.
Squalo contro Gorilla ... vai! (Per il pedante, questo è pensato per essere ironico, e non è affatto mia intenzione. La domanda è pensata per essere presa al valore nominale. Se la domanda può essere migliorata, per favore fallo, o commenta e riparerò. )
Immagina una moltitudine di microservizi in esecuzione nella docker, tutti su una macchina, che parlano tra loro ... follia. Difficile da mantenere o amministrare, e quasi impossibile cambiare mai nulla perché qualsiasi cambiamento si sovrapporrà e causerà errori imprevedibili. In che modo è meglio che questi servizi siano sparsi su macchine diverse? E, se distribuiti, sicuramente alcune tecniche molto vecchie della scuola hanno risolto, almeno in una certa misura, il calcolo distribuito.
Perché il ridimensionamento orizzontale è così diffuso o almeno desiderabile?
giant blob
, deve avere interfacce, quindi ogni parte a partire dal kernel è una specie di MS, e prima cosa prima qualsiasi squadra ha iniziato a scrivere codice doveva concordare le specifiche v0.0.1.