In this post ,we will know about “what is microservices architecture”. Microservices architecture is an architectural idea or approach which breaks the monolithic service architecture. In simple word suppose we have a service and 10 service methods are there in service, when we will publish whole service at a time means it means it is monolithic service architecture but if we create different services for all 10 service methods and deploy on different 10 servers and database ,it means we are using microservice architecture concept in our project.
It means microservice architecture provides very highly maintainable and testable, independently deployable, very loosely coupled, and organized around fulfill the business capabilities. In a very lay man language we can say it’s a method of development where an extensive application is divided into small small modules services assisting a specific business goal.
Here is how a Microservice Architecture data flow diagram.
Microservice vs Monolith Architecture
Below are advantages ,disadvantages , and how microservices work are in details.
|Microservice advantages||Microservice disadvantages|
|Lower Costs & Increased Efficiency||It is very simpler and more efficient than applications, which give more result in terms of lower cost overall. microservices are self-contained, so they don’t need the same level of coordination and communication that is required for monolithic applications|
|It is easy to integrate and scale with third-party applications.
|For developing and testing the microservices require experienced developers with a very high level of expertise.|
|Scaling cost is comparatively less than the monolithic architecture.
|More cost compared to microservice.|
|Faster release cycle and more efficient||Slower release cycle.|
|Deployment is very quick and easy||Here deployment is less flexible.|
|In microservice each service can have an independent data storage||It involves sharing data storage between services|
Monolithic vs. Microservices
what are features of Microservices?
- Decoupling Nature– microservices within a system are largely decoupled. It means develop application as a whole can be easily built, altered, and scaled
- Agility – It support agile development. Any new feature can be quickly developed,test and deployment again
- Continuous Delivery support – It supports fast releases of software, through systematic automation of software creation, testing, and approval
- fulfill Business Capabilities – It is very simple and focus on a single capability service.
- Autonomy nature– more faster development , it is more agile friendly development support.
- Decentralized Governance – The focus is on using the right tool for the right job. That means there is no standardized pattern or any technology pattern. Developers have the freedom to choose the best useful tools to solve their problems.
- Modular form– It is develop in fully modular form, like small services so the independent components that can be easily replaced and upgraded
- Responsibility – it do not focus on applications as projects. Instead, they treat applications as products for which they are responsible
Read my other Post : Testing-metrics-in-agile