Поки я відносно новачок у світі мікросервісів, я постараюся відповісти на ваше запитання якомога повніше.
Коли ви використовуєте архітектуру мікропослуг, у вас збільшиться роз'єднання та розділення проблем. Оскільки ви буквально розділяєте свою заявку.
Це призводить до того, що вашою базою кодів буде простіше керувати (кожна програма не залежить від інших програм, щоб залишатися в роботі). Тому, якщо ви зробите це правильно , надалі буде простіше додавати нові функції до вашої програми. Тоді як з монолітною архітектурою це може бути дуже важко зробити, якщо ваш додаток великий (і ви можете припустити, що в певний момент це буде).
Також розгортання програми простіше , оскільки ви створюєте незалежні мікросервіси окремо та розгортаєте їх на окремих серверах. Це означає, що ви можете створювати та розгортати служби, коли завгодно, без необхідності перебудовувати решту програми.
Оскільки різні служби невеликі і розгортаються окремо, очевидно, що їх легше масштабувати , з тією перевагою, що ви можете масштабувати конкретні служби вашого додатка (за допомогою монолітного масштабування ви масштабуєте всю "річ", навіть якщо це лише конкретна частина в додаток, який отримує надмірне навантаження).
Однак для додатків, які не призначені стати занадто великими для управління в майбутньому. Краще тримати його при монолітній архітектурі. Оскільки архітектура мікропослуг пов'язана із серйозними труднощами. Я заявив, що простіше розгорнути мікросервіси, але це справедливо лише у порівнянні з великими монолітами. Використовуючи мікросервіси, ви додаєте складності в розподілі послуг на різні сервери в різних місцях, і вам потрібно знайти спосіб керувати всім цим. Створення мікросервісів допоможе вам у довгостроковій перспективі, якщо ваша програма стане великою, але для менших програм просто простіше залишатися монолітними.