10. Hard to scale
RDBMS was also a SPOF and bottleneck
Vertical scaling easy, but limited
11. Hard to scale
RDBMS was also a SPOF and bottleneck
Vertical scaling easy, but limited
Horizontal scaling helpful, but slow and expensive
12. Hard to scale
RDBMS was also a SPOF and bottleneck
Vertical scaling easy, but limited
Horizontal scaling helpful, but slow and expensive
Scaling the whole monolith was wasteful
13. “...the average server operates at no more than
12 to 18 percent of its capacity”
Natural Resources Defense Council
15. Sharing knowledge of components
Difficult to upgrade without affecting other services
Tightly coupled, slow to change
16. Sharing knowledge of components
Difficult to upgrade without affecting other services
Sharing libraries, platform, OS etc.
Teams have little choice in setup
Tightly coupled, slow to change
26. Resilience to failure
Able to isolate failures
Gracefully adapt to failures
Quick recovery
Easy (auto) scaling
27. Loosely coupled, easy to change
Share contracts, not internals
Little to no knowledge of other services needed
28. Loosely coupled, easy to change
Share contracts, not internals
Little to no knowledge of other services needed
Teams free to choose OS, language, libraries etc.
Free to upgrade and experiment independently
29. “In short, the microservice architectural style is an approach to developing
a single application as a suite of small services, each running in its
own process and communicating with lightweight mechanisms, often an
HTTP resource API. These services are built around business
capabilities and independently deployable by fully automated
deployment machinery. There is a bare minimum of centralized
management of these services, which may be written in different
programming languages and use different data storage technologies.”
James Lewis and Martin Fowler, ThoughtWorks
30. “Loosely coupled service oriented
architecture with bounded contexts”
Adrian Cockcroft, Architect @ Netflix
59. Marx on Microservices
Economic and Philosophic Manuscripts of 1844
Gattungswesen (species-being)
Workers feeling a connection to their work
60. Marx on Microservices
Economic and Philosophic Manuscripts of 1844
Gattungswesen (species-being)
Workers feeling a connection to their work
Entfremdung (alienation)
Workers feel estranged from their work
71. Service Oriented Architecture
Boundaries are explicit
Services are autonomous
Services share schema and contract, not class
Service compatibility is based on policy
78. “The latest shiny new technology will not make
things better… If you want spectacular gains,
then you need to make a spectacular
commitment to change.”
Anne Thomas Manes, SOA is Dead; Long Live Services
79. “... and that’s where we need to concentrate from
this point forward: Services”
Anne Thomas Manes, SOA is Dead; Long Live Services
80. “Microservices are hard. Some things you get for
free, but you have to work for the good stuff. If
you won’t put in the work, you shouldn’t be doing
Microservices. (You should be doing that stuff
anyway!)”
Steve Upton
81. “Microservices are hard. Some things you get for
free, but you have to work for the good stuff. If
you won’t put in the work, you shouldn’t be doing
Microservices. (You should be doing that stuff
anyway!)”
Steve Upton
82. “Microservices are hard. Some things you get for
free, but you have to work for the good stuff. If
you won’t put in the work, you shouldn’t be doing
Microservices. (You should be doing that stuff
anyway!)”
Steve Upton
83. “Microservices are hard. Some things you get for
free, but you have to work for the good stuff. If
you won’t put in the work, you shouldn’t be doing
Microservices. (You should be doing that stuff
anyway!)”
Steve Upton
84. “Microservices are hard. Some things you get for
free, but you have to work for the good stuff. If
you won’t put in the work, you shouldn’t be doing
Microservices. (You should be doing that stuff
anyway!)”
Steve Upton
85. “Microservices are hard. Some things you get for
free, but you have to work for the good stuff. If
you won’t put in the work, you shouldn’t be doing
Microservices. (You should be doing that stuff
anyway!)”
Steve Upton