SlideShare a Scribd company logo
DEVNET-1142	Decomposing Monolithic Applications to Microservices
Decomposing Monoliths to
Microservices
Jim Bugwadia, Nirmata
DEVNET-1142
About me
• Founder and CEO at Nirmata
• Developer (C++, Java, JS, Go)
• Large-scale distributed systems
• Microservices
• Why?
• Definition
• Pros & Cons
• Monolith  Microservices
• Before you start
• 8 tips to decompose a Monolith
• Summary
Agenda
Businesses are adopting Microservices for agility at scale
20% of enterprises will adopt Microservices by 2016” -- Gartner
DEVNET-1142	Decomposing Monolithic Applications to Microservices
1. Elastic: scales up or down independently of other services
2. Resilient: services provide fault isolation boundaries
3. Composable: uniform APIs for each service
4. Minimal: highly cohesive set of entities
5. Complete: loosely coupled with other services
A Microservices style application is composed of several cooperating
services, and each Service is:
Microservices ++ Microservices --
• Agility
• Small code sets are easier to learn
and manage
• Small autonomous teams with end-to-
end ownership
• Enables continuous delivery
• Scalability
• Resiliency
• Resource usage efficiencies
• Can choose, evolve, and experiment
with, best technologies for each
service
• Distributed systems are hard
• Increased intra-system communication
• Increased operational complexity
Before you start…
• Microservices will not fix existing design issues
• Apply SOLID OO principles (or similar) for modular design
• Microservices require distributed system expertise
• Learn distributed programming Microservices patterns
• Microservices require operational tooling
• Adopt Infrastructure as a Service
• Containerize your monolith
• Automate application deployment and lifecycle management
• Select the right Microservices operations & management solution
8 ways to decompose the monolith
1. New features
2. Conway’s Law
3. Application Data Model
4. Application Modules
5. Users
6. Resiliency
7. Scalability
8. Stability
1. New Features
• Package new feature “as a
Service”
• Use a Proxy / Adapter design
pattern for existing modules to
communicate with the new
Service
• Shield users from the change
Pets Customers
Reports Proxy
Reports Service
API
Users
2. Conway’s Law
Organizations Systems
organizations which design systems ... are constrained to produce designs
which are copies of the communication structures of these organizations
-- Melvin Conway, 1968
3. Data Model
• Look for groupings in data
model
• Consider data sizing and
access, in addition to
relations
4. Modules
• Modular design High Cohesion and Low Coupling
• Entities in a module should be highly cohesive i.e.
focused on solving the same problem
• Modules should be loosely coupled with each other
• A modular design can be converted to a
Microservices architecture, where each module is a
candidate for a service
Pets Users
Ratings Reviews
Payments Orders
5. Users and roles
• Identify different sets of users
• Internal vs. External
• Microservices as business
functions
6. Resiliency
• Can the application still function when
a module fails?
• Which modules can operate
independently?
• Which modules can exchange data
using stable interfaces?
Pets Users
Ratings Reviews
Payments Orders
X
See also: Bounded Context in Domain Driven Design
Domain-Driven Design: Tackling Complexity in the Heart of Software – Eric Evans
7. Scalability
• Which module gets utilized the most?
• What are the I/O, memory, and CPU
patterns for each module?
• Separate modules with very different
characteristics
8. Stability
• How often do modules change?
• Separate stable modules from fast
changing ones
• System dependencies should point
towards stability
0
2
4
6
8
10
12
14
Jan Feb Mar Apr May Jun
Orders Bookings Catalog
Summary
• Microservices enable agility at scale
• Microservices require operations tooling and
distributed programming skills
• 8 ways to evolve a Monolith to Microservices
1. New features
2. Conway’s Law
3. Application Data Model
4. Application Modules
5. Users and roles
6. Resiliency
7. Scalability
8. Stability
Related Sessions
Come try Nirmata with UCS and Intercloud @ DevNet Cloud POD #3
DEVNET-1184 – Microservices Patterns Monday, June 8, 10:30 AM – 11:00 AM,
DevNet Theater
DEVNET-2013 - DevOps In Depth - Adrian Cockcroft
on Fast Delivery
Tuesday, Jun 9, 1:45 PM - 2:30 PM,
DevNet Theater
DEVNET-1170 - Intercloud Microservices with Docker
and Nirmata
Thursday, Jun 11, 11:00 AM - 11:30 AM,
DevNet Theater
DEVNET-1137 - Application Centric Microservices Wednesday, Jun 10, 3:00 PM - 4:00 PM.
DevNet Theater
BRKDEV-1002 - What's Hot in Containers Thursday, Jun 11, 1:00 PM - 2:30 PM,
30B Upper Level
Thank you
DEVNET-1142	Decomposing Monolithic Applications to Microservices

