SlideShare a Scribd company logo
1 of 13
1
Division | Unclassified
#Rafdocs
Transforming Monoliths to Microservices
Alon Yair
Unclassified
2
Division | Unclassified
#Rafdocs
• Motivation for transformation
• Main challenges in transformation
• Strategies and Techniques
We will talk about…
3
Division | Unclassified
#Rafdocs
From Monolith to Microservices: Our Story
3
Client
Middleware
Server
DB
API Gateway
Web UI
DS Service
BE ServiceMonolith
Unit Area Objects SDB
MKRC
Optimal Path Detection Domain Services
Cassandra Kafka
Infrastructure Services
4
Division | Unclassified
#Rafdocs
• Large code base, hard to maintain
• Longer development cycles
• Any change require full release
• Inaccessible capabilities from the outside
• Fixed technology stack
• High coupling between modules
• Failure affects entire system
• Scale requires full duplication (if possible)
How Monolith is Born ? (Like a baby)
I Do
Something
I do some
other things
I can do a lot
of things
Ok, I reached my
limits
Are you serious ?!?
Monolithic Frame
5
Division | Unclassified
#Rafdocs
Microservices Systems
• Shorten development cycles
• Accessible capabilities
• Support frequent updates
• Easy to scale and better performs
• Make it easy to divide into teams
• Allow teams to develop expertise
• Reduces critical failure points
• Faster boot times after failures (only
the crashed service is booted)
6
Division | Unclassified
#Rafdocs
Throw Away or Transform ?
Big Ball of Mud
Who are we ? Software Engineers
What do we want ? Build from scratch
Why we want it ? Because It’s FUN!
7
Division | Unclassified
#Rafdocs
Throw Away or Transform ?
8
Division | Unclassified
#Rafdocs
1. Consider using a Framework
• Significant bootstrap
• Maintain suitable architectural principles
• Friendly to the monolithic code
• Plan end-to-end Proof of Concept
2. Adopt gradual approach
• Start with one module
• Prioritize by importance and complexity
• New modules as microservices
• Operate alongside the monolithic part
Where to Start ?
10
Division | Unclassified
#Rafdocs
Transformation Technique #1: Safety Net
• Parallel operation of the new service alongside
the monolithic part
• Allows a gradual transition to the new service
• Load dispersion before full service maturity
• Used as a safety net in case of service failure
• Relevant Patterns
• Strangler Pattern
• Branch By Abstraction
Existing
Module
Service
Proxy New Service
Module
Abstraction
Inbound Call
Monolith
11
Division | Unclassified
#Rafdocs
Transformation Technique #2: The “Macroservice”
• Variation Anti-Corruption Layer pattern
• Wrapping monolith as one big service
• Aligned to the Framework
• Runnable on unified infrastructure
• Uses same communication (monitoring)
Monolith Service
Monolith
Microservice
Microservice
Microservice
12
Division | Unclassified
#Rafdocs
Transformation Technique #3: Traffic Optimization
#1 Significantly reduce chatter
Using batch call… cautiously, Using caches
#2 Distinguish internal communication
Using efficient binary protocols (e.g. gRPC)
• We tend to ignore network considerations
• From 30 seconds to 30 Minutes!
• About 900,000 calls between services
13
Division | Unclassified
#Rafdocs
Maria: Crazy rollercoaster, I became better software engineer
Varda: A unique adventure, I grew, developed and mainly enjoyed
Yaniv: A long journey with a huge sense of satisfaction at the end
14
Division | Unclassified
#Rafdocs
Alon Yair: alony@rafael.co.il

More Related Content

What's hot

How Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice LandscapeHow Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice LandscapeAdam Arsenault
 
Microservices and the future on Infrastructure
Microservices and the future on InfrastructureMicroservices and the future on Infrastructure
Microservices and the future on InfrastructurePini Reznik
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architectureMohammad Dameer
 
Microservice Architecture 101
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101Kochih Wu
 
DEVNET-1166 Open SDN Controller APIs
DEVNET-1166	Open SDN Controller APIsDEVNET-1166	Open SDN Controller APIs
DEVNET-1166 Open SDN Controller APIsCisco DevNet
 
