際際滷

際際滷Share a Scribd company logo
HOW TO DISASSEMBLE
A MONOLITHIC APPS IN
(NOT-SO) MICRO-SERVICES
ROME 18 - 19 MARCH 2016
MICHELE
FRANZIN
@REALFUZZY
INTEREST IN
#MICROSERVICES
Trasformare un'applicazione monolitica in microservices (versione #daje)
PARTNERS
12.000
TRANSACTIONS/MONTH
in just an hour
DISCLAIMER
my personal opinion
people have different experiences
ideas, comment, etc contact me @realfuzzy
subject is wide, so Id love to hear your thoughts :-)
Its not a code talk (but you can see some sources)
AGENDA:THERES NO
AGENDA
Ive got a tale instead
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
BUAHAHAHAHA!
I AM THE
MONOLITH!
COME TO THE
WORLD TO BRING
IMMOBILISM AND
COMPLEXITY!
THE
MONOLITH
easy to develop
IDEs & development
tools support
easy to test
simple to deploy
works well for
relatively small apps
AFTER A WHILE
http://www.qcodemag.it/wp-content/uploads/2014/09/favela.jpg
growth overloads
everything
dif鍖cult to adopt new
technologies
often stuck with the
starting choices
doesnt scale to
long-lived application
MONOLITH
ARCHITECTURE ARCHITECTURE
MICROSERVICEIC
ARCHITECTURE
is the keyword
WHY MICROSERVICES
 suite of small services
 running in its own process
 communicating with lightweight mechanisms
 built around business capabilities
 independently automated deployable
 technology agnostic
Trasformare un'applicazione monolitica in microservices (versione #daje)
EXPECTATIONS
http://www.wallpaperawesome.com/wallpapers-awesome/
relatively small
easier to understand
easier to scale
development
improve fault isolation
develop & deploy
independently
no vendor lock
improves
tuning & scaling
- additional complexity of a distributed system
- tools/IDEs are monolithic applications oriented
- testing is more dif鍖cult
- must implement the inter-service communication
- increase memory consumption
AGENDA*
 whats 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
dont even consider microservices
unless you have a system that's too
complex to manage as a monolith
YAGNI
do monolith 鍖rst
monolith
microservice
complexity
productivity
http://martinfowler.com/bliki/MicroservicePremium.html
 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.
HOPE vs REALITY
http://martinfowler.com/articles/dont-start-monolith.html
Trasformare un'applicazione monolitica in microservices (versione #daje)
THE NEW
BEGINNING
https://upload.wikimedia.org/wikipedia/commons/6/67/Change_In_Hand.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
Trasformare un'applicazione monolitica in microservices (versione #daje)
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
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
HAHAHAHA!
YOUR EFFORTS
ARE NOT
ENOUGH TO
DEFEAT ME!
Your efforts have little effect!
an orthogonal approach might
help you ...
MANY
SERVICES THAT
COMMUNICATE ?
http://www.raptorsrepublic.com/
MESSAGING
XP
S2
S1
MESSAGE BUS
XP1
S2
S1
P2
S3
CHOOSE WISELY
 Reliability
 Routing algorithms
 Highly Availability
 Supported protocols
OUR CHOICE  RABBITMQ
 AMPQ message broker
 Erlang
 Fast, reliable, secure
 Many clients
 Commercial support
HERE!
SPECIFICATION IS A MUST
(no matter what)
JSON-LD
JSON-API HAL
DIY
DESIGN FOR FAILURE
aka: communicate when communication is hard
CIRCUIT BREAKER
https://www.鍖ickr.com/photos/leafbug/409950515/
http://martinfowler.com/bliki/CircuitBreaker.html
STOPLIGHT
https://github.com/orgsync/stoplight
HOW IT LOOKS LIKE
9XL
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
 Melvin Conway, 1968
organizations which design systems 
are constrained to produce designs
which are copies of the communication
structures of these organizations
THE INVERSE
CONWAY MANEUVER
 Martin Fowler, Chief Scientist -ThoughtWorks
For many people throwing away a code
base is a sign of failure, perhaps
understandable , but still failure.
SACRIFICIAL
ARCHITECTURE
http://www.cardhub.com/edu/credit-cards-expiration-date
POLYGLOT IS NICE
but mother tongue is fair enough
DEVOPS!
no devops?!? no party.
https://www.鍖ickr.com/photos/91657289@N02/10218392744
CONTINUOUS DEPLOYMENT
FOR RUBY GEMS
The Smith
Master craftsman
expert in forging
anything
The Sculptor
An artist able to
give shape to
magni鍖cent works
The Painter
Colors and shapes
come to life on her
canvas!
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
Trasformare un'applicazione monolitica in microservices (versione #daje)
NO MONOLITHS WERE
HARMED INTHE MAKING
OFTHIS PRESENTATION
andreabrigu@gmail.com
@BriguGraphic
Illustrated by:
TAKEAWAYS
go monolith 鍖rst
communication (all-around) is strategic assets
start simple, then dont fear the change
take decisions, I-REALLY-MEAN-THAT
WHATS NEXT ?
 testing
 CQRS + ES
 log analisys & monitoring
 metrics
