Uno degli argomenti più comuni per l'utilizzo dei microservizi è la migliore scalabilità. Ma mi chiedo se questo argomento sia veramente valido.
Diciamo che avevamo un'applicazione che consisteva di 10 microservizi con 9 di loro aventi ciascuna due istanze (per ridondanza) e una di esse con 4 istanze per gestire il carico (scalabilità). L'argomento pro-microservice è quindi che puoi scalare questo miroservice in modo indipendente dagli altri servizi.
Tuttavia, diciamo che tutti i 10 microservizi erano moduli in un singolo monolite e che diverse istanze di questo monolite (ad esempio 22 come la somma di sopra) di questo monolite erano state implementate. Il sistema dovrebbe essere in grado di gestire il carico per una parte critica, perché ci sono abbastanza casi per farlo. Se le istanze contengono la logica del programma non necessaria, l'unico lato negativo sarebbe che il binario e la quantità di RAM necessaria sarebbero leggermente più grandi. Ma poi di nuovo, la differenza non dovrebbe essere troppo grande nella maggior parte dei casi - almeno non rispetto al resto dello stack (si pensi a Spring Boot). L'aspetto positivo di un monito ridimensionato sarebbe un sistema più semplice senza (la maggior parte) le fallacie di un sistema distribuito.
Mi manca qualcosa?