SlideShare a Scribd company logo
Micro Services
Smaller is Better?
Eberhard Wolff
Freelance consultant & trainer
http://ewolff.com
Eberhard Wolff - @ewolff
Who has seen
a system that
was too
large?
Eberhard Wolff - @ewolff
Who has seen
a system that
was too
small?
Little programs are
delightful to write in
isolation,
but the process of
maintaining large-scale
software is always
miserable.
Jaron Lanier
Micro Services - Smaller is Better?
Eberhard Wolff - @ewolff
Micro Services: Definition
•  Small
•  Independent deployment units
•  i.e. processes
•  Any technology
•  Any infrastructure
Micro
Service
Server
Micro
Service
Server
Eberhard Wolff - @ewolff
Components Collaborate
Micro
Service
Micro
Service
Link
Data Replication
REST
Messaging
Eberhard Wolff - @ewolff
Why Micro Services?
Strong
modularization
Replaceability
Small units
Sustainable
Development
speed
Continuous
Delivery
Deployment
less risky
Free Choice of
technology
Eberhard Wolff - @ewolff
Micro Service

=

Micro?
Eberhard Wolff - @ewolff
10-100LOC
http://yobriefca.se/blog/
2013/04/28/micro-service-architecture/
Smaller modules
better
Eberhard Wolff - @ewolff
10-100LOC
http://yobriefca.se/blog/
2013/04/28/micro-service-architecture/
Smaller modules
better
Eberhard Wolff - @ewolff
Game of
Life
Eberhard Wolff - @ewolff
life←{ ⍝ John Conway's "Game of Life".

↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵
⍝ Expression for next generation.

}
Game of Life in one line of APL
dyalog.com
LOC is really a bad metric
Eberhard Wolff - @ewolff
Larger?
•  Micro Services have an overhead
•  Build & deployment pipeline
•  Version control
Eberhard Wolff - @ewolff
1st Law of Distributed Objects
•  Don’t Distribute Your Objects!
•  Too much remote communication &
overhead
•  Lesson learned from CORBA etc
•  http://martinfowler.com/bliki/
FirstLaw.html
Eberhard Wolff - @ewolff
Request
Response
Processing
Latency Round Trip:
0,2-0,5 ms
= 600.000-1.500.000
instructions@3GHz
Eberhard Wolff - @ewolff
1st Law of Distributed Objects &
Micro Services
•  Small Micro Services =
lot of communication
•  Violates the 1st Law
•  Seems to work, though
•  http://martinfowler.com/articles/
distributed-objects-
microservices.html
Eberhard Wolff - @ewolff
Too small =

too much
communication
Eberhard Wolff - @ewolffL
Eberhard Wolff - @ewolff
Again:

Why Micro
Services?
Eberhard Wolff - @ewolff
The main
reason
Eberhard Wolff - @ewolff
Business
relevant
Eberhard Wolff - @ewolff
How to scale
agile?
Implement
more feature
Eberhard Wolff - @ewolff
Conways Law
Architecture
copies
communication structures
of the organization
Eberhard Wolff - @ewolff
Conway’s Law as a Limit
•  Won’t be able to create an
architecture different from your
organization
•  I.e. mobile, GUI & database team
•  Three technical artifacts
Eberhard Wolff - @ewolff
Conway’s Law as an Enabler
•  Desired architecture =
project structure
•  Team for each Micro Service
•  Team should be responsible for
meaningful features
•  Ideal: Independent features
Eberhard Wolff - @ewolff
Each team can
build and
deploy features
independently!
Eberhard Wolff - @ewolff
Micro Services
must provide a
sensible set of
functionality
Eberhard Wolff - @ewolff
Conway’s Law &
Micro Service Size
•  Upper limit: What a (small) team
can handle
•  …and a meaningful set of features
•  Probably not too small
•  Lower limit: Depends on overhead /
technology
Eberhard Wolff - @ewolff
Micro Service = Micro?
•  Size doesn’t matter too much
•  Teams must be able to work
independently
•  Small enough for one team
•  Not too much overhead
Eberhard Wolff - @ewolff
Conway’s Law Product
Owner
Service
Feature
Service
Eberhard Wolff - @ewolff
Bad
architecture?