More Related Content

PPTX
Microservices
PPTX
Microserces Architecture
PDF
Microservices: an introduction
PPTX
Introduction To Microservices
PPTX
Microservices: A Gentle Introduction
PPTX
Microservices
PDF
Introduction to Microservices
PPTX
Domain Driven Development (DDD)
Microservices
Microserces Architecture
Microservices: an introduction
Introduction To Microservices
Microservices: A Gentle Introduction
Microservices
Introduction to Microservices
Domain Driven Development (DDD)

What's hot (20)

PDF
Introduction to Microservices
PPTX
Design Patterns for Micro Service Architecture
PPTX
Introduction to microservices
PPTX
Develop in ludicrous mode with azure serverless
PPTX
Visualizing Software Architecture Effectively in Service Description
PPTX
Introduction to Microservices
PPTX
Microservices Architecture
PPTX
Cloud Computing Fundamentals
PPTX
Cloud Computing
PDF
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
PPSX
Private Cloud 101 - Part I
PDF
Evaluating Streaming Data Solutions
PPTX
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...
PPTX
Think Small To Go Big - Introduction To Microservices
PDF
Microservice Architecture 101
PPTX
Why Data Virtualization Is Good For Big Data Analytics?
PPTX
PPTX
Kaseya Connect 2012 - Deploying Apps With Software Deployment And Update
PDF
Windows Server 2012: Top Technical Reasons to Upgrade
PDF
Virtual Servers
Introduction to Microservices
Design Patterns for Micro Service Architecture
Introduction to microservices
Develop in ludicrous mode with azure serverless
Visualizing Software Architecture Effectively in Service Description
Introduction to Microservices
Microservices Architecture
Cloud Computing Fundamentals
Cloud Computing
Istio as an Enabler for Migrating Monolithic Applications to Microservices v1.3
Private Cloud 101 - Part I
Evaluating Streaming Data Solutions
Massimo Bonanni - L'approccio ai microservizi secondo Service Fabric - Codemo...
Think Small To Go Big - Introduction To Microservices
Microservice Architecture 101
Why Data Virtualization Is Good For Big Data Analytics?
Kaseya Connect 2012 - Deploying Apps With Software Deployment And Update
Windows Server 2012: Top Technical Reasons to Upgrade
Virtual Servers
Ad

Viewers also liked (20)

PDF
Service-oriented architecture
PDF
How to disassemble a monolithic app in (not-so) micro-services
PPTX
From Monolithic to Microservices in 45 Minutes
PDF
Microservices from dream to reality in an hour - Dr. Holly Cummins
PDF
Come ti smantello un'app monolitica in microservices
PDF
Microservices meetup
PDF
Trends in development distributed systems
PDF
Microservices. The good the bad and the ugly
PPTX
Microservices Practitioner Summit Jan '15 - Breaking Things On Purpose - Kolt...
PPTX
Grokking microservices in 5 minutes
PDF
Software Architecture Conference - Monitoring Microservices - A Challenge
PDF
Modeling Microservices
PDF
Principles of microservices XP Days Ukraine
PDF
Large-Scale Enterprise Platform Transformation with Microservices, DevOps, an...
PDF
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
PDF
Growing a microservices landscape (with smart use cases)
PPTX
MicroserviceArchitecture in detail over Monolith.
PPTX
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
PDF
Teams and monoliths - Matthew Skelton - Velocity EU 2016
PPTX
From Monolith to Microservices – and Beyond!
Service-oriented architecture
How to disassemble a monolithic app in (not-so) micro-services
From Monolithic to Microservices in 45 Minutes
Microservices from dream to reality in an hour - Dr. Holly Cummins
Come ti smantello un'app monolitica in microservices
Microservices meetup
Trends in development distributed systems
Microservices. The good the bad and the ugly
Microservices Practitioner Summit Jan '15 - Breaking Things On Purpose - Kolt...
Grokking microservices in 5 minutes
Software Architecture Conference - Monitoring Microservices - A Challenge
Modeling Microservices
Principles of microservices XP Days Ukraine
Large-Scale Enterprise Platform Transformation with Microservices, DevOps, an...
The 6 Rules for Modernizing Your Legacy Java Monolith with Microservices
Growing a microservices landscape (with smart use cases)
MicroserviceArchitecture in detail over Monolith.
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Teams and monoliths - Matthew Skelton - Velocity EU 2016
From Monolith to Microservices – and Beyond!
Ad

