Microservice Architecture
Prior to Microservices architecture Monolithic architecture was in practice in which all the software components are grouped together into a single package (code for different features remains on same server). Microservice architecture is a design pattern for Service-Oriented Architecture (SoA) in which application is divided into small components and each component is developed and deployed independently, each service is autonomous and implements single business function.
Major Features :
- As a Component –
- Microservice are treated as independent components which can be deployed independently.
- Coupling –
- All microservices are loosely coupled with one another which ensures that changes done in one does not affect other microservices.
- Troubleshooting –
- With microservice troubleshooting the fault becomes easy as only the affected microservice will go down rest will continue to function.
- Autonomous –
- As microservices are treated autonomous and independent so different development team can work independently.
- Focused –
- Each microservice is developed to deliver only one business task.
Challenges :
- Distributed System –
- Different technologies will be used to develop microservices which increases complexity.
- Monitoring –
- It will have more services to monitor in comparison to Monolithic architecture.
- Costly –
- Microservice Architecture is costly as different servers needs to be maintained for different services.