SlideShare a Scribd company logo
From the Monolith to 
Micro-Services 
Randy Shoup 
@randyshoup 
linkedin.com/in/randyshoup
The Monolithic 
Architecture 
• Single, vertically-integrated unit 
• “The System” 
The System
The Monolithic 
Architecture 
Pros 
Simple at first 
In-process latencies 
Single codebase, deploy unit 
Resource-efficient at small scale 
Cons 
Coordination overhead as team 
grows 
Poor enforcement of modularity 
Poor scaling (vertical only) 
All-or-nothing deploy (downtime, 
failures) 
Long build times
The Monolithic 
Architecture, v2 
• Set of monolithic tiers 
• “The front-end”, “The app server”, “The database” 
Presentation 
Application 
Database
The Monolithic 
Database 
Pros 
Simple at first 
Join queries are easy 
Single schema, deployment 
Resource-efficient at small scale 
Cons 
Coupling over time 
Poor scaling and redundancy (all-or-nothing, 
vertical only) 
Difficult to tune properly 
All-or-nothing schema management
Micro-Services 
• Single-purpose 
• Simple, well-defined interface 
• Modular and independent 
• More graph of relationships than tiers 
• Fullest expression of encapsulation and modularity 
• Isolated persistence (!) 
A 
B 
C D E
Micro-Services 
Pros 
Each unit is simple 
Independent scaling and 
performance 
Independent testing and 
deployment 
Can optimally tune performance 
(caching, replication, etc.) 
Cons 
Many cooperating units 
Many small repos 
Requires more sophisticated tooling 
and dependency management 
Network latencies
Google Cloud 
Datastore 
• Cloud Datastore: NoSQL service 
o Highly scalable and resilient 
o Strong transactional consistency 
o SQL-like rich query capabilities 
• Megastore: geo-scale structured 
database 
o Multi-row transactions 
o Synchronous cross-datacenter replication 
• Bigtable: cluster-level structured storage 
o (row, column, timestamp) -> cell contents 
• Colossus: next-generation clustered file 
system 
o Block distribution and replication 
• Cluster management infrastructure 
o Task scheduling, machine assignment 
Cloud Datastore 
Megastore 
Bigtable 
Colossus 
Cluster manager
Pro-Tips: Building 
a Micro-Service 
• Common Chassis 
o Make it trivially easy to build and maintain a service 
• Define Service Interface (Formally!) 
o Propose, Discuss, Agree 
• Prototype Implementation 
o Simplest thing that could possibly work 
o Client can integrate with prototype 
o Implementor can learn what works and what does not 
• Real Implementation 
o Throw away the prototype (!) 
•  Rinse and Repeat
Transition to Service 
Relationships 
• Vendor – Customer Relationship 
o Friendly and cooperative, but structured 
o Clear ownership and division of responsibility 
o Customer can choose to use service or not (!) 
• Service-Level Agreement (SLA) 
o Promise of service levels by the provider 
o Customer needs to be able to rely on the service, like a utility 
• Charging and Cost Allocation 
o Charge customers for *usage* of the service 
o Aligns economic incentives of customer and provider 
o Motivates both sides to optimize

More Related Content

More from Randy Shoup

An Agile Approach to Machine Learning
An Agile Approach to Machine LearningAn Agile Approach to Machine Learning
An Agile Approach to Machine Learning
Randy Shoup
 

More from Randy Shoup (20)

Anatomy of Three Incidents -- Commonalities and Lessons
Anatomy of Three Incidents -- Commonalities and LessonsAnatomy of Three Incidents -- Commonalities and Lessons
Anatomy of Three Incidents -- Commonalities and Lessons
 
One Terrible Day at Google, and How It Made Us Better
One Terrible Day at Google, and How It Made Us BetterOne Terrible Day at Google, and How It Made Us Better
One Terrible Day at Google, and How It Made Us Better
 
Scaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermScaling Your Architecture for the Long Term
Scaling Your Architecture for the Long Term
 
Minimal Viable Architecture - Silicon Slopes 2020
Minimal Viable Architecture - Silicon Slopes 2020Minimal Viable Architecture - Silicon Slopes 2020
Minimal Viable Architecture - Silicon Slopes 2020
 
An Agile Approach to Machine Learning
An Agile Approach to Machine LearningAn Agile Approach to Machine Learning
An Agile Approach to Machine Learning
 
Moving Fast at Scale
Moving Fast at ScaleMoving Fast at Scale
Moving Fast at Scale
 
Breaking Codes, Designing Jets, and Building Teams
Breaking Codes, Designing Jets, and Building TeamsBreaking Codes, Designing Jets, and Building Teams
Breaking Codes, Designing Jets, and Building Teams
 
Scaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsScaling Your Architecture with Services and Events
Scaling Your Architecture with Services and Events
 
