SlideShare une entreprise Scribd logo
1  sur  17
Refactoring the
Monolith?
Steven Hicks
http://theexceptioncatcher.com
Who am I?
Steven Hicks
http://theexceptioncatcher.com
@theexceptioncat
The Monolith
The monolith is a full application that encompases the entire life
cycle of a user’s interaction:
Web services
Web Rendering
Serving up static resources
Business Logic
Microservices
● Independent operations
● Small in context
○ Smaller Cognitive load
● Can embrace new technologies and
languages without a full cultural shift
What Happens In Reality
● Harder To Standardize
○ Multiple Code bases
○ Duplicated Code Bases
● Serialization and communication
overhead
● Lack of code reuse
● DevOps issues
● Tracing /Fragile system
● Overly Reliant on REST/JSON
● Client is up to the requestor
● Various instances of the same
microservice (WEB SCALE)
● Fiefdoms Develop
How did we get here?
What can we do about
it?
Popular Frameworks for Enterprise Solutions
Spring J2EE
Approach #1:
Modular Monolith
Modular Monolith
● Addressed the complexity issue that
microservices solves
● Makes smaller modules within the
system
● Addresses the network
communication problem
● Relies on the build to put everything
together
● It’s an easier step towards breaking up
the monolith
● Domain Driven Design approach
● Local builds are easy to run locally
Modular Monolith: Downsides
● Tooling is a bit difficult to handle
(multiple dependencies with auto
updates)
● A bit hard to extend and change
design
● It’s still a “monolith.” *
● Cognitive Load still requires system
level interaction
Approach 2
Message Queuing
Message Queuing
● Communication and Messaging is
handled by a central communication
service (the message queue)
● Separation of Responsibility
● Removes need for custom
serialization
● Storage of communication *
Message Queuing: Downsides
● Single Point of Failure
● Tracing (throughout the system)
requires a lot of logging
● Replying to a request may get
complicated
● Versioning becomes difficult
Approach 3
Pipeline and Nodes
Pipeline and Nodes
● Isolation of processing and service
delivery
● Handles the processing of requests
without slowing down other users
● Very Fast Requests
● Can handle complicated requests
● Easy to scale up
● Workflows-like design
● Smaller components to handle logic
Pipeline and Nodes: The Downsides
● Hard on databases
● Doesn’t handle state well
● Consensus and Split Brain Issues
● Large Memory Requirements
● Not great for round trips on live
requests for large transformations
● Still requires a bit of Devops setup
(Less so than microservices)
Questions?
Comments?
Experiences?
http://theexceptioncatcher.com
@theexceptioncat

Contenu connexe

Similaire à Refactoring the monolith

Similaire à Refactoring the monolith (20)

Pywaw summit 2015 - Monolithic app to micro services transition is easy...
Pywaw summit 2015 - Monolithic app to micro services transition is easy...Pywaw summit 2015 - Monolithic app to micro services transition is easy...
Pywaw summit 2015 - Monolithic app to micro services transition is easy...
 
Surviving microservices
Surviving microservicesSurviving microservices
Surviving microservices
 
Microservices: an introduction
Microservices: an introductionMicroservices: an introduction
Microservices: an introduction
 
The working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор ТурскийThe working architecture of NodeJS applications, Виктор Турский
The working architecture of NodeJS applications, Виктор Турский
 
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications   open tech week javascript ...The working architecture of node js applications   open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
 
Introduction to event based microservices
Introduction to event based microservicesIntroduction to event based microservices
Introduction to event based microservices
 
Micro Services Intro
Micro Services IntroMicro Services Intro
Micro Services Intro
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
 
2 years into drinking the Microservice kool-aid (Fact and Fiction)
2 years into drinking the Microservice kool-aid (Fact and Fiction)2 years into drinking the Microservice kool-aid (Fact and Fiction)
2 years into drinking the Microservice kool-aid (Fact and Fiction)
 
Topic02-Architecture.pptx
Topic02-Architecture.pptxTopic02-Architecture.pptx
Topic02-Architecture.pptx
 
