While I am relatively new to the world of microservices, I will try to answer your question as fully as possible.
When you use the microservice architecture, you will have increased isolation and separation of problems. Since you litteraly share your application.
This leads to the fact that your code base will be easier to manage (each application is independent of other applications, so as not to work and work). Therefore , if you do it right , it will be easier in the future to add new features to your application. While with a monolithic architecture, this can be very difficult if your application is large (and you can assume that it will be at some point in time).
In addition, deploying the application is easier because you create independent microservices yourself and deploy them on separate servers. This means that you can create and deploy services whenever you want, without having to rebuild the rest of your application.
Since different services are small and deployed separately, itβs obvious that they are easier to scale , with the advantage that you can scale certain services of your application (with monolithic you scale the complete βthingβ, even if it is only a certain part of the application that gets overloaded) .
However, for applications that are not designed to become too large to be managed in the future. It is better to keep it in a monolithic architecture. Since the architecture of microservices has some serious difficulties. I stated that itβs easier to deploy microservices, but this is only true compared to large monoliths. Using microservices, you have the added complexity of distributing services on different servers in different places, and you need to find a way around this. Creating microservices will help you in the long run if your application becomes large, but for small applications it simply remains monolithic.
Kaj 09 Oct '15 at 15:55 2015-10-09 15:55
source share