What are the benefits of Microservices?

  • Faster Delivery:
    • Less code to change
    • Less code to test
    • Easy deployment steps
  • Scaling:
    • We can scale individual services based on their use
  • Easily understood:
    • Since the microservice size is small, a person or team can easily understand in and out of microservice
  • Technology/language advantage
    • Different process different technology
    • If we have to change tech or language from java to python, it is a small module for which we have to change
  • Change cycle decoupled
    • Each functionality or micro-service can be deployed when
  • Culture: Well defined ownership, high trust in the team
  • Easy deployment steps
  • Isolation: Single microservice cannot crash the entire system
  • Flexibility: Polyglot services, own persistence system, etc

What are the disadvantages or points to consider when moving towards Microservices?

  • Multiple services to manage
  • Sophisticated Monitoring: Required to monitor multiple services
  • Design services for failures
  • Latency, as now services will call each other over network
  • Embracing DevOps Culture
  • Chances for cyclic dependencies: which needs to be identified and resolved
  • Transactions can go over multiple services
  • Sometimes features span multiple services
  • Multiple services are required to be tested together
  • Version management
  • Fault Tolerance: One service shouldn’t bring down the complete system

Rakesh Kalra

Hello, I am Rakesh Kalra. I have more than 15 years of experience working on IT projects, where I have worked on varied complexity of projects and at different levels of roles. I have tried starting my own startups, 3 of those though none of it were successful but gained so much knowledge about business, customers, and the digital world. I love to travel, spend time with my family, and read self-development books.