In termini di architettura e design del software, in che modo i microservizi "impilano" (gioco di parole) contro il middleware? Vengo da Java, e sembra che mentre ti allontani dal REST come API e che astratti diversi livelli e parametri di connessione, almeno in Java, hai quasi ricominciato a tornare indietro a idee molto vecchie . Siamo tornati alla virtualizzazione ... dove la JVM è già virtuale.
In modo agnostico, puoi, e direi i vantaggi, astrarre un'API RESTful in CORBA. Oppure, in un modo più java-centrico, JMS o MDB.
In un primo momento EJB era un grosso problema in Java, quindi è stato riconosciuto per un po 'di un eff eff, ma, ora, siamo tornati all'inizio?
Oppure, i microservizi offrono qualcosa che CORBA, o meglio ancora, MDB, manca? Quando leggo (TLDR) Martin Fowler spiegando i microservizi, mi sembra una buona soluzione per un problema grave, se vuoi. O piuttosto, un approccio di mentalità chiusa che introduce un livello di complessità che non fa altro che spingere il problema. Se i servizi sono veramente micro e sono numerosi, ognuno ha un costo in dollari per eseguirlo e mantenerlo.
Inoltre, se un servizio micro tra molti cambia la sua API, allora tutto a seconda del servizio si interrompe. Non sembra sembrare liberamente accoppiato, ma sembra il contrario di agile. O sto abusando di quelle parole?
Naturalmente, ci sono una quantità indeterminata di scelte tra questi estremi.
Squalo contro Gorilla ... vai! (Per il pedante, questo è da intendersi ironico, e non è affatto mia intenzione.La domanda è intesa per essere presa per il suo valore nominale.Se la domanda può essere migliorata, per favore fallo, o commenta e io ll fix.)
Immaginate una moltitudine di microservizi in esecuzione nella finestra mobile, tutti su una macchina, parlando tra loro ... follia. Difficile da mantenere o da amministrare, e quasi impossibile da cambiare qualsiasi cosa perché qualsiasi cambiamento si sovrapporrà e causerà errori imprevedibili. Com'è in qualche modo migliore che questi servizi siano sparsi su macchine diverse? E, se vengono distribuiti, sicuramente alcune tecniche molto, molto vecchie della scuola hanno risolto, almeno in parte, il calcolo distribuito.
Perché il ridimensionamento orizzontale è così prevalente, o almeno desiderabile?