Similar to DEVNET-1142 Decomposing Monolithic Applications to Microservices (20)

PPTX
Microservices why?
PPTX
Microservices tech talk ppt
PDF
Microservicessai 141024145932-conversion-gate01 (1)
PPTX
From Monolithic applications to Microservices
PDF
Microservices for Application Modernisation
PDF
20141210 - Microservice Container
PPTX
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
PDF
Microservices for Mortals
PPTX
An introduction to Microservices
PDF
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
PPTX
Microservice intro
PDF
Microservices for Mortals by Bert Ertman at Codemotion Dubai
PDF
Microservice architecture
PDF
DEVNET-1184 Microservices Patterns
PDF
MicroServices, yet another architectural style?
PPTX
Pragmatic Microservices
PDF
The Case Against Microservices
PPTX
building microservices
PDF
Building microservices on azure
PPTX
Architecting for speed: How agile innovators accelerate growth through micros...
Microservices why?
Microservices tech talk ppt
Microservicessai 141024145932-conversion-gate01 (1)
From Monolithic applications to Microservices
Microservices for Application Modernisation
20141210 - Microservice Container
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Microservices for Mortals
An introduction to Microservices
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Microservice intro
Microservices for Mortals by Bert Ertman at Codemotion Dubai
Microservice architecture
DEVNET-1184 Microservices Patterns
MicroServices, yet another architectural style?
Pragmatic Microservices
The Case Against Microservices
building microservices
Building microservices on azure
Architecting for speed: How agile innovators accelerate growth through micros...

More from Cisco DevNet (20)

PPTX
How to Contribute to Ansible
PPTX
Rome 2017: Building advanced voice assistants and chat bots
PPTX
How to Build Advanced Voice Assistants and Chatbots
PPTX
Cisco Spark and Tropo and the Programmable Web
PPTX
Device Programmability with Cisco Plug-n-Play Solution
PPTX
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
PPTX
Application Visibility and Experience through Flexible Netflow
PPTX
WAN Automation Engine API Deep Dive
PPTX
Cisco's Open Device Programmability Strategy: Open Discussion
PPTX
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
PPTX
NETCONF & YANG Enablement of Network Devices
PPTX
UCS Management APIs A Technical Deep Dive
PPTX
OpenStack Enabling DevOps
PPTX
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
PPTX
Getting Started: Developing Tropo Applications
PPTX
Cisco Spark & Tropo API Workshop
PPTX
Coding 102 REST API Basics Using Spark
PPTX
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
PPTX
DevNet Express - Spark & Tropo API - Lisbon May 2016
PPTX
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
How to Contribute to Ansible
Rome 2017: Building advanced voice assistants and chat bots
How to Build Advanced Voice Assistants and Chatbots
Cisco Spark and Tropo and the Programmable Web
Device Programmability with Cisco Plug-n-Play Solution
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Application Visibility and Experience through Flexible Netflow
WAN Automation Engine API Deep Dive
Cisco's Open Device Programmability Strategy: Open Discussion
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
NETCONF & YANG Enablement of Network Devices
UCS Management APIs A Technical Deep Dive
OpenStack Enabling DevOps
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
Getting Started: Developing Tropo Applications
Cisco Spark & Tropo API Workshop
Coding 102 REST API Basics Using Spark
Cisco APIs: An Interactive Assistant for the Web2Day Developer Conference
DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPT
Teaching material agriculture food technology
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Cloud computing and distributed systems.
PDF
Modernizing your data center with Dell and AMD
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
A Presentation on Artificial Intelligence
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Approach and Philosophy of On baking technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
KodekX | Application Modernization Development
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Teaching material agriculture food technology
Per capita expenditure prediction using model stacking based on satellite ima...
Digital-Transformation-Roadmap-for-Companies.pptx
Cloud computing and distributed systems.
Modernizing your data center with Dell and AMD
Chapter 3 Spatial Domain Image Processing.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Network Security Unit 5.pdf for BCA BBA.
A Presentation on Artificial Intelligence
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
20250228 LYD VKU AI Blended-Learning.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Empathic Computing: Creating Shared Understanding
Approach and Philosophy of On baking technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
KodekX | Application Modernization Development
Dropbox Q2 2025 Financial Results & Investor Presentation

