Chociaż jestem stosunkowo nowy w świecie mikrousług, postaram się odpowiedzieć na Twoje pytanie tak kompletnie, jak to możliwe.
Korzystając z architektury mikrousług, zwiększysz odsprzęganie i separację problemów. Ponieważ zbytnio dzielisz swoją aplikację.
Powoduje to, że Twoja baza kodu będzie łatwiejsza w zarządzaniu (każda aplikacja jest niezależna od innych, aby zapewnić nieprzerwane działanie). Dlatego jeśli zrobisz to dobrze , w przyszłości łatwiej będzie dodać nowe funkcje do swojej aplikacji. Podczas gdy w przypadku architektury monolitycznej może to być bardzo trudne, jeśli twoja aplikacja jest duża (i możesz założyć, że w pewnym momencie tak będzie).
Również wdrażanie aplikacji jest łatwiejsze , ponieważ niezależne mikrousługi są budowane osobno i wdrażane na oddzielnych serwerach. Oznacza to, że możesz tworzyć i wdrażać usługi, kiedy tylko chcesz, bez konieczności przebudowywania reszty aplikacji.
Ponieważ różne usługi są małe i wdrażane osobno, jest oczywiste, że łatwiej jest je skalować , z tą zaletą, że można skalować określone usługi aplikacji (z monolitem skalujesz całą „rzecz”, nawet jeśli jest to tylko określona część w ramach aplikacja, która jest nadmiernie obciążana).
Jednak w przypadku aplikacji, które nie mają stać się zbyt duże, aby można było nimi zarządzać w przyszłości. Lepiej jest zachować architekturę monolityczną. Ponieważ architektura mikrousług wiąże się z poważnymi trudnościami. Stwierdziłem, że łatwiej jest wdrażać mikrousługi, ale jest to prawdą tylko w porównaniu z dużymi monolitami. Korzystając z mikrousług, masz dodatkową złożoność dystrybucji usług na różne serwery w różnych lokalizacjach i musisz znaleźć sposób na zarządzanie tym wszystkim. Budowanie mikrousług pomoże Ci na dłuższą metę, jeśli Twoja aplikacja stanie się duża, ale w przypadku mniejszych aplikacji po prostu łatwiej jest pozostać monolitycznym.