SlideShare 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
How to disassemble a monolithic app in (not-so) micro-services
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 I’d love to hear your thoughts :-)
It’s not a code talk (but you can see some sources)
AGENDA:THERE’S NO
AGENDA
I’ve got a tale instead
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
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
difficult to adopt new
technologies
often stuck with the
starting choices
doesn’t 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
How to disassemble a monolithic app in (not-so) micro-services
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 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”
YAGNI
do monolith first
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
How to disassemble a monolithic app in (not-so) micro-services
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
How to disassemble a monolithic app in (not-so) micro-services
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
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
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.flickr.com/photos/leafbug/409950515/
http://martinfowler.com/bliki/CircuitBreaker.html
STOPLIGHT
https://github.com/orgsync/stoplight
HOW IT LOOKS LIKE
9XL
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
– 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.flickr.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
magnificent works
The Painter
Colors and shapes
come to life on her
canvas!
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
How to disassemble a monolithic app in (not-so) micro-services
NO MONOLITHS WERE
HARMED INTHE MAKING
OFTHIS PRESENTATION
andreabrigu@gmail.com
@BriguGraphic
Illustrated by:
TAKEAWAYS
go monolith first
communication (all-around) is strategic assets
start simple, then don’t fear the change
take decisions, I-REALLY-MEAN-THAT
…WHAT’S NEXT ?
• testing
• CQRS + ES
• log analisys & monitoring
• metrics
• …
Thank you.
@realfuzzy
Michele Franzin

More Related Content

PDF
Trasformare un'applicazione monolitica in microservices (versione #daje)
PDF
Come ti smantello un'app monolitica in microservices
PDF
Dockerize it: stop living in the past and embrace the future
PDF
Service-oriented architecture
PDF
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
PPTX
Introduction to micro-services @DevOps pune Meetup
PPTX
From Monolithic to Microservices in 45 Minutes
PDF
Designing, building, testing and deploying microservices. A stairway to heave...
Trasformare un'applicazione monolitica in microservices (versione #daje)
Come ti smantello un'app monolitica in microservices
Dockerize it: stop living in the past and embrace the future
Service-oriented architecture
Come costruire una Platform As A Service con Docker, Kubernetes Go e Java
Introduction to micro-services @DevOps pune Meetup
From Monolithic to Microservices in 45 Minutes
Designing, building, testing and deploying microservices. A stairway to heave...

Viewers also liked (7)

PDF
The Journey from Monolith to Microservices: a Guided Adventure
PDF
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
PDF
DEVNET-1142 Decomposing Monolithic Applications to Microservices
PDF
Kubernetes and lastminute.com: our course towards better scalability and proc...
PDF
Digital Strategy for dummies
PDF
Dockercon State of the Art in Microservices
PDF
Principles of microservices velocity
The Journey from Monolith to Microservices: a Guided Adventure
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
DEVNET-1142 Decomposing Monolithic Applications to Microservices
Kubernetes and lastminute.com: our course towards better scalability and proc...
Digital Strategy for dummies
Dockercon State of the Art in Microservices
Principles of microservices velocity
Ad

Similar to How to disassemble a monolithic app in (not-so) micro-services (20)

PPT
Technology offering
PDF
Beware the monolith
PDF
The Incubators of Future
PPTX
Why Everyone wants to become a CIO?
PPTX
Spotlinks: Pitch deck
PDF
Michael Schrage Digital Health Assembly 2015
PDF
Bridging the gap from data science to service
PPTX
Third & Fourth Industrial Revolution - Dalarna
PDF
The hi:project: empowering you, empowering us, with a more human web
PPTX
Econsultancy Future Trends Briefing
PDF
NEAR Protocol at the Decentralized Summit 2019
PPT
Entrepreneur in the age of Web2.0 2014
PDF
Capgemini Ron Tolido - the 3rd Platform and Insurance
DOC
Metanomics Transcript Feb 3 2010
PDF
Metanomics Transcript Feb 3 2010
PPTX
Intranet passion
PDF
Mp26 : Connecting Startups with Talents
PDF
mtlstartuptalent @ mtlpy
PDF
MCC Technology Class (April 2012)
PPTX
Cognitive Business: Where digital business meets digital intelligence
Technology offering
Beware the monolith
The Incubators of Future
Why Everyone wants to become a CIO?
Spotlinks: Pitch deck
Michael Schrage Digital Health Assembly 2015
Bridging the gap from data science to service
Third & Fourth Industrial Revolution - Dalarna
The hi:project: empowering you, empowering us, with a more human web
Econsultancy Future Trends Briefing
NEAR Protocol at the Decentralized Summit 2019
Entrepreneur in the age of Web2.0 2014
Capgemini Ron Tolido - the 3rd Platform and Insurance
Metanomics Transcript Feb 3 2010
Metanomics Transcript Feb 3 2010
Intranet passion
Mp26 : Connecting Startups with Talents
mtlstartuptalent @ mtlpy
MCC Technology Class (April 2012)
Cognitive Business: Where digital business meets digital intelligence
Ad

More from Codemotion (20)

PDF
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
PDF
Pompili - From hero to_zero: The FatalNoise neverending story
PPTX
Pastore - Commodore 65 - La storia
PPTX
Pennisi - Essere Richard Altwasser
PPTX
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
PPTX
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
PPTX
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
PPTX
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
PDF
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
PDF
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
PDF
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
PDF
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
PDF
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
PPTX
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
PPTX
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
PDF
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
PDF
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
PDF
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Pompili - From hero to_zero: The FatalNoise neverending story
Pastore - Commodore 65 - La storia
Pennisi - Essere Richard Altwasser
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Spectroscopy.pptx food analysis technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Encapsulation theory and applications.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Review of recent advances in non-invasive hemoglobin estimation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Big Data Technologies - Introduction.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Approach and Philosophy of On baking technology
Building Integrated photovoltaic BIPV_UPV.pdf
Machine learning based COVID-19 study performance prediction
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Chapter 3 Spatial Domain Image Processing.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectroscopy.pptx food analysis technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Unlocking AI with Model Context Protocol (MCP)
Network Security Unit 5.pdf for BCA BBA.
Encapsulation theory and applications.pdf
Spectral efficient network and resource selection model in 5G networks
MIND Revenue Release Quarter 2 2025 Press Release
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
The Rise and Fall of 3GPP – Time for a Sabbatical?

How to disassemble a monolithic app in (not-so) micro-services