Chapter 8. Microservices Flashcards
1
Q
What are Microservices?
A
- light-weight, independent processes that form collectively complex application solutions
- these processes communicate with each other through language agnostic APIs
2
Q
What are guidelines for refactoring a monolith into a microservice?
A
- complex monolith appliaction? Start carvin out services from the monolith, implementing desired functionalities for the taken out code, over time all or most functionalities will be implemented in the microservices architecture (like Strangler Fig Pattern)
- split monolith based on business logic, front-end, data access; event-driven communication between services
3
Q
What are benefits of the Microservice architecture? (8)
A
- no language or technology lock-in, because each services works independently, only API needs to return expected output
- each service can be deployed and managed seperately
- each service can be updated or scaled independently
- if one service failes, it does not bring down the whole application
- once code of a service is written, it can be reused in other projects, where similiar functionality is needed
- enables continious delivery
- work well with container orchestration tools like kubernetes
- components can be deployed across multiple servers or even data centers
4
Q
What are Challanges/Drawbacks of Microservices?
A
- choosing right service size
- deployment (needs to use distributed environment)
- testing (with lots of services and interdependencies can be complex)
- inter-service communication (can be costly if not done correctly)
- managing databases
- monitoring and logging (addressed by specialized tools like elastic)