MENDIXWORLD
Monolith to Microservices: A Best Practices Approach
Jasper van der Hoek / Enterprise Architect
MENDIXWORLD
Architecture Trends
Internal Modular DesignTraditional Large System
MonolithSystem
ProcessDatabase
LogicGUI
MENDIXWORLD
Architecture Trends
Layered Re-Used ComponentsSOA “System”
Process Layer
Logic Layer
UI Layer
Data Layer
ESB
database Back-endsystems
MENDIXWORLD
Recent Architecture Trends
Independent Specific ComponentsMicroservices System
Time p. Feature
App Size
Micro-Service
Micro-Service
Micro-Service
Micro-Service
MENDIXWORLD
Recent Architecture Trends
Independent Specific Components
Microservices SystemLayered Re-Used Components
SOA “System”Internal Modular Design
Traditional Large System
Micro-Service
Micro-Service
Micro-Service
Micro-Service
MonolithSystem
ProcessDatabase
LogicGUI
Process Layer
Logic Layer
UI Layer
Data Layer
ESB
database Back-endsystems
MENDIXWORLD
Recent Architecture Trends
Independent Specific Components
Microservices SystemLayered Re-Used Components
SOA “System”
Time p. Feature
App Size
Internal Modular Design
Traditional Large System
Time p. Feature
App Size
Micro-Service
Micro-Service
Micro-Service
Micro-Service
Time p. Feature
App Size
MonolithSystem
ProcessDatabase
LogicGUI
Process Layer
Logic Layer
UI Layer
Data Layer
ESB
databaseBack-endsystems
MENDIXWORLD
Microservices Search Trends
2012
H1
2012
H2
2013
H1
2013
H2
2014
H1
2014
H2
2015
H1
2015
H2
2016
H1
2016
H2
2017
H1
2017
H2
2018
H1
2018
H2
2019
H1
MENDIXWORLD
2012
H1
2012
H2
2013
H1
2013
H2
2014
H1
2014
H2
2015
H1
2015
H2
2016
H1
2016
H2
2017
H1
2017
H2
2018
H1
2018
H2
2019
H1
Microservices Search Trends vs SOA
SOA
Microservices
MENDIXWORLD
Why Microservices?
(Long-term) Architectural Flexibility
Increase speed of development
Improve scalability
Improve Quality
Independent Release Management
MENDIXWORLD
How?
Maximize re-use Scale individual services
Reduce dependencies Reduce regression testing
Use single database Standardize technology
MENDIXWORLD
Re-use versus Efficiency
Maximize re-use
Use single database
Standardize technology
Autonomous Functional Services
Best Technology for the Job
Services own their data
VS
MENDIXWORLD
Choosing the Right Microservices
(Long-term) Architectural Flexibility
Increase speed of development
Improve scalability
Improve Quality
Independent Release Management
MENDIXWORLD
Choosing the Right Microservices
• Identify unique business domains by leveraging the ‘Bounded context’
• Design for clear separation in data and ownership
Product Product
Category
Product
Box
Inventory
Product Context
Inventory Context
Shipping Context
MENDIXWORLD
Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.
- M. Conway
MENDIXWORLD
Aligning Business with IT… and technology
Business
IT
Business Processes
IT Solutions(Microservices)
MENDIXWORLDIT
Business Processes
IT Solutions(Microservices)
Aligning Business with IT… and technology
MENDIXWORLD
Choosing the Right Microservices
Level 1
Level 2
Level 3 Business Line
Department
Business Line
Business LineBusiness Line
Department
Business Line
Company Mission
Differentiator Differentiator DifferentiatorDifferentiatorDifferentiator Differentiator
Value Driver
Value Driver
Value Driver
Value Driver
Value Driver
ProcessProcess
Business Line
Process
MENDIXWORLD
Choosing the Right Microservices
(Long-term) Architectural Flexibility
Increase speed of development
Improve scalability
Improve Quality
Independent Release Management
MENDIXWORLD
Choosing the Right Microservices
Level 1
Level 2
Level 3 Business Line
Department
Business Line
Business LineBusiness Line
Department
Business Line
Company Mission
Differentiator Differentiator DifferentiatorDifferentiatorDifferentiator Differentiator
Value Driver
Value Driver
Value Driver
Value Driver
Value Driver
Solution SolutionMicroservice Microservice
Microservice
Solution
Microservice
Microservice
Microservice
DevOps TeamDevOps TeamDevOps Team DevOps Team
Level 4
MENDIXWORLD
Validate Your Microservices
Service Lifecycle & Responsibility• Start of the service lifecycle• End of the service lifecycle
Business Events (incoming/outgoing)• Describe the events in a single sentence
Process description• Identification of major processes (non-
exhaustive)
Stakeholders• Roles of users of the service
MENDIXWORLD
Thank you!
Mendix Makes Microservices easierCheckout these track tomorrow:
Wed — 2:15 pm The aha! Moment: How eXp Realty reached the decision to build a microservices architecture
Wed — 3:15 pm Microservices: What, Why, When and How
Wed — 4:15 pmOData! Bringing structure and syntax to accessing your data
To learn more, connect with Expert Services and ask them about our approach to Microservices.