The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. Each module supports a specific business goal and uses a simple, well-defined interface to communicate with other sets of services.
Microservices pros and cons
This solution has a number of benefits:
- Each microservice is relatively small.
- Are easily deployed.
- Require less production time.
- Can scale quickly.
- Can be reused among different projects.
- Each service can be developed and deployed independently.
- Complement cloud activities.
However, there are also drawbacks with microservices, such as:
- Potentially too granular.
- Latency during heavy use.
- Testing can be complex.
Microservices, on the other hand, require little of centralized management. Microservices applications are independently deployable and scalable. They enhance business capabilities with less planning and production than monoliths.