Advantages of microservices

There are many benefits to using microservices. Since we decompose our application into smaller parts, it improves the modularity of the whole system. As a result, each service is easier to develop, test, understand, and modify, because we change only one service and not unrelated functionalities that just happen to be bound together in a monolithic design.

Each service can be developed by a separate team, speeding up the application development life cycle. Working on smaller parts also helps the application to emerge, using continuous refactoring when needed.

Each service can be configured and deployed independently of one another. In monolithic applications, developers work on some features that are later tested by a Quality Assurance (QA) team. Once the bugs are fixed and the release is signed off on by the QA team, DevOps publish a new version to production. This process can take weeks, or even months, with some applications. With microservices, this process is much shorter, allowing for continuous delivery[4] of new versions and easier deployment.

Having one service allows us to address one business objective or technical capability at a time. This helps to deliver a required piece of the working application much quicker than releasing all of the features at once. Because the architecture is composed of smaller parts, each one is easier to replace, as opposed to redesigning and refactoring a part of a monolithic application.