Microservices
Why?
(a.k.a. Common Problems with Monoliths)
comprehensibility
language limitations
modular scalability
modularity leaks
large, loosely-defined teams
What is a microservice?
1 monolith 2+ monoliths
Each monolith can be run and scaled independently, with no shared state
Does micro mean it has to be small?
We're edging around a semantic argument, but micro typically means
concerned with only one thing
.
...which may be a huge thing, like payroll. But more typically, they're smaller, like Netflix's streaming API or Amazon's reviews API.
smaller parts, easier to understand
specialized languages
optimized scaling
strictly defined modules
small, specialized teams
Advantages
Tradeoffs
(!) combinatorial complexity
(!) inflexible module boundaries
more complex infrastructure and deployment
cross-team communication very important
Made with Slides.com