Still can’t be
avoided!
Eberhard Wolff - @ewolff
Conway’s Law Product
Owner
ServiceService
Feature
Product
Owner
Communication
Priority?
Slow
Eberhard Wolff - @ewolff
Conway’s Law
•  Software Interface =
Team Communication
•  Too much communication if you get
the architecture wrong.
•  Slows down the process
Collective
Code
Ownership
Eberhard Wolff - @ewolff
Conway’s Law Product
Owner
ServiceService
Feature
Product
Owner
Change
Review
Pull Request
Eberhard Wolff - @ewolff
Micro Service &
Collective Code Ownership
•  Team might change any service
•  Reviews can still be done
•  …or use Pull Requests
•  More devs can work on a services
•  Resilience against personnel turnover
•  Faster
Eberhard Wolff - @ewolff
Micro Service &
Collective Code Ownership
•  Team must understand bigger parts
of the code
•  Technology freedom?
Refactoring
Eberhard Wolff - @ewolff
Refactoring
ServiceService
Different libraries
Different language
Possibly a rewrite
Eberhard Wolff - @ewolff
Limited Technology Set
•  Easier Refactoring
•  Easier to follow standards
for deployment, monitoring etc
•  Easier to implement e.g. resilience
•  Netflix uses a lot of
Java
Eberhard Wolff - @ewolff
Refactoring
ServiceService
Library
Releases must be coordinated
Hard to implement really reusable code
Enforces same language / platform
Like: really, really hard
…and we want independent releases
Eberhard Wolff - @ewolff
Refactoring
ServiceService
Service
Remote communication
Unreliable network
Slower calls
Not great
But best option
Number of
Services
will
increase
Refactoring
across
Services
hard
Eberhard Wolff - @ewolff
Start BIG
•  Conway’s law: Upper size =
what a team can handle
•  Refactoring inside a service easier
•  …needed for agile environments
•  …where Micro Services are used
•  Number will increase anyway
•  Tear apart easier than join
Eberhard Wolff - @ewolff
If You Start Small…
•  You will get the architecture wrong
•  Functionality hard to move
•  Services not too large at the
beginning anyway
•  Fast deployment still possible
Systems can
not be
engineered
Systems
grow.
Guide
growth.
Sum Up
Eberhard Wolff - @ewolff
Faster Time-to-
Market
Micro Services Refactoring
Conway’s Law
Collective Code
Ownership
Start
BIG
or
Eberhard Wolff - @ewolff
Leseprobe:
http://bit.ly/CD-Buch
Eberhard Wolff - @ewolff
Leading Micro Services
Conference
Berlin, 2015-2-12/13
http://microxchg.io/
Eberhard Wolff - @ewolff
Thank You!

More Related Content

PDF
Micro Services - Neither Micro Nor Service
PDF
Micro Services - Small is Beautiful
PDF
Micro Service – The New Architecture Paradigm
PDF
Continuous Delivery and Micro Services - A Symbiosis
PDF
PDF
Legacy Sins
PDF
Software Architecture for DevOps and Continuous Delivery
PDF
Spring Boot
Micro Services - Neither Micro Nor Service
Micro Services - Small is Beautiful
Micro Service – The New Architecture Paradigm
Continuous Delivery and Micro Services - A Symbiosis
Legacy Sins
Software Architecture for DevOps and Continuous Delivery
Spring Boot

What's hot (20)