DEVNET-1142 Decomposing Monolithic Applications to Microservices

  • 2. Decomposing Monoliths to Microservices Jim Bugwadia, Nirmata DEVNET-1142
  • 3. About me • Founder and CEO at Nirmata • Developer (C++, Java, JS, Go) • Large-scale distributed systems
  • 4. • Microservices • Why? • Definition • Pros & Cons • Monolith  Microservices • Before you start • 8 tips to decompose a Monolith • Summary Agenda
  • 5. Businesses are adopting Microservices for agility at scale 20% of enterprises will adopt Microservices by 2016” -- Gartner
  • 7. 1. Elastic: scales up or down independently of other services 2. Resilient: services provide fault isolation boundaries 3. Composable: uniform APIs for each service 4. Minimal: highly cohesive set of entities 5. Complete: loosely coupled with other services A Microservices style application is composed of several cooperating services, and each Service is:
  • 8. Microservices ++ Microservices -- • Agility • Small code sets are easier to learn and manage • Small autonomous teams with end-to- end ownership • Enables continuous delivery • Scalability • Resiliency • Resource usage efficiencies • Can choose, evolve, and experiment with, best technologies for each service • Distributed systems are hard • Increased intra-system communication • Increased operational complexity
  • 9. Before you start… • Microservices will not fix existing design issues • Apply SOLID OO principles (or similar) for modular design • Microservices require distributed system expertise • Learn distributed programming Microservices patterns • Microservices require operational tooling • Adopt Infrastructure as a Service • Containerize your monolith • Automate application deployment and lifecycle management • Select the right Microservices operations & management solution
  • 10. 8 ways to decompose the monolith 1. New features 2. Conway’s Law 3. Application Data Model 4. Application Modules 5. Users 6. Resiliency 7. Scalability 8. Stability
  • 11. 1. New Features • Package new feature “as a Service” • Use a Proxy / Adapter design pattern for existing modules to communicate with the new Service • Shield users from the change Pets Customers Reports Proxy Reports Service API Users
  • 12. 2. Conway’s Law Organizations Systems organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations -- Melvin Conway, 1968
  • 13. 3. Data Model • Look for groupings in data model • Consider data sizing and access, in addition to relations
  • 14. 4. Modules • Modular design High Cohesion and Low Coupling • Entities in a module should be highly cohesive i.e. focused on solving the same problem • Modules should be loosely coupled with each other • A modular design can be converted to a Microservices architecture, where each module is a candidate for a service Pets Users Ratings Reviews Payments Orders
  • 15. 5. Users and roles • Identify different sets of users • Internal vs. External • Microservices as business functions
  • 16. 6. Resiliency • Can the application still function when a module fails? • Which modules can operate independently? • Which modules can exchange data using stable interfaces? Pets Users Ratings Reviews Payments Orders X See also: Bounded Context in Domain Driven Design Domain-Driven Design: Tackling Complexity in the Heart of Software – Eric Evans
  • 17. 7. Scalability • Which module gets utilized the most? • What are the I/O, memory, and CPU patterns for each module? • Separate modules with very different characteristics
  • 18. 8. Stability • How often do modules change? • Separate stable modules from fast changing ones • System dependencies should point towards stability 0 2 4 6 8 10 12 14 Jan Feb Mar Apr May Jun Orders Bookings Catalog
  • 19. Summary • Microservices enable agility at scale • Microservices require operations tooling and distributed programming skills • 8 ways to evolve a Monolith to Microservices 1. New features 2. Conway’s Law 3. Application Data Model 4. Application Modules 5. Users and roles 6. Resiliency 7. Scalability 8. Stability
  • 20. Related Sessions Come try Nirmata with UCS and Intercloud @ DevNet Cloud POD #3 DEVNET-1184 – Microservices Patterns Monday, June 8, 10:30 AM – 11:00 AM, DevNet Theater DEVNET-2013 - DevOps In Depth - Adrian Cockcroft on Fast Delivery Tuesday, Jun 9, 1:45 PM - 2:30 PM, DevNet Theater DEVNET-1170 - Intercloud Microservices with Docker and Nirmata Thursday, Jun 11, 11:00 AM - 11:30 AM, DevNet Theater DEVNET-1137 - Application Centric Microservices Wednesday, Jun 10, 3:00 PM - 4:00 PM. DevNet Theater BRKDEV-1002 - What's Hot in Containers Thursday, Jun 11, 1:00 PM - 2:30 PM, 30B Upper Level