Одним из распространенных аргументов в пользу использования микросервисов является лучшая масштабируемость. Но мне интересно, действительно ли этот аргумент верен.
Допустим, у нас было приложение, состоящее из 10 микросервисов, 9 из которых имели по два экземпляра (для избыточности), а одно - с 4 экземплярами для обработки нагрузки (масштабируемость). Аргумент про-микросервиса заключается в том, что вы можете масштабировать этот миросервис независимо от других сервисов.
Однако предположим, что все 10 микросервисов были модулями в одном монолите, и что было развернуто несколько (например, 22, как сумма сверху) экземпляров этого монолита. Система должна быть в состоянии справиться с нагрузкой для одной критической части, потому что для этого достаточно экземпляров. Если экземпляры содержат логику программы, которая не нужна, единственным недостатком будет то, что двоичный файл и объем необходимой оперативной памяти будут немного больше. Но опять же, в большинстве случаев разница не должна быть слишком большой - по крайней мере, по сравнению с остальной частью стека (вспомним Spring Boot). Преимущество масштабируемого монлита было бы более простой системой без (большей части) ошибок распределенной системы.
Я что-то пропустил?