Одним із поширених аргументів використання мікропослуг є краща масштабованість. Але мені цікаво, чи справді цей аргумент справедливий.
Скажімо, у нас був додаток, що складається з 10 мікросервісів, 9 з яких мали по два екземпляри (для надмірності) і один з них з 4 примірниками для обробки навантаження (масштабованість). Аргумент pro-мікросервісу полягає в тому, що ви можете самостійно масштабувати цю miroservice з інших служб.
Однак скажемо, що всі 10 мікросервісів були модулями в одному моноліті, і було розгорнуто кілька (наприклад, 22 як сума зверху) екземплярів цього моноліту. Система повинна мати можливість обробляти навантаження для однієї критичної частини, оскільки для цього достатньо примірників. Якщо екземпляри містять програмну логіку, яка не потрібна, єдиним недоліком буде те, що двійкові та об'єм необхідної оперативної пам'яті будуть трохи більшими. Але знову ж таки, різниця не повинна бути надто великою у більшості випадків - принаймні, не порівняно з рештою стека (подумайте про Spring Boot). Перевернутий масштабний монліт був би простішою системою без (більшості) помилок розподіленої системи.
Я щось пропускаю?