Understanding Microservices
Understanding Microservices Understanding Microservices
Understanding Microservices
 
Do I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptxDo I Need A Service Mesh.pptx
Do I Need A Service Mesh.pptx
 
Wie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmenWie Monolithen für die Zukuft trimmen
Wie Monolithen für die Zukuft trimmen
 
Microservices: The Best Practices
Microservices: The Best PracticesMicroservices: The Best Practices
Microservices: The Best Practices
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Ledingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in actionLedingkart Meetup #1: Monolithic to microservices in action
Ledingkart Meetup #1: Monolithic to microservices in action
 
Refactoring to a system of systems
Refactoring to a system of systemsRefactoring to a system of systems
Refactoring to a system of systems
 
Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"Viktor Turskyi "Effective NodeJS Application Development"
Viktor Turskyi "Effective NodeJS Application Development"
 
Microservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many moreMicroservices, docker , kubernetes and many more
Microservices, docker , kubernetes and many more
 
Architectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and ConsistentlyArchitectural Decisions: Smoothly and Consistently
Architectural Decisions: Smoothly and Consistently
 

Dernier

UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
rknatarajan
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
Tonystark477637
 

Dernier (20)

High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 

Refactoring the monolith

  • 2. Who am I? Steven Hicks http://theexceptioncatcher.com @theexceptioncat
  • 3. The Monolith The monolith is a full application that encompases the entire life cycle of a user’s interaction: Web services Web Rendering Serving up static resources Business Logic
  • 4. Microservices ● Independent operations ● Small in context ○ Smaller Cognitive load ● Can embrace new technologies and languages without a full cultural shift
  • 5. What Happens In Reality ● Harder To Standardize ○ Multiple Code bases ○ Duplicated Code Bases ● Serialization and communication overhead ● Lack of code reuse ● DevOps issues ● Tracing /Fragile system ● Overly Reliant on REST/JSON ● Client is up to the requestor ● Various instances of the same microservice (WEB SCALE) ● Fiefdoms Develop
  • 6. How did we get here? What can we do about it?
  • 7. Popular Frameworks for Enterprise Solutions Spring J2EE
  • 9. Modular Monolith ● Addressed the complexity issue that microservices solves ● Makes smaller modules within the system ● Addresses the network communication problem ● Relies on the build to put everything together ● It’s an easier step towards breaking up the monolith ● Domain Driven Design approach ● Local builds are easy to run locally
  • 10. Modular Monolith: Downsides ● Tooling is a bit difficult to handle (multiple dependencies with auto updates) ● A bit hard to extend and change design ● It’s still a “monolith.” * ● Cognitive Load still requires system level interaction
  • 12. Message Queuing ● Communication and Messaging is handled by a central communication service (the message queue) ● Separation of Responsibility ● Removes need for custom serialization ● Storage of communication *
  • 13. Message Queuing: Downsides ● Single Point of Failure ● Tracing (throughout the system) requires a lot of logging ● Replying to a request may get complicated ● Versioning becomes difficult
  • 15. Pipeline and Nodes ● Isolation of processing and service delivery ● Handles the processing of requests without slowing down other users ● Very Fast Requests ● Can handle complicated requests ● Easy to scale up ● Workflows-like design ● Smaller components to handle logic
  • 16. Pipeline and Nodes: The Downsides ● Hard on databases ● Doesn’t handle state well ● Consensus and Split Brain Issues ● Large Memory Requirements ● Not great for round trips on live requests for large transformations ● Still requires a bit of Devops setup (Less so than microservices)

Notes de l'éditeur

  1. Hi my name is Steven Hicks I have been developing software as a hobby and professionally for nearly 20+ years. I’ve done development with full stack, embedded systems, and have done big data. Lets smooth this out a bit later
  2. Go into how they were constructed as an application in a box approach Both of these approaches cobbled together a lot of technologies under the same system. Spring with it’s core + all of it’s extensions. J2EE with it’s acronym soup
  3. Technologies to bring in: OSGI Strict building