how to disassemble a monolithic app in (not-so) micro-services
TRANSCRIPT
DISCLAIMER
my personal opinion
people have different experiences
ideas, comment, etc contact me @realfuzzy
subject is wide, so I’d love to hear your thoughts :-)
It’s not a code talk (but you can see some sources)
WHY MICROSERVICES
• suite of small services• running in its own process• communicating with lightweight mechanisms• built around business capabilities • independently automated deployable • technology agnostic
- additional complexity of a distributed system
- tools/IDEs are monolithic applications oriented
- testing is more difficult
- must implement the inter-service communication
- increase memory consumption
AGENDA*
✓what’s a microservice?
✓why have I to jump in ?
• where I can start from ?
• how I should be aware of ?
* I know, I know, I lied about the agenda
– Martin Fowler, Chief Scientist - ThoughtWorks
“…don’t even consider microservices unless you have a system that's too complex to manage as a monolith”
YAGNIdo monolith first
monolith
microservice
complexity
prod
uctiv
ity
http
://m
artin
fow
ler.co
m/b
liki/M
icros
ervic
ePre
mium
.htm
l
– Sam Newman, author of Building Microservices
“I remain convinced that it is much easier to partition an existing […] system than
to do so up front… You have more to work with.”
THE NEWBEGINNING
http
s://u
ploa
d.wiki
med
ia.or
g/w
ikipe
dia/
com
mon
s/6/6
7/Ch
ange
_In_
Han
d.jpg
Q0: HOW TO DECOMPOSE A MONOLITH?
1. Identify business boundaries
2. start decomposing each into own microservice
3. follow the Single Responsibility Principle
4. goto :2
Sir. Tools
A warrior that can use every kind of tool as a weapon
Strateky Sensei
Master renowned for its strategic and
tactical ability
Workodoo Master
The work-force is strong with this one
OUR CHOICE ☛ RABBITMQ
• AMPQ message broker
• Erlang
• Fast, reliable, secure
• Many clients
• Commercial support
– Melvin Conway, 1968
“organizations which design systems … are constrained to produce designs
which are copies of the communication structures of these organizations”
– Martin Fowler, Chief Scientist - ThoughtWorks
“For many people throwing away a code base is a sign of failure, perhaps
understandable …, but still failure.”
The Smith
Master craftsman expert in forging
anything
The Sculptor
An artist able to give shape to
magnificent works
The Painter
Colors and shapes come to life on her
canvas!
TAKEAWAYS
go monolith first
communication (all-around) is strategic assets
start simple, then don’t fear the change
take decisions, I-REALLY-MEAN-THAT