--------------or--------------
What Is Microservices?With the evolution of technology like IoT, Big Data, Cloud and the world moving towards the API economy, the traditional monolith architecture pattern (SOA) started showing problems. It became difficult to define the granularity of a project because of the complex systems and hundreds of interfaces. This was when the Microservices architecture was born. Its aim was to create applications that were developed around business domains and could be developed, handled and decomposed into services that communicated through APIs and network-based messaging protocols. Microservices Architecture or Microservices is a method for developing software applications for enterprises that are more flexible and independently deployable with smaller modular services. Microservices architecture follows the DevOps implementation approach for service-oriented architectures (SOA) and communicates with each other over a network for building a continuously deployed system. There have been lots of buzz around the word ‘Microservices’ in the past few years, which also made it to the Gartner Hype cycle, however, some critics in the software community are of the view that Microservices has nothing new and is just a rebranded version of an SOA. Despite all the hype and the criticisms, Microservices comes with its share of benefits especially when it is about adopting agile development for a complex software application. |
Challenges of The Monstrous Monolithic ArchitectureLet’s imagine that we are building a web application. We start with designing the Presentation layer for the user interface, the Application layer for handling the business logic, an Integration layer for integrating various component of the application layer and finally the Database layer which will be accessible to all the underlying system. We will then deploy all these layers to either a WAR/EAR package in order to run the entire application. Which means that the business logic becomes the core of the application, while all the other interfaces and adapters surround the core. Isn’t this a very simple approach? It is easy to develop and simple to test. Then what is the huge limitation that actually paved the way for the invention of Microservices Architecture? Unfortunately, this simple approach has some huge limitations. It is a monolithic application because every component even after being separate and independent are packaged under one roof of EAR/WAR. Following are some of the limitations of this Monstrous Monolithic Architecture: |
The Advantages of MicroservicesThe advantages of Microservices over the monstrous monolithic system have convinced some of the major enterprises like Netflix, Amazon, and eBay. Listed are some of the advantages: |
The Disadvantages of Microservices ArchitectureEvery technology, even after its popularity in the industry, comes with its share of drawbacks. Listed some of the potential disadvantages of a Microservices architecture. |
Conclusion |
--------------or--------------