An Introduction to FileCatalyst
An Introduction to FileCatalystAn Introduction to FileCatalyst
An Introduction to FileCatalystFileCatalyst
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficC4Media
 
Webinar intro-to-central3.7-nov23-2016
Webinar intro-to-central3.7-nov23-2016Webinar intro-to-central3.7-nov23-2016
Webinar intro-to-central3.7-nov23-2016FileCatalyst
 
Optimising nfv service chains on open stack using docker
Optimising nfv service chains on open stack using dockerOptimising nfv service chains on open stack using docker
Optimising nfv service chains on open stack using dockerAnanth Padmanabhan
 
Simple Solutions for Complex Problems - Boulder Meetup
Simple Solutions for Complex Problems - Boulder MeetupSimple Solutions for Complex Problems - Boulder Meetup
Simple Solutions for Complex Problems - Boulder MeetupApcera
 
A prototype of utilizing Apache Kafka and Lightweight M2M protocol as the bac...
A prototype of utilizing Apache Kafka and Lightweight M2M protocol as the bac...A prototype of utilizing Apache Kafka and Lightweight M2M protocol as the bac...
A prototype of utilizing Apache Kafka and Lightweight M2M protocol as the bac...Christos Vasilakis
 
Microservices & Container Networking - OSN Days, Singapore
Microservices & Container Networking - OSN Days, SingaporeMicroservices & Container Networking - OSN Days, Singapore
Microservices & Container Networking - OSN Days, SingaporeIyappa "Ayyaps" Swaminathan
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
A Deeper Look at Network Virtualization
A Deeper Look at Network VirtualizationA Deeper Look at Network Virtualization
A Deeper Look at Network VirtualizationScott Lowe
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsŁukasz Sowa
 
Grokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking VN
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istioWisnuPrabowo20
 

What's hot (20)

Microservice intro
Microservice introMicroservice intro
Microservice intro
 
How Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice LandscapeHow Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice Landscape
 
Microservices and the future on Infrastructure
Microservices and the future on InfrastructureMicroservices and the future on Infrastructure
Microservices and the future on Infrastructure
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservice Architecture 101
Microservice Architecture 101Microservice Architecture 101
Microservice Architecture 101
 
DEVNET-1166 Open SDN Controller APIs
DEVNET-1166	Open SDN Controller APIsDEVNET-1166	Open SDN Controller APIs
DEVNET-1166 Open SDN Controller APIs
 
Microservices
MicroservicesMicroservices
Microservices
 
An Introduction to FileCatalyst
An Introduction to FileCatalystAn Introduction to FileCatalyst
An Introduction to FileCatalyst
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
The Service Mesh: It's about Traffic
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about Traffic
 
Webinar intro-to-central3.7-nov23-2016
Webinar intro-to-central3.7-nov23-2016Webinar intro-to-central3.7-nov23-2016
Webinar intro-to-central3.7-nov23-2016
 
Optimising nfv service chains on open stack using docker
Optimising nfv service chains on open stack using dockerOptimising nfv service chains on open stack using docker
Optimising nfv service chains on open stack using docker
 
Simple Solutions for Complex Problems - Boulder Meetup
Simple Solutions for Complex Problems - Boulder MeetupSimple Solutions for Complex Problems - Boulder Meetup
Simple Solutions for Complex Problems - Boulder Meetup
 
A prototype of utilizing Apache Kafka and Lightweight M2M protocol as the bac...
A prototype of utilizing Apache Kafka and Lightweight M2M protocol as the bac...A prototype of utilizing Apache Kafka and Lightweight M2M protocol as the bac...
A prototype of utilizing Apache Kafka and Lightweight M2M protocol as the bac...
 
Microservices & Container Networking - OSN Days, Singapore
Microservices & Container Networking - OSN Days, SingaporeMicroservices & Container Networking - OSN Days, Singapore
Microservices & Container Networking - OSN Days, Singapore
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
A Deeper Look at Network Virtualization
A Deeper Look at Network VirtualizationA Deeper Look at Network Virtualization
A Deeper Look at Network Virtualization
 
Microservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problemsMicroservices - opportunities, dilemmas and problems
Microservices - opportunities, dilemmas and problems
 
Grokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocols
 
Service mesh with istio
Service mesh with istioService mesh with istio
Service mesh with istio
 

Similar to Transforming monolith systems to microservices

Migrating to Microservices Patterns and Technologies (edition 2023)
 Migrating to Microservices Patterns and Technologies (edition 2023) Migrating to Microservices Patterns and Technologies (edition 2023)
Migrating to Microservices Patterns and Technologies (edition 2023)Ahmed Misbah
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-ServicesRandy Shoup
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Ahmed Misbah
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0Vinod Wilson
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices ArchitectureParia Heidari
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.PLovababu
 
Closer Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesCloser Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesTodd Kaplinger
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudSrinivasan Nanduri
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Ahmed Misbah
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup
 
DEVNET-1142 Decomposing Monolithic Applications to Microservices
DEVNET-1142	Decomposing Monolithic Applications to MicroservicesDEVNET-1142	Decomposing Monolithic Applications to Microservices
DEVNET-1142 Decomposing Monolithic Applications to MicroservicesCisco DevNet
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservicesLalit Kale
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1Amin Arab
 
DCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDocker, Inc.
 

Similar to Transforming monolith systems to microservices (20)

Migrating to Microservices Patterns and Technologies (edition 2023)
 Migrating to Microservices Patterns and Technologies (edition 2023) Migrating to Microservices Patterns and Technologies (edition 2023)
Migrating to Microservices Patterns and Technologies (edition 2023)
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
The Overview of Microservices Architecture
The Overview of Microservices ArchitectureThe Overview of Microservices Architecture
The Overview of Microservices Architecture
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservices deck
Microservices deckMicroservices deck
Microservices deck
 
MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.MicroserviceArchitecture in detail over Monolith.
MicroserviceArchitecture in detail over Monolith.
 
Closer Look at Cloud Centric Architectures
Closer Look at Cloud Centric ArchitecturesCloser Look at Cloud Centric Architectures
Closer Look at Cloud Centric Architectures
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloud
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
 
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service FabricTokyo Azure Meetup #5 - Microservices and Azure Service Fabric
Tokyo Azure Meetup #5 - Microservices and Azure Service Fabric
 
DEVNET-1142 Decomposing Monolithic Applications to Microservices
DEVNET-1142	Decomposing Monolithic Applications to MicroservicesDEVNET-1142	Decomposing Monolithic Applications to Microservices
DEVNET-1142 Decomposing Monolithic Applications to Microservices
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Micro service session 1
Micro service   session 1Micro service   session 1
Micro service session 1
 
DCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to MicroservicesDCEU 18: From Monolith to Microservices
DCEU 18: From Monolith to Microservices
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Transforming monolith systems to microservices

  • 1. 1 Division | Unclassified #Rafdocs Transforming Monoliths to Microservices Alon Yair Unclassified
  • 2. 2 Division | Unclassified #Rafdocs • Motivation for transformation • Main challenges in transformation • Strategies and Techniques We will talk about…
  • 3. 3 Division | Unclassified #Rafdocs From Monolith to Microservices: Our Story 3 Client Middleware Server DB API Gateway Web UI DS Service BE ServiceMonolith Unit Area Objects SDB MKRC Optimal Path Detection Domain Services Cassandra Kafka Infrastructure Services
  • 4. 4 Division | Unclassified #Rafdocs • Large code base, hard to maintain • Longer development cycles • Any change require full release • Inaccessible capabilities from the outside • Fixed technology stack • High coupling between modules • Failure affects entire system • Scale requires full duplication (if possible) How Monolith is Born ? (Like a baby) I Do Something I do some other things I can do a lot of things Ok, I reached my limits Are you serious ?!? Monolithic Frame
  • 5. 5 Division | Unclassified #Rafdocs Microservices Systems • Shorten development cycles • Accessible capabilities • Support frequent updates • Easy to scale and better performs • Make it easy to divide into teams • Allow teams to develop expertise • Reduces critical failure points • Faster boot times after failures (only the crashed service is booted)
  • 6. 6 Division | Unclassified #Rafdocs Throw Away or Transform ? Big Ball of Mud Who are we ? Software Engineers What do we want ? Build from scratch Why we want it ? Because It’s FUN!
  • 8. 8 Division | Unclassified #Rafdocs 1. Consider using a Framework • Significant bootstrap • Maintain suitable architectural principles • Friendly to the monolithic code • Plan end-to-end Proof of Concept 2. Adopt gradual approach • Start with one module • Prioritize by importance and complexity • New modules as microservices • Operate alongside the monolithic part Where to Start ?
  • 9. 10 Division | Unclassified #Rafdocs Transformation Technique #1: Safety Net • Parallel operation of the new service alongside the monolithic part • Allows a gradual transition to the new service • Load dispersion before full service maturity • Used as a safety net in case of service failure • Relevant Patterns • Strangler Pattern • Branch By Abstraction Existing Module Service Proxy New Service Module Abstraction Inbound Call Monolith
  • 10. 11 Division | Unclassified #Rafdocs Transformation Technique #2: The “Macroservice” • Variation Anti-Corruption Layer pattern • Wrapping monolith as one big service • Aligned to the Framework • Runnable on unified infrastructure • Uses same communication (monitoring) Monolith Service Monolith Microservice Microservice Microservice
  • 11. 12 Division | Unclassified #Rafdocs Transformation Technique #3: Traffic Optimization #1 Significantly reduce chatter Using batch call… cautiously, Using caches #2 Distinguish internal communication Using efficient binary protocols (e.g. gRPC) • We tend to ignore network considerations • From 30 seconds to 30 Minutes! • About 900,000 calls between services
  • 12. 13 Division | Unclassified #Rafdocs Maria: Crazy rollercoaster, I became better software engineer Varda: A unique adventure, I grew, developed and mainly enjoyed Yaniv: A long journey with a huge sense of satisfaction at the end
  • 13. 14 Division | Unclassified #Rafdocs Alon Yair: alony@rafael.co.il

Editor's Notes

  1. How Monolith is Born Monoliths lives in frames… the Monolith’s Home At beginning doing on thing Then adding more things (“chores”) Monolith is doing great, even enjoys it (like a kid getting extra responsibility)… the monolithic frame supplies all his needs (compute, memory, storage…) At some point he reaches his limits… signals to us, but still capable We don’t have a choice, we need to add some more chores Monolith is unhappy… feeling squeezed, stressed, start to crash, doesn’t do what we ask him to do, unexpected… (just like a teenager) At this point we start experience unexpected behavior We try do understand what is going over on him… we do some profiling and optimization actions… likely in critical parts We manage to delay the inevitable… but that’s it… we only delay the inevitable… The wire is already set… and this whole thing is ready to explode…
  2. Microservices Architecture is relatively new but good design principles like SOLID were established decades ago Our monolith probably look like this (color stains) We have some polish diamonds in it… it’s only the monolithic frame that limits them We should migrate them to a new open, enabling, scalable architecture
  3. Legit end-state can be “multilith”… no need to get pure microservices architecture Transforming inner modules to services involves costs and should be decided according business value
  4. After transforming a module to service he still need to communicate the remaining monolityh We wouldn’t want to “pollute” him with the monolith’s communication protocol Traditional approach is to implement an Anti-Corruption Layer inside the new service Since we are going to transform several modules it is better to flip it the other way around… Instead of implementing ACL inside every service we can wrap the monolith as a service (Disguise it) After transforming several modules to services we wouldn’t want
  5. We don’t pay much attention to network issues, especially if we work on a monolith In our first trial we’ve demonstrated “huge improvement”… we gone from 30s to 30m Those 900K calls were just function calls till now… and we don’t try to save in function (on the contrary) The modules we transform weren’t designed to work with external communication… they are chatty