PDF
Microservice - All is Small, All is Well?
PDF
Java Architectures - a New Hope
PDF
ELK Stack
PDF
Java Application Servers Are Dead!
PDF
Spring Boot
PDF
High Availability and Scalability: Too Expensive! Architectures for Future E...
PPTX
IaC? VSTS to the rescue! Abbreviations explained
PDF
Developing Resilient Cloud Native Apps with Spring Cloud
PDF
Java Application Servers Are Dead! - Short Version
PPTX
Continous integration and delivery for single page applications
PDF
CI/CD and Asset Serving for Single Page Apps
PPTX
Understanding the CloudStack Release Process
PPTX
Developer day - AWS: Fast Environments = Fast Deployments
PPTX
I Don't Test Often ...
PPTX
JustLetMeCode-Final
PPTX
DevCon 2018 - 5 ways to use AWS with Alfresco
PPTX
Continuous Deployment to the cloud
PDF
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
PPTX
RavenDB 3.0 Keynote
PPTX
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Microservice - All is Small, All is Well?
Java Architectures - a New Hope
ELK Stack
Java Application Servers Are Dead!
Spring Boot
High Availability and Scalability: Too Expensive! Architectures for Future E...
IaC? VSTS to the rescue! Abbreviations explained
Developing Resilient Cloud Native Apps with Spring Cloud
Java Application Servers Are Dead! - Short Version
Continous integration and delivery for single page applications
CI/CD and Asset Serving for Single Page Apps
Understanding the CloudStack Release Process
Developer day - AWS: Fast Environments = Fast Deployments
I Don't Test Often ...
JustLetMeCode-Final
DevCon 2018 - 5 ways to use AWS with Alfresco
Continuous Deployment to the cloud
Practical Continuous Deployment - Atlassian - London AUG 18 Feb 2014
RavenDB 3.0 Keynote
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Ad

Similar to Micro Services - Smaller is Better? (20)

PDF
An overview of microservices
PPTX
Microservices why?
PDF
Microservices
PDF
Microservices Gone Wrong!
PDF
A Gentle introduction to microservices
PDF
DEVNET-1142 Decomposing Monolithic Applications to Microservices
PDF
Microservice architecture
PDF
Microservices: cosa sono e quando non usarli
PPTX
Yuriy Chapran - Building microservices.
PPTX
Microservices tech talk
PDF
2016.12.09 - Microservices and consequences - External - Validated
PPTX
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
PPTX
Are you ready for Microservices
PPTX
The 7 deadly sins of micro services
PDF
Monorepo Pattern - the solution or the problem?
PDF
Microservices: Architecture to Support Agile
PDF
The histories of microservices
PPT
Microservices lessons from trenches
PPTX
Introduction To Microservices
PDF
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
An overview of microservices
Microservices why?
Microservices
Microservices Gone Wrong!
A Gentle introduction to microservices
DEVNET-1142 Decomposing Monolithic Applications to Microservices
Microservice architecture
Microservices: cosa sono e quando non usarli
Yuriy Chapran - Building microservices.
Microservices tech talk
2016.12.09 - Microservices and consequences - External - Validated
Surviving as a Monolith in a Microservices World - by Blair Olynyk, Hyperwallet
Are you ready for Microservices
The 7 deadly sins of micro services
Monorepo Pattern - the solution or the problem?
Microservices: Architecture to Support Agile
The histories of microservices
Microservices lessons from trenches
Introduction To Microservices
AWS Innovate: Smaller IS Better – Exploiting Microservices on AWS, Craig Dickson
Ad

More from Eberhard Wolff (20)

PDF
Architectures and Alternatives
PDF
Beyond Microservices
PDF
The Frontiers of Continuous Delivery
PDF
Four Times Microservices - REST, Kubernetes, UI Integration, Async
PDF
Microservices - not just with Java
PDF
Deployment - Done Right!
PDF
Data Architecture not Just for Microservices
PDF
How to Split Your System into Microservices
PDF
Microservices and Self-contained System to Scale Agile
PDF
How Small Can Java Microservices Be?
PDF
Data Architecturen Not Just for Microservices
PDF
Microservices: Redundancy=Maintainability
PDF
Self-contained Systems: A Different Approach to Microservices
PDF
Microservices Technology Stack
PDF
Software Architecture for Innovation
PDF
Five (easy?) Steps Towards Continuous Delivery
PDF
Nanoservices and Microservices with Java
PDF
Microservices: Architecture to scale Agile
PDF
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
PDF
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?
Architectures and Alternatives
Beyond Microservices
The Frontiers of Continuous Delivery
Four Times Microservices - REST, Kubernetes, UI Integration, Async
Microservices - not just with Java
Deployment - Done Right!
Data Architecture not Just for Microservices
How to Split Your System into Microservices
Microservices and Self-contained System to Scale Agile
How Small Can Java Microservices Be?
Data Architecturen Not Just for Microservices
Microservices: Redundancy=Maintainability
Self-contained Systems: A Different Approach to Microservices
Microservices Technology Stack
Software Architecture for Innovation
Five (easy?) Steps Towards Continuous Delivery
Nanoservices and Microservices with Java
Microservices: Architecture to scale Agile
Microservices, DevOps, Continuous Delivery – More Than Three Buzzwords
Infrastructure for Continuous Delivery & Microservices: PaaS or Docker?

