March 31, 2021
Here is the link.
smaller, simpler applications
- Easier to understand and develop
Scales development: develop, deploy and scale each service independently.
Improves fault isolation
Memory leak - take down the entire monolithic
Only impact only one service, leave other services unaffected
Eliminate dependency on one technology - do not need same technology - Husk to implement one service
Eliminates long-term commitment to a single technology stack -> modular
Governance -
Two levels of architecture system-level, service-level
Easily try other technologies - Closure, node, play, python, Dropwizard, spring Boot, Scala
... and fail safely
Drawbacks of microservice
Complexity - Complexity of developing a complex system
Partial failure -
Multiple databases & transaction management e.g. Fun with eventual consistency
Distributed transaction - CAP theorem - event driven
Complexity of testing a distributed system
Selenium - RESTFUL API
Microservice testing strategies
Brittle, slow, costly
Reliable, fast, ...
Complexity of deploying and operating a distributed system - you need a lot of automation
Automating - cloud found, docker cluster solution - infrastructure - solution do exist
Developing and deploying features that span multiple services requires careful consideration
When to use it?
Context dependent -
In the beginning:
You don't need it
It will slow you down
Later on:
You need it
Refactoring is painful
Microservices are necessary but insufficient
Microservice-based application architecture
Deployment People
No comments:
Post a Comment