Understanding Microservices

Sagiruddin Mondal
2 min readApr 17, 2019

--

Microservices:

When we build the entire application using some logical and independent modules, where each of the modules is loosely coupled with others but reciprocally they serve the purpose, we can say those modules are microservices.

Here are the important features to develop proper microservice,

It Should be Able to,

  1. Communicate with other service using a very lightweight medium (for example HTTP),
  2. Deploy its instance independent to other services,
  3. Bring More parallel instance of the same service to balance the load.

Some of the Design Challenges:

  • Separating the services by domain wise operations as well as maintaining the design as loosely coupled with other services,
  • Balancing the load and increase or decrease the counts of instances as per dynamic needs,
  • Designing and maintaining the configurations for each of the services independently or as a whole.
  • Debugging the system for one individualistic bug to one particular service,
  • Designing a fault-tolerant architecture where if one service is down it should not take the other services down with it.

Advantages Of microservices:

  • It helps the adaptation of new technologies without changing the fundamental architecture of the application. For example, when we are in a microservice environment, one service can be in one technology (i.e. Data management & security in Java) another in completely different technology (i.e. ML in python).
  • It provides the flexibility of scaling the application as per need, dynamically. When the requirement is high we can manage the infrastructure and instances specific to that service which could suffer from that load.
  • It helps to handle big application, by distributing the tasks in small and specific teams.
  • it helps to release the updates easily and faster. As all the modules are loosely coupled, changes in one are not hugely expecting the other module to change.

Conclusions:

Microservice architecture has definitely huge advantages over monolithic application design. As it has different parts to be coupled together, we must concentrate and use skill well, when we are designing the independent modules as well as the merging of them together. Feel free to contact me and give your valuable feedback and suggestions @beingsagir.

--

--

Sagiruddin Mondal
Sagiruddin Mondal

Written by Sagiruddin Mondal

When my science will force you to ride a roller coaster, my art will be there to sit beside you.

Responses (2)