AllThingsOnCloud

all about cloud computing

Monolithic to Microservices

May 7, 2017 by Vijay Sukthankar Leave a Comment

In this blog, I am going to talk about what is a microservices model and why most of the application owner aspire to move to this architecture. Before that, let’s understand a monolith application architecture,

Monolith Application Architecture:

It is a single tiered application, where web interfaces and data interfaces are assembled in one application.

Some of the drawbacks with this architecture are,

  1. Every small change in the code requires build, test and deploy of the entire application.
  2. It is difficult to have shorter release cycles or feature releases, because, every other team is working on the same application.
  3. There will be no ownership of a functional domain, everyone is working towards a single application, this approach leads to knowledge drain of core functionalities in commerce which ultimately results in delivery failures or delays.
  4. Application is very large, and it is complex to understand and debug, also, maintenance of the application is going to be a nightmare.
  5. A defect like a memory leak in one function will bring down the complete application.

 

Microservices Architecture:

‘Microservices’, is an application architecture where smaller services/domains are developed, tested and deployed independently

Advantages:

  1. It provides a clear ownership of each domain, which allows you to develop and release new functionalities within a given domain without depending on other development teams.
  2. If one service fails, it is still possible for the rest of the application to operate until that failed service recovered. Recovering a service is also not complex because it is an independent service and has its own build and deployment pipeline.
  3. No need to bound to a single product or technology and you can save a lot from licensing, moreover you have the freedom to upgrade to new technologies and apply innovations.
  4. Based on the demand and performance these services can be deployed on a larger scale, in a monolith application you have to deploy same full one ear in every server which consumes more underlying resources.
  5. It is a key for long-term success, most of the companies are struggling to sustain because technology is evolving extremely fast and to be successful, it is required to innovate and beat the competition.
  6. Business users get an opportunity to market and build their product strategies much quicker than compared monolith applications, where everything is interdependent.

Challenges:

Microservices architecture helps business to act quickly by delivering features with measured ROI’s and time to market, however, there are some challenges with it,

  1. It is highly depending on the DevOps, so, organisations need to adopt DevOps culture.
  2. It is going to increase the operational complexity.
  3. Interprocess communication is going to be challenging.

Monolithic to  Microservices:

So far I have talked about what is a Microservices architecture, what are the benefits and challenges with it. Now, let’s talk about how to adopt Microservices platform strategically. The first thing to understand is when and where it is required to apply microservices design pattern?

‘When the domain is customer facing and it is required to scale with the speed of innovation and time to market’, then, start with,

  1. Decouple UI application from monolith EAR.
  2. Adopt DevOps practices
  3. Implement API Gateway, and API Management to understand measurable metrics for APIs like, latency, SLA success rate, uptime and calls per day.
  4. Start looking at non-transactional domains which can be easily converted into a microservices model, for example: catalog browse and search functions.
  5. Transactional domains: Before converting your bag, order and checkout domains into microservices, start with promotions, pricing, and inventory services, these are the backbones for order and checkout domains.
  6. It is very important to build supporting components like caching, security, logging, monitoring, and reporting.
  7. Leverage, non-relational distributed databases like Cassandra which provides high scalability and availability with great performance. It helps you to process and access large-scale data across retail systems, especially when you integrate physical stores with a digital store.

 

Filed Under: Microservices

Leave a Reply Cancel reply

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

Archives

  • May 2017
  • November 2016
  • September 2016
  • July 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • August 2015
  • July 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • August 2014
  • July 2014
  • March 2012
  • February 2012
  • July 2011
  • November 2007
  • January 2007

Categories

  • Cloud
  • Cloud Computing
  • Cloud Foundry
  • Docker
  • Kubernetes
  • Linux
  • Mesosphere
  • Microservices
  • Service Management
  • Uncategorized

Recent Posts

  • Monolithic to Microservices
  • Kubernetes Overview
  • Docker Swarm Internals
  • Docker Swarm 1.12.1
  • Docker now and next

About Me

I’m a Cloud and Linux/ OpenSource enthusiast.. I am currently the leading a team for the integration service for on-prim Cloud offering .Some of the areas I’m currently focused on are around cloud, containers, devops, big-data, Cloud architecture and topologies. You can reach me at vsukthankar(at)yahoo(dot)com
FollowEmail this to someoneFollow on Google+Tweet about this on TwitterFollow on LinkedIn

Disclosure and Disclaimer

This is a personal blog of mine. The opinions stated here are my personal opinions. They are not representative of my employer in any way.

Copyright © 2021 · News Pro Theme on Genesis Framework · WordPress · Log in