Micro Services

Title Text

Microservices is a way of breaking large software projects into loosely coupled modules, which communicate with each other through simple APIs

Advantage

1) Developing a microservice does not require a big team.
2) Each service of the application can be modified independently.
3) Developing, modifying, and deploying a service does not affect the operation of another service.
4) Does not require a long-term commitment to a certain type of technology.
5) llows flexible use of languages, frameworks, and databases within the same application
6) ecreased risk attached to deployment, smoother operation, and fewer customer complaints.

7) Easy to implement continuous deployment.
8) Latest technologies can be adopted quickly
9) Fault isolations: the crash of microservice does not make the entire application crash.
10) Efficiently scalable:
- Only those services need to be scaled that are in demand.
11) Load balancing.
12) Easy to use with Docker (and other container technologies).
13) Does not require big design efforts upfront.
14) Enables flexible product evolution.
15) Facilitates early release and continuous iteration.
16) Allows quick time-to-market and Agile development.
17) Easy to integrate with third party services and tools.

Disadvantage

1) Expensive remote calls (instead of in-process calls).
2) Increased network latency.
3) Increased processing time.
4) Bug tracking can be tedious.
5) Information barriers and communication difficulties
6) Developing a use case could need the cooperation of multiple teams.
7) Developers can struggle to see the big picture.
8) Moving responsibilities between services are difficult and complex.
9) Communication between multiple teams can cause decreased productivity.
10) Duplication of efforts and replication of functionalities.
11) Moving an engineer to new team could be problematic if they use a different stack

Demo

https://www.springboottutorial.com/introduction-to-spring-cloud

Micro Services

By Sagar Mal Shankhala