Recently uploaded (20)

PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Modernizing your data center with Dell and AMD
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Cloud computing and distributed systems.
Review of recent advances in non-invasive hemoglobin estimation
Spectral efficient network and resource selection model in 5G networks
NewMind AI Monthly Chronicles - July 2025
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
Dropbox Q2 2025 Financial Results & Investor Presentation
Modernizing your data center with Dell and AMD
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Advanced methodologies resolving dimensionality complications for autism neur...
Digital-Transformation-Roadmap-for-Companies.pptx
NewMind AI Weekly Chronicles - August'25 Week I
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Per capita expenditure prediction using model stacking based on satellite ima...
Cloud computing and distributed systems.

Micro Services - Smaller is Better?

  • 1. Micro Services Smaller is Better? Eberhard Wolff Freelance consultant & trainer http://ewolff.com
  • 2. Eberhard Wolff - @ewolff Who has seen a system that was too large?
  • 3. Eberhard Wolff - @ewolff Who has seen a system that was too small?
  • 4. Little programs are delightful to write in isolation, but the process of maintaining large-scale software is always miserable. Jaron Lanier
  • 6. Eberhard Wolff - @ewolff Micro Services: Definition •  Small •  Independent deployment units •  i.e. processes •  Any technology •  Any infrastructure Micro Service Server Micro Service Server
  • 7. Eberhard Wolff - @ewolff Components Collaborate Micro Service Micro Service Link Data Replication REST Messaging
  • 8. Eberhard Wolff - @ewolff Why Micro Services? Strong modularization Replaceability Small units Sustainable Development speed Continuous Delivery Deployment less risky Free Choice of technology
  • 9. Eberhard Wolff - @ewolff Micro Service
 =
 Micro?
  • 10. Eberhard Wolff - @ewolff 10-100LOC http://yobriefca.se/blog/ 2013/04/28/micro-service-architecture/ Smaller modules better
  • 11. Eberhard Wolff - @ewolff 10-100LOC http://yobriefca.se/blog/ 2013/04/28/micro-service-architecture/ Smaller modules better
  • 12. Eberhard Wolff - @ewolff Game of Life
  • 13. Eberhard Wolff - @ewolff life←{ ⍝ John Conway's "Game of Life".
 ↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵ ⍝ Expression for next generation.
 } Game of Life in one line of APL dyalog.com LOC is really a bad metric
  • 14. Eberhard Wolff - @ewolff Larger? •  Micro Services have an overhead •  Build & deployment pipeline •  Version control
  • 15. Eberhard Wolff - @ewolff 1st Law of Distributed Objects •  Don’t Distribute Your Objects! •  Too much remote communication & overhead •  Lesson learned from CORBA etc •  http://martinfowler.com/bliki/ FirstLaw.html
  • 16. Eberhard Wolff - @ewolff Request Response Processing Latency Round Trip: 0,2-0,5 ms = 600.000-1.500.000 instructions@3GHz
  • 17. Eberhard Wolff - @ewolff 1st Law of Distributed Objects & Micro Services •  Small Micro Services = lot of communication •  Violates the 1st Law •  Seems to work, though •  http://martinfowler.com/articles/ distributed-objects- microservices.html
  • 18. Eberhard Wolff - @ewolff Too small =
 too much communication
  • 19. Eberhard Wolff - @ewolffL
  • 20. Eberhard Wolff - @ewolff Again:
 Why Micro Services?
  • 21. Eberhard Wolff - @ewolff The main reason
  • 22. Eberhard Wolff - @ewolff Business relevant
  • 23. Eberhard Wolff - @ewolff How to scale agile? Implement more feature
  • 24. Eberhard Wolff - @ewolff Conways Law Architecture copies communication structures of the organization
  • 25. Eberhard Wolff - @ewolff Conway’s Law as a Limit •  Won’t be able to create an architecture different from your organization •  I.e. mobile, GUI & database team •  Three technical artifacts
  • 26. Eberhard Wolff - @ewolff Conway’s Law as an Enabler •  Desired architecture = project structure •  Team for each Micro Service •  Team should be responsible for meaningful features •  Ideal: Independent features
  • 27. Eberhard Wolff - @ewolff Each team can build and deploy features independently!
  • 28. Eberhard Wolff - @ewolff Micro Services must provide a sensible set of functionality
  • 29. Eberhard Wolff - @ewolff Conway’s Law & Micro Service Size •  Upper limit: What a (small) team can handle •  …and a meaningful set of features •  Probably not too small •  Lower limit: Depends on overhead / technology
  • 30. Eberhard Wolff - @ewolff Micro Service = Micro? •  Size doesn’t matter too much •  Teams must be able to work independently •  Small enough for one team •  Not too much overhead
  • 31. Eberhard Wolff - @ewolff Conway’s Law Product Owner Service Feature Service
  • 32. Eberhard Wolff - @ewolff Bad architecture?
 
