
Â
Â
What are Microservices?
independently releaseble services
Microservices avoid the use of a shared databases in most circumstance. Instead, each microservice encapsulate it's own database where required.
Microservice embrace the concept of information hiding. (expose only what is necessary)
Goal is to enable independent releasability of functionality
Key concepts
Independent deployability
Modeled around a business domain
Owning there own state
Size
Flexibility
Alignement of architecture and organisation
The monoliths
Microservice is the oposite of a monolith: a monolith is when all functionality in a system must be deployed together.
The single process monolith
The modular monolith
The distributed monolith
Monoliths and delivery contention
Monolith advantage
Enabling technology
Log aggregation and distributed tracing
Container and kubernetes
Streaming
Public Cloud and serverless
Advantage of microservices
Technology heterogenity
Robustness
Scaling
Ease of deployment
Organizational Alignement
Composability
Microservices pain points
Developer experience
Technology overload
costs
Reporting
Monitoring and trouble shooting
Security
Testing
Latency
Data consistency
Should I use microservice?
Whom they might not work for
Where they work well
Â
Â