Learning from Learnings: Anatomy of Three Incidents
Learning from Learnings: Anatomy of Three IncidentsLearning from Learnings: Anatomy of Three Incidents
Learning from Learnings: Anatomy of Three Incidents
 
Minimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good EnoughMinimum Viable Architecture - Good Enough is Good Enough
Minimum Viable Architecture - Good Enough is Good Enough
 
Managing Data at Scale - Microservices and Events
Managing Data at Scale - Microservices and EventsManaging Data at Scale - Microservices and Events
Managing Data at Scale - Microservices and Events
 
Service Architectures at Scale
Service Architectures at ScaleService Architectures at Scale
Service Architectures at Scale
 
Monoliths, Migrations, and Microservices
Monoliths, Migrations, and MicroservicesMonoliths, Migrations, and Microservices
Monoliths, Migrations, and Microservices
 
Pragmatic Microservices
Pragmatic MicroservicesPragmatic Microservices
Pragmatic Microservices
 
A CTO's Guide to Scaling Organizations
A CTO's Guide to Scaling OrganizationsA CTO's Guide to Scaling Organizations
A CTO's Guide to Scaling Organizations
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015
 
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
 
Why Enterprises Are Embracing the Cloud
Why Enterprises Are Embracing the CloudWhy Enterprises Are Embracing the Cloud
Why Enterprises Are Embracing the Cloud
 
DevOpsDays Silicon Valley 2014 - The Game of Operations
DevOpsDays Silicon Valley 2014 - The Game of OperationsDevOpsDays Silicon Valley 2014 - The Game of Operations
DevOpsDays Silicon Valley 2014 - The Game of Operations
 

Recently uploaded

Recently uploaded (20)

A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Buy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdfBuy Epson EcoTank L3210 Colour Printer Online.pdf
Buy Epson EcoTank L3210 Colour Printer Online.pdf
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
Buy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptxBuy Epson EcoTank L3210 Colour Printer Online.pptx
Buy Epson EcoTank L3210 Colour Printer Online.pptx
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024Top 10 Symfony Development Companies 2024
Top 10 Symfony Development Companies 2024
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Agentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdfAgentic RAG What it is its types applications and implementation.pdf
Agentic RAG What it is its types applications and implementation.pdf
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 

From the Monolith to Micro-Services

  • 1. From the Monolith to Micro-Services Randy Shoup @randyshoup linkedin.com/in/randyshoup
  • 2. The Monolithic Architecture • Single, vertically-integrated unit • “The System” The System
  • 3. The Monolithic Architecture Pros Simple at first In-process latencies Single codebase, deploy unit Resource-efficient at small scale Cons Coordination overhead as team grows Poor enforcement of modularity Poor scaling (vertical only) All-or-nothing deploy (downtime, failures) Long build times
  • 4. The Monolithic Architecture, v2 • Set of monolithic tiers • “The front-end”, “The app server”, “The database” Presentation Application Database
  • 5. The Monolithic Database Pros Simple at first Join queries are easy Single schema, deployment Resource-efficient at small scale Cons Coupling over time Poor scaling and redundancy (all-or-nothing, vertical only) Difficult to tune properly All-or-nothing schema management
  • 6. Micro-Services • Single-purpose • Simple, well-defined interface • Modular and independent • More graph of relationships than tiers • Fullest expression of encapsulation and modularity • Isolated persistence (!) A B C D E
  • 7. Micro-Services Pros Each unit is simple Independent scaling and performance Independent testing and deployment Can optimally tune performance (caching, replication, etc.) Cons Many cooperating units Many small repos Requires more sophisticated tooling and dependency management Network latencies
  • 8. Google Cloud Datastore • Cloud Datastore: NoSQL service o Highly scalable and resilient o Strong transactional consistency o SQL-like rich query capabilities • Megastore: geo-scale structured database o Multi-row transactions o Synchronous cross-datacenter replication • Bigtable: cluster-level structured storage o (row, column, timestamp) -> cell contents • Colossus: next-generation clustered file system o Block distribution and replication • Cluster management infrastructure o Task scheduling, machine assignment Cloud Datastore Megastore Bigtable Colossus Cluster manager
  • 9. Pro-Tips: Building a Micro-Service • Common Chassis o Make it trivially easy to build and maintain a service • Define Service Interface (Formally!) o Propose, Discuss, Agree • Prototype Implementation o Simplest thing that could possibly work o Client can integrate with prototype o Implementor can learn what works and what does not • Real Implementation o Throw away the prototype (!) •  Rinse and Repeat
  • 10. Transition to Service Relationships • Vendor – Customer Relationship o Friendly and cooperative, but structured o Clear ownership and division of responsibility o Customer can choose to use service or not (!) • Service-Level Agreement (SLA) o Promise of service levels by the provider o Customer needs to be able to rely on the service, like a utility • Charging and Cost Allocation o Charge customers for *usage* of the service o Aligns economic incentives of customer and provider o Motivates both sides to optimize