Microservices : Advantages & Disadvantages

Microservices : Advantages & Disadvantages

#004

Howdy friends, it is nice that you are coming back to learn more about Microservice Architectural style.  let’s try to understand various advantages and disadvantages of Microservices in this blog

Advantages of Microservices

Better Alignment with organization– Independent teams autonomously manage independent services. Since each microservice targets separate features, multiple features can be developed parallelly.

Adopt technologies easily–  More choices in microservice. Each service can be developed in a different technology like java, go, node.js. This is not possible in monolith where we have a more uniform codebase.

Release functionality faster- Each service is aligned to a single functional capability and can be released quickly. “Time to market” for critical features developed in microservice is pretty fast.

Independent Scaling– Selective independent scaling is possible in microservice echo system. During heavy loads during specific time window microservices with most important and used functionalities may auto scale and be ready for more loads. Once the microservices are scaled, multiple instances of services run to serve user requests. This occurs seamlessly without any manual intervention.  When load decreases microservices scale-in again.

Enabling experimentation and innovation- As microservices are simple, smaller in size, enterprises can afford to experiment new processes, business logic and so on. With large monoliths experiments are not easy and not cost effective.

Allowing substitution- Since microservices are self-contained, independent substitution of one microservice with another is possible.

Enabling to build organic system- Organic systems grow laterally over a period by adding more functionality. As microservices are independent, this enable us to add more services with no impact on existing ones.

Supports self-organized system- A well designed Microservice is unaware of other services. It receives a message from a queue, processes it and sends out another message to another queue which triggers another Microservice.

 Disadvantages of Microservices

Many choices- This is advantage to some but disadvantage to others. Considerable effort may be required in some cases to identify the technologies, frameworks best suited for implementations of the identified features.

Upfront investment & ROI : Requires up-front investment in terms of effort and cost to migrate from a monolith to microservice. ROI realization takes time.

Testing– This will be more complex in microservice echo-system. Need very stringent communication and contract definition to test the all Microservices together.

Problem Identification– A monolith system has been broken into many independent applications. To identify a problem among these applications may be difficult. Centralized monitoring is required at application level, system level. This triggers robust Logging and Monitoring requirement within overall Architecture.

Residency is not free – Network failures. cascading failures can make the system down and special care should be taken around this. Correct Circuit Breaker pattern needs to be established to deal with such failures.

Lot more boxes–  In microservice echo system there are lot of boxes(VMs) and containers to manage in contrast to monolith applications where the number of boxes is much less.

Lot more distributed- Distributed systems are hard to manage.

This concludes highlighting various advantages and disadvantages of Microservice implementation style.

Hope you have already visited my earlier blogs in our Microservices: Beginner to Expert series. In our next blog we will discuss about spring boot applications and how they are important for microservices. I will really appreciate your comment below. If you seek more clarification, just let us know. CTT team will address all your technical questions as soon as possible.

Keep visiting and Happy reading!!

 

Author: Debajyoti Mukherjee

Debajyoti Mukherjee has more than 11 years if IT experience in application design , application development. He has worked in large MNCs and has worked for eminent clients. He is proficient in custom development , cloud platform , microservice based application migration.

Leave a Reply

Your email address will not be published. Required fields are marked *

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