Still can’t be avoided!
  • 33. Eberhard Wolff - @ewolff Conway’s Law Product Owner ServiceService Feature Product Owner Communication Priority? Slow
  • 34. Eberhard Wolff - @ewolff Conway’s Law •  Software Interface = Team Communication •  Too much communication if you get the architecture wrong. •  Slows down the process
  • 36. Eberhard Wolff - @ewolff Conway’s Law Product Owner ServiceService Feature Product Owner Change Review Pull Request
  • 37. Eberhard Wolff - @ewolff Micro Service & Collective Code Ownership •  Team might change any service •  Reviews can still be done •  …or use Pull Requests •  More devs can work on a services •  Resilience against personnel turnover •  Faster
  • 38. Eberhard Wolff - @ewolff Micro Service & Collective Code Ownership •  Team must understand bigger parts of the code •  Technology freedom?
  • 40. Eberhard Wolff - @ewolff Refactoring ServiceService Different libraries Different language Possibly a rewrite
  • 41. Eberhard Wolff - @ewolff Limited Technology Set •  Easier Refactoring •  Easier to follow standards for deployment, monitoring etc •  Easier to implement e.g. resilience •  Netflix uses a lot of Java
  • 42. Eberhard Wolff - @ewolff Refactoring ServiceService Library Releases must be coordinated Hard to implement really reusable code Enforces same language / platform Like: really, really hard …and we want independent releases
  • 43. Eberhard Wolff - @ewolff Refactoring ServiceService Service Remote communication Unreliable network Slower calls Not great But best option
  • 46. Eberhard Wolff - @ewolff Start BIG •  Conway’s law: Upper size = what a team can handle •  Refactoring inside a service easier •  …needed for agile environments •  …where Micro Services are used •  Number will increase anyway •  Tear apart easier than join
  • 47. Eberhard Wolff - @ewolff If You Start Small… •  You will get the architecture wrong •  Functionality hard to move •  Services not too large at the beginning anyway •  Fast deployment still possible
  • 52. Eberhard Wolff - @ewolff Faster Time-to- Market Micro Services Refactoring Conway’s Law Collective Code Ownership Start BIG or
  • 53. Eberhard Wolff - @ewolff Leseprobe: http://bit.ly/CD-Buch
  • 54. Eberhard Wolff - @ewolff Leading Micro Services Conference Berlin, 2015-2-12/13 http://microxchg.io/
  • 55. Eberhard Wolff - @ewolff Thank You!