Page 1

Monolithic architecture vs Microservices Before jumping into a tug of war of Monolithic v/s Microservices, let’s imagine that there’s a TV manufacturing company that manufactures every spare part in their factory & assemble it. When they wanted to scale their business to produce more TVs, they had no other option but to replicate their factory set up at 10 different locations. Though they produced more TV units per day, this also increased a lot of their costing. One of the biggest issue in their factory set up was inter-dependency. Until & unless the previous spare part wasn’t ready, they couldn’t manufacture the next part. And there was another TV manufacturing company that had multiple small factories at nearby locations. Each of the factories manufactured a specific spare part, which was then assembled together. This made the entire manufacturing process totally independent. Also, when they wanted to scale their business, they opened only those factories for whom the spare part demand was high. This is exactly what monolithic architecture v/s microservices is. A monolithic application is one where the entire application is packaged into a single artifact which runs as a single process. Though you can always scale monolithic application by running multiple copies of your application behind a load balancer, scaling your application beyond a point becomes such a big pain with monolithic architecture. Monolithic benefits– • •

It is easy to develop & test. Their deployment just requires your packaged application to be copied to the server.

Monolithic shortcomings– • • • • • •

It becomes so much difficult for different teams say UI team, Database team, Backend team etc. to work independently. Any update or change affects all of them. Adding any new functionality is always a nightmare to a stable monolithic application. More the code grows, slower the entire application becomes. Even for new developers in a team, it gets difficult to understand the entire ecosystem. Also, any small misinterpretation can lead to a major setback to the entire application. With a monolithic application, it gets difficult to grow with time. You get stuck with a particular tech-stack & it’s really hard to migrate your application to a better framework. Monolithic application increases memory consumption. Also, there can be so many such cases where there is just one component who must be eating the entire memory or another who must be very CPU intensive, but there is no way to make each of the component run independently.

And that is why Micro services have become such a fad.

Fact#1- Netflix, Uber, Amazon, eBay, Groupon, Walmart, Spotify are just a few big names who have successfully revitalized their architecture with the power of microservices. Microservices architecture is a modular approach to build a large application which is broken into multiple small services which are independently versionable, deployable & scalable. These services can be easily managed by different teams & can even be written in different programming languages. Microservices are totally a bliss when you are planning to develop your application using the agile methodology and want to develop complex enterprise applications with utmost ease. The individual modules in microservices have highly distinctive & defined tasks (just like our example). These modules communicate with each other via universally accessible APIs.

Fact#2 – Failing to handle 6 million page views per minute for 2 consecutive years on Black Fridays, Walmart realized that it was high time for them to embrace Microservices. Microservices Benefits• • • • • •

Microservices make continuous integration with tools like Jenkins so much easy. Applications based on microservices are scalable as well as reusable. It’s super easy for a new developer to understand the functionality of independent services. You never have to marry with a single technology for a lifetime. Go ahead if you want to try an individual service on a particular technology. You can even deploy the service independently. Microservices are easier to build & maintain & works great with Docker.

Microservices Drawbacks• •

Testing a microservices application is a tricky game. At times, microservices architecture adds complexity to the projects since it’s a distributed system.

To sum up, one should always analyze their project roadmap & finalize whether Monolithic or microservice architecture suits their needs.

For More Information

Microservices training  

Spring Boot Microservices training in Hyderabad. All skill levels are welcome. We started this group to meet other outdoor enthusiasts who a...

Microservices training  

Spring Boot Microservices training in Hyderabad. All skill levels are welcome. We started this group to meet other outdoor enthusiasts who a...