Migrating from Monolithic to a Microservices Architecture

Migrating from Monolithic to a Microservices Architecture

There is a buzzword growing day by day about Microservices, and I have seen many companies gradually migrating from a monolithic application to microservices-based application. While talking to developers I have observed that every developer have different perception on microservices, as they didn’t get a chance to work on microservices architecture. I am keen to talk today about how we migrated towards microservices architecture.

Before jumping into the concept, it is better to recap on what Monolithic architecture is and what are its capabilities. Below highlighted are few of the Pros and Cons:

Pros:

  • Easy to deploy the entire application
  • It makes Tester’s life easy as test script is run once and entire application is tested
  • Manage source code easily on one single repository
  • Easy to deploy the application on servers

Cons:

  • One single code having all the business logic tightly coupled
  • One big database connected to application which has loads of data to manage
  • It becomes tougher gradually when we scale the application
  • Hard to manage when multiple teams work on single application

What is Microservices Architecture ?

On internet we can find many resources about what are microservices. Let me put it in simple words based on my experience, it is one of the variants of Service-Oriented Architecture, it is a technique of designing the structure of an application in a distributed manner. Each business operation is separated as a different service, so that respective teams can work independently on each service and it is loosely coupled with each other. This way it becomes easy to scale the application based on the usage of respective business operations

Monolithic Vs. Microservices:

Monolithic application architecture is an approach to build a system where all your business logic are written and run in one single process. This way you can use only one programming language to develop the entire application. Where as Microservices-based architecture is an approach to build a system where each service is built based on business operation and business logic are written and run in respective service. This way you can use more than one programming language to develop the entire application as each service is loosely coupled with each other.

As we know every technology has its own Pros and Cons. Let me share my experience while migrating to microservices-based architecture:

  1. Agility and Swiftness: By breaking down each functionality it removes the painful process of checking dependency which is associated with monolithic applications. You can focus independently on functionality rather than entire application, this makes the work fast and efficient.
  2. Multiple Deployments: In current competition in the market every development company wants to satisfy the client by having multiple release plans. Microservices makes the life easy in planning and managing with multiple deployments
  3. From VMs to Containers: One of the best containerized technology “Docker” goes very well with microservices. It removes the head ache of operations team while deploying multiple microservices on cloud infrastructure in a distributed manner.
  4. Scale on demand: As we can separate each microservice based on related business operation it becomes easy to scale only selected microservice into multiple servers as an when needed. Operations team can monitor the usage of each service and scale only required service whenever needed. This way your cloud infrastructure cost can also be controlled.

Besides many benefits of microservices-based applications there are few drawbacks as well, such as:

  1. Increase in complexity
  2. Extra effort in designing and writing the communication between services
  3. Complexity in testing

Conclusion

I hope you enjoyed this article. I will keep on sharing my experiences on various aspects of microservices architecture in my coming articles. I really appreciate you to share your thoughts in the comment section. I would enjoy hearing your views. Have a Good One…


Sujith Nair

Product Management II Quality Assurance II Fintech II Digital Transformation II Start ups II Ex-Banker II Blockchain II Design Thinking II Ex Oracle II IIM Lucknow Alumni

5 年

Good article and differentiation of architecture.

Satyanarayana Kasturi

Vice President, Digital Transformation Lead , Business Partner , Value-Creation Expert , IT Strategy, Cloud, Shared Services, Mobility, Industry 4.0 Solutions Expert

5 年

Good Article Manish ,this is reality? ?All the best , you may need to relate to any one company and get some practicality?

要查看或添加评论,请登录

Manish Sunthwal的更多文章

社区洞察

其他会员也浏览了