Microservices Architecture

As the name suggests, Microservices Architecture bundles multiple smaller, independent and clearly scoped services together. One can deploy these services independently and they can interact with each other through well defined APIs. This improves the maintainability and scaling of the overall architecture.

While designing a microservice, one should consider end-to-end business capability as criteria and not size of the service. If this breaking of overall functionality into smaller services is not done correctly, it leads to dependent services. It in turn results in loss of inherent advantages of this architecture.

Advantages of Microservices Architecture:

  • Separate teams can maintain each service separately. This brings faster turn around by the teams as they have very clear and well defined scope and gives them full control over deliverable.
  • It is very easy for developers to make changes to one service without affecting other services as long as the intercommunication protocol is maintained. This gives much required independence to the development teams and brings in accountability to maintain their own work.
  • Only a single service or a set of services could be scaled up if business needs. This avoids a single portion of software becoming a bottleneck as is the case with monolithic architecture.
  • Improved fault tolerance. In case any service fails, others can continue providing rest of the services, resulting in higher availability. e.g. If movie recommendation service fails, streaming service or category browsing service can continue.
Microservices Architecture
Microservices Architecture – Source – http://microservices.io/patterns/microservices.html

Drawbacks:

  • If services depend on each other, they could introduce bottlenecks and thus failure of overall architecture. Services need to use other services and fault tolerance needs to be built-in.
  • Since each service is a separate process, they need to communicate with each other over network, adding to the latency. System architects need to consider this aspect while developing services that need very fast response times.

Reference Links:

Related Keywords:

Monolithic Architecture, Cloud

6 Replies to “Microservices Architecture”

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.