Thank you.
@realfuzzy
Michele Franzin
Ad

Recommended

Come ti smantello un'app monolitica in microservices
Come ti smantello un'app monolitica in microservices
michele franzin
Microservices: cosa sono e quando non usarli
Microservices: cosa sono e quando non usarli
michele franzin
Secure Your Asses
Secure Your Asses
Avivi Academy
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Derek Ashmore
Transforming monolith systems to microservices
Transforming monolith systems to microservices
Alon Yair
Wie Monolithen f端r die Zukuft trimmen
Wie Monolithen f端r die Zukuft trimmen
Anatole Tresch
Refactoring Into Microservices 2016-11-06
Refactoring Into Microservices 2016-11-06
Derek Ashmore
Refactoring Into Microservices 2016-11-08
Refactoring Into Microservices 2016-11-08
Derek Ashmore
Beware the monolith
Beware the monolith
Dee Wilcox
Breaking down a monolith
Breaking down a monolith
GeekNightHyderabad
Should i break it?
Should i break it?
Gal Marder
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
Graham Charters
Pragmatic Microservices
Pragmatic Microservices
Randy Shoup
An introduction to Microservices
An introduction to Microservices
Cisco DevNet
On microservices and monoliths
On microservices and monoliths
Daniel Rolnick
Monoliths (and why you break 'em)
Monoliths (and why you break 'em)
Nico Suria
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
Judy Breedlove
Lowering the risk of monolith to microservices
Lowering the risk of monolith to microservices
Christian Posta
Breaking Down the Monolith at Uberflip
Breaking Down the Monolith at Uberflip
Yoav Schwartz
Microservices for Mortals by Bert Ertman at Codemotion Dubai
Microservices for Mortals by Bert Ertman at Codemotion Dubai
Codemotion Dubai
Introduction to microservices
Introduction to microservices
Anil Allewar
Nir Doboviski: In Space No One Can Hear Microservices Scream a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream a Microservice...
CodeValue
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
Lightbend
"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor Turskyi
Julia Cherniak
L11 Service Design and REST
L11 Service Design and REST
lafur Andri Ragnarsson
Monoliths and Microservices
Monoliths and Microservices
Bozhidar Bozhanov
Microservice Architecture
Microservice Architecture
Dhaval Shah
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Demetris Trihinas
Unleashing git power
Unleashing git power
michele franzin
1 anno di sviluppo prodotto con un team distribuito
1 anno di sviluppo prodotto con un team distribuito
michele franzin

More Related Content

Similar to Trasformare un'applicazione monolitica in microservices (versione #daje) (20)

Beware the monolith
Beware the monolith
Dee Wilcox
Breaking down a monolith
Breaking down a monolith
GeekNightHyderabad
Should i break it?
Should i break it?
Gal Marder
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
Graham Charters
Pragmatic Microservices
Pragmatic Microservices
Randy Shoup
An introduction to Microservices
An introduction to Microservices
Cisco DevNet
On microservices and monoliths
On microservices and monoliths
Daniel Rolnick
Monoliths (and why you break 'em)
Monoliths (and why you break 'em)
Nico Suria
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
Judy Breedlove
Lowering the risk of monolith to microservices
Lowering the risk of monolith to microservices
Christian Posta
Breaking Down the Monolith at Uberflip
Breaking Down the Monolith at Uberflip
Yoav Schwartz
Microservices for Mortals by Bert Ertman at Codemotion Dubai
Microservices for Mortals by Bert Ertman at Codemotion Dubai
Codemotion Dubai
Introduction to microservices
Introduction to microservices
Anil Allewar
Nir Doboviski: In Space No One Can Hear Microservices Scream a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream a Microservice...
CodeValue
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
Lightbend
"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor Turskyi
Julia Cherniak
L11 Service Design and REST
L11 Service Design and REST
lafur Andri Ragnarsson
Monoliths and Microservices
Monoliths and Microservices
Bozhidar Bozhanov
Microservice Architecture
Microservice Architecture
Dhaval Shah
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Demetris Trihinas
Beware the monolith
Beware the monolith
Dee Wilcox
Should i break it?
Should i break it?
Gal Marder
Microservices and OSGi: Better together?
Microservices and OSGi: Better together?
Graham Charters
Pragmatic Microservices
Pragmatic Microservices
Randy Shoup
An introduction to Microservices
An introduction to Microservices
Cisco DevNet
On microservices and monoliths
On microservices and monoliths
Daniel Rolnick
Monoliths (and why you break 'em)
Monoliths (and why you break 'em)
Nico Suria
Agile integration: Decomposing the monolith
Agile integration: Decomposing the monolith
Judy Breedlove
Lowering the risk of monolith to microservices
Lowering the risk of monolith to microservices
Christian Posta
Breaking Down the Monolith at Uberflip
Breaking Down the Monolith at Uberflip
Yoav Schwartz
Microservices for Mortals by Bert Ertman at Codemotion Dubai
Microservices for Mortals by Bert Ertman at Codemotion Dubai
Codemotion Dubai
Introduction to microservices
Introduction to microservices
Anil Allewar
Nir Doboviski: In Space No One Can Hear Microservices Scream a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream a Microservice...
CodeValue
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
Lightbend
"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor Turskyi
Julia Cherniak
Monoliths and Microservices
Monoliths and Microservices
Bozhidar Bozhanov
Microservice Architecture
Microservice Architecture
Dhaval Shah
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Demetris Trihinas

More from michele franzin (6)

Unleashing git power
Unleashing git power
michele franzin
1 anno di sviluppo prodotto con un team distribuito
1 anno di sviluppo prodotto con un team distribuito
michele franzin
...hai detto CQRS a chi ?!?!?!
...hai detto CQRS a chi ?!?!?!
michele franzin
Ruby 20th birthday
Ruby 20th birthday
michele franzin
Magie di git
Magie di git
michele franzin
from(0).to('rubygems.org')
from(0).to('rubygems.org')
michele franzin
1 anno di sviluppo prodotto con un team distribuito
1 anno di sviluppo prodotto con un team distribuito
michele franzin
...hai detto CQRS a chi ?!?!?!
...hai detto CQRS a chi ?!?!?!
michele franzin
from(0).to('rubygems.org')
from(0).to('rubygems.org')
michele franzin
Ad

Recently uploaded (20)

MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
IFI Techsolutions
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
Why Edge Computing Matters in Mobile Application Tech.pdf
Why Edge Computing Matters in Mobile Application Tech.pdf
IMG Global Infotech
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
From Data Preparation to Inference: How Alluxio Speeds Up AI
From Data Preparation to Inference: How Alluxio Speeds Up AI
Alluxio, Inc.
Microsoft-365-Administrator-s-Guide1.pdf
Microsoft-365-Administrator-s-Guide1.pdf
mazharatknl
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
SEOLIFT - SEO Company London
declaration of Variables and constants.pptx
declaration of Variables and constants.pptx
meemee7378
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
Zonerankers Digital marketing solutions
Zonerankers Digital marketing solutions
reenashriee
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
MOVIE RECOMMENDATION SYSTEM, UDUMULA GOPI REDDY, Y24MC13085.pptx
Maharshi Mallela
HYBRIDIZATION OF ALKANES AND ALKENES ...
HYBRIDIZATION OF ALKANES AND ALKENES ...
karishmaduhijod1
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
Enable Your Cloud Journey With Microsoft Trusted Partner | IFI Tech
IFI Techsolutions
Key Challenges in Troubleshooting Customer On-Premise Applications
Key Challenges in Troubleshooting Customer On-Premise Applications
Tier1 app
arctitecture application system design os dsa
arctitecture application system design os dsa
za241967
Why Edge Computing Matters in Mobile Application Tech.pdf
Why Edge Computing Matters in Mobile Application Tech.pdf
IMG Global Infotech
Canva Pro Crack Free Download 2025-FREE LATEST
Canva Pro Crack Free Download 2025-FREE LATEST
grete1122g
Decipher SEO Solutions for your startup needs.
Decipher SEO Solutions for your startup needs.
mathai2
Advance Doctor Appointment Booking App With Online Payment
Advance Doctor Appointment Booking App With Online Payment
AxisTechnolabs
Azure AI Foundry: The AI app and agent factory
Azure AI Foundry: The AI app and agent factory
Maxim Salnikov
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
IDM Crack with Internet Download Manager 6.42 Build 41 [Latest 2025]
pcprocore
From Data Preparation to Inference: How Alluxio Speeds Up AI
From Data Preparation to Inference: How Alluxio Speeds Up AI
Alluxio, Inc.
Microsoft-365-Administrator-s-Guide1.pdf
Microsoft-365-Administrator-s-Guide1.pdf
mazharatknl
Best MLM Compensation Plans for Network Marketing Success in 2025
Best MLM Compensation Plans for Network Marketing Success in 2025
LETSCMS Pvt. Ltd.
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
SEOLIFT - SEO Company London
declaration of Variables and constants.pptx
declaration of Variables and constants.pptx
meemee7378
Download Adobe Illustrator Crack free for Windows 2025?
Download Adobe Illustrator Crack free for Windows 2025?
grete1122g
Zonerankers Digital marketing solutions
Zonerankers Digital marketing solutions
reenashriee
Ad

Trasformare un'applicazione monolitica in microservices (versione #daje)