SlideShare a Scribd company logo
PRACTICAL 
CONSIDERATIONS 
FOR MICRO SERVICES 
Sam Newman 
NDC London, December 2014 
1
14 PRACTICAL TIPS 
FOR MICROSERVICES 
Sam Newman 
NDC London, December 2014 
2
YOU WON’T BELIEVE 
WHAT THEY DO WITH 
MICROSERVICES IN 
THIS TALK! 
Sam Newman 
NDC London, December 2014 
3
SEE WHAT JENNIFER 
LAWRENCE THINKS 
ABOUT DISTRIBUTED 
SYSTEMS! 
Sam Newman 
NDC London, December 2014 
4
Customer 
Service 
Accounts 
Returns 
Invoicing 
Shipping 
Inventory 
#ndclondon @samnewman
Customer 
Service 
Small 
Accounts 
Returns 
Invoicing 
Shipping 
Inventory 
#ndclondon @samnewman
Customer 
Service 
Small 
Modelled Around Business Domain 
Accounts 
Returns 
Invoicing 
Shipping 
Inventory 
#ndclondon @samnewman
Customer 
Service 
Small 
Modelled Around Business Domain 
Accounts 
Returns 
Invoicing 
Shipping 
Inventory 
Autonomous 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
V1 
#ndclondon @samnewman
V2 
#ndclondon @samnewman
Go 
Java 
NodeJS 
Ruby 
#ndclondon @samnewman
Go 
NodeJS 
Ruby 
Clojure! 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
Where To Standardise? 
#ndclondon @samnewman
#©n d2cl0on1d3o nElectronic Arts Inc. @samnewman
#ndclondon @samnewman
Interfaces 
#ndclondon @samnewman
Interfaces 
Monitoring 
#ndclondon @samnewman
Interfaces 
Monitoring 
Deployment & Testing 
#ndclondon @samnewman
Architectural Safety 
#ndclondon @samnewman
#ndclondon @samnewman
Free For All 
#ndclondon @samnewman
Standardisation 
Free For All 
#ndclondon @samnewman
Standardisation 
TIP 1 / 14: Standardise in the gaps between services - 
be flexible about what happens inside the boxes 
Free For All 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman https://www.flickr.com/photos/garrymsmith/6108841070
Autonomy 
Communication 
#ndclondon @samnewman
Team Ownership 
#ndclondon @samnewman
Team Ownership 
??? 
#ndclondon @samnewman
Trusted Committer / 
Roving Custodian 
#ndclondon @samnewman
Trusted Committer / 
Roving Custodian 
??? 
#ndclondon @samnewman
Trusted Committer / 
Roving Custodian 
??? 
#ndclondon @samnewman
Trusted Committer / 
Roving Custodian 
??? 
#ndclondon @samnewman
Trusted Committer / 
Roving Custodian 
??? 
#ndclondon @samnewman
Trusted Committer / 
Roving Custodian 
??? 
#ndclondon @samnewman
Trusted Committer / 
Roving Custodian 
TIP 2 / 14: Have a cle?a?r ?custodian model! 
#ndclondon @samnewman
Interfaces 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
Coupling Is Bad 
#ndclondon @samnewman
Integration Styles 
An Evolutionary View 
Data Oriented Procedure 
Oriented 
Document 
Oriented 
Resource 
Oriented 
#ndclondon @samnewman
Integration Styles 
An Evolutionary View 
Data Oriented Procedure 
Oriented 
Document 
Oriented 
Resource 
Oriented 
#ndclondon @samnewman
Integration Styles 
An Evolutionary View 
TIP 3 / 14: Be careful of RPC-mechanisms/shared 
serialisation protocols to avoid coupling 
Data Oriented Procedure 
Oriented 
Document 
Oriented 
Resource 
Oriented 
#ndclondon @samnewman
Database 
#ndclondon @samnewman
Database 
#ndclondon @samnewman
Database 
#ndclondon @samnewman
Database 
#ndclondon @samnewman
Database 
#ndclondon @samnewman
Database 
#ndclondon @samnewman
Database 
#ndclondon @samnewman
Database Database 
#ndclondon @samnewman
Database Database 
#ndclondon @samnewman
TIP 4 / 14: Separate the databases before separating services 
Database Database 
#ndclondon @samnewman
The Customer Is Always Right 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
TIP 5 / 14: Adopt a consumer first approach 
#ndclondon @samnewman
Monitoring 
#ndclondon @samnewman
#ndclondon @samnewman
http://www.flickr.com/photos/kalexanderson/5421517469/ 
#ndclondon @samnewman
http://www.flickr.com/photos/kalexanderson/5421517469/ 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
??? 
#ndclondon @samnewman
You have to get *much* 
better at monitoring 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
You are not a badass if you 
use an SSH Multiplexer 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
Response Time 
Response Time 
Response Time 
#ndclondon @samnewman
Response Time 
Response Time 
Response Time 
#ndclondon @samnewman
Response Time 
Response Time 
Response Time 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
TIP 6 / 14: Capture metrics, and logs, for each node, 
and aggregate them to get a rolled up picture 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
TIP 7 / 14: Use synthetic transactions to test 
production systems 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
ID: 123 
#ndclondon @samnewman
ID: 123 
ID: 123 
ID: 123 
#ndclondon @samnewman
ID: 123 
TIP 8 / 14: Use correlation IDs to track down nasty bugs 
ID: 123 
ID: 123 
#ndclondon @samnewman
Deployment 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
! 
#ndclondon @samnewman
! 
! 
#ndclondon @samnewman
! 
! 
! 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
TIP 9 / 14: Abstract out underlying platform 
differences to provide a uniform deployment 
mechanism 
#ndclondon @samnewman
Shipping 
Inventory 
Customer 
Service 
Accounts 
Returns 
Invoicing 
#ndclondon @samnewman
Customer 
Service 
Accounts 
Returns 
Invoicing 
Shipping 
Inventory 
#ndclondon @samnewman
Customer 
Service 
Accounts 
Returns 
Invoicing 
Shipping 
Inventory 
#ndclondon @samnewman
Inventory Accounts 
Mountebank 
http://www.mbtest.org 
#ndclondon @samnewman
Inventory 
Accounts 
Stub 
Mountebank 
http://www.mbtest.org 
#ndclondon @samnewman
Shipping 
Inventory 
Customer 
Service 
Accounts 
Returns 
Invoicing 
#ndclondon @samnewman
Shipping 
Inventory 
Customer 
Service 
Accounts 
Returns 
Invoicing 
#ndclondon @samnewman
Shipping 
Inventory 
Customer 
Service 
Accounts 
Returns 
Invoicing 
#ndclondon @samnewman
Shipping 
Inventory 
Customer 
Service 
Accounts 
Returns 
Invoicing 
#ndclondon @samnewman
Shipping 
Inventory 
Customer 
Service 
Accounts 
Returns 
Invoicing 
#ndclondon @samnewman
#ndclondon @samnewman
Browsers 
#ndclondon @samnewman
Timing 
Browsers 
#ndclondon @samnewman
Provisioning of Environments 
Timing 
Browsers 
#ndclondon @samnewman
Networks 
Provisioning of Environments 
Timing 
Browsers 
#ndclondon @samnewman
Deployment 
Networks 
Provisioning of Environments 
Timing 
Browsers 
#ndclondon @samnewman
Deployment 
Networks 
Provisioning of Environments 
Timing 
Browsers Diagnosis 
#ndclondon @samnewman
CONSUMER-DRIVEN CONTRACTS 
Shipping Inventory 
#ndclondon @samnewman
CONSUMER-DRIVEN CONTRACTS 
Shipping Inventory 
Expectations 
#ndclondon @samnewman
CONSUMER-DRIVEN CONTRACTS 
Shipping Inventory 
Expectations 
#ndclondon @samnewman
CONSUMER-DRIVEN CONTRACTS 
Shipping Inventory 
Expectations 
Prod 
#ndclondon @samnewman
CONSUMER-DRIVEN CONTRACTS 
Shipping Inventory 
Expectations 
Prod 
#ndclondon @samnewman
#ndclondon @samnewman
https://github.com/realestate-com-au/pact 
#ndclondon @samnewman
TIP 10 / 14: Consumer Driven Tests to catch breaking changes 
https://github.com/realestate-com-au/pact 
#ndclondon @samnewman
Pending… Prod
Pending… Prod
Pending… Prod
Pending… Prod
Pending… Prod
Pending… Prod 
TIP 11 / 14: Don’t let changes build up - release as 
soon as you can, and preferably one at a time!
Architectural Safety 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
http://www.flickr.com/photos/louish/5611657857/ 
#ndclondon @samnewman
Connection Pool 
#ndclondon @samnewman
Connection Pool 
#ndclondon @samnewman
Connection Pool 
#ndclondon @samnewman
Connection Pool 
#ndclondon @samnewman
Connection 
Pool 
Connection 
Pool 
#ndclondon @samnewman
Connection 
Pool 
Connection 
Pool 
#ndclondon @samnewman
Connection 
Pool 
Connection 
Pool 
#ndclondon @samnewman
Connection 
Pool 
Connection 
Pool 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
TIP 12 / 14: Use timeouts, circuit breakers and bulk-heads 
to avoid cascading failure 
#ndclondon @samnewman
Special Service Behaviour 
#ndclondon @samnewman
Integration 
Special Service Behaviour 
#ndclondon @samnewman
Integration 
Special Service Behaviour 
Downstream 
#ndclondon @samnewman
Integration 
Special Service Behaviour 
Downstream 
Metrics 
#ndclondon @samnewman
Integration 
Special Service Behaviour 
Downstream 
Metrics 
#ndclondon @samnewman
Integration 
Special Service Behaviour 
Downstream 
Metrics 
#ndclondon @samnewman
Integration 
Special Service Behaviour 
Metrics TIP 13 / 14: Consider Service Templates to make it 
easy to do the right thing! 
Downstream 
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
#ndclondon @samnewman
Choice 
Opportunity 
#ndclondon @samnewman
Choice 
Opportunity 
Complexity 
#ndclondon @samnewman
Choice 
Opportunity 
Monitoring Complexity 
Deployment 
Safety 
Integration 
#ndclondon @samnewman
Choice 
Opportunity 
TIP 14 / 14: Find your own balance 
Monitoring Complexity 
Deployment 
Safety 
Integration 
#ndclondon @samnewman
62 
Building 
Microservices 
DESIGNING FINE-GRAINED SYSTEMS 
Sam Newman
Designing For 
Rapid Release 
500 West Madison 
500 West Madison 
#ndclondon @samnewman
500 West Madison 
500 West Madison 
From Macro To Micro 
Designing For 
Rapid Release 
#ndclondon @samnewman
500 West Madison 
500 West Madison 
From Macro To Micro 
Designing For 
Rapid Release 
http://lanyrd.com/profile/samnewman/ 
#ndclondon @samnewman
THANKS! 
Any questions: 
@samnewman 
snewman@thoughtworks.com

More Related Content

PDF
Practical microservices - javazone 2014
PDF
AppSec & Microservices - Velocity 2016
PDF
Testing & deploying microservices - XP Days Ukraine 2014
PDF
Deploying and Scaling Microservices
PDF
Practical microservices - YOW 2013
PDF
Principles of microservices XP Days Ukraine
PDF
Feature Branches And Toggles In A Post-GitHub World
PDF
AppSec And Microservices
Practical microservices - javazone 2014
AppSec & Microservices - Velocity 2016
Testing & deploying microservices - XP Days Ukraine 2014
Deploying and Scaling Microservices
Practical microservices - YOW 2013
Principles of microservices XP Days Ukraine
Feature Branches And Toggles In A Post-GitHub World
AppSec And Microservices

What's hot (20)

PDF
Principles of Microservices - NDC 2014
PDF
From macro to micro goto
PDF
It's a trap!
PDF
Confusion In The Land Of The Serverless
PDF
Confusion In The Land Of The Serverless - 90min Version
PDF
Testing & deploying Microservices GeeCon 2014
PDF
BETA - Securing microservices
PDF
Hiding The Lead: Coupling, cohesion and microservices
PDF
What Is This Cloud Native Thing Anyway?
PDF
AppSec and Microservices
PPTX
Ramp up your Mobile Content Slideshow
PDF
THE UX OF DATA - VISUALIZATION RESPONSIVE
KEY
2012: Putting your robots to work: security automation at Twitter
PDF
Google Tag Manager Crash Course | MnSummit
PDF
The UX of DATA: Responsive Datenvisualisierung mit jQuery
PDF
Performance and UX
PDF
SEO for Angular - BrightonSEO 2018
PDF
Automate, Create Tools, & Test Ideas Quickly with Google Apps Script
PDF
Can Google properly crawl and index JavaScript? SEO Experiments - Results and...
PDF
HOW TO INCREASE YOUR TRAFFIC 5X WITH THIS ONE SEO METHOD
Principles of Microservices - NDC 2014
From macro to micro goto
It's a trap!
Confusion In The Land Of The Serverless
Confusion In The Land Of The Serverless - 90min Version
Testing & deploying Microservices GeeCon 2014
BETA - Securing microservices
Hiding The Lead: Coupling, cohesion and microservices
What Is This Cloud Native Thing Anyway?
AppSec and Microservices
Ramp up your Mobile Content Slideshow
THE UX OF DATA - VISUALIZATION RESPONSIVE
2012: Putting your robots to work: security automation at Twitter
Google Tag Manager Crash Course | MnSummit
The UX of DATA: Responsive Datenvisualisierung mit jQuery
Performance and UX
SEO for Angular - BrightonSEO 2018
Automate, Create Tools, & Test Ideas Quickly with Google Apps Script
Can Google properly crawl and index JavaScript? SEO Experiments - Results and...
HOW TO INCREASE YOUR TRAFFIC 5X WITH THIS ONE SEO METHOD
Ad

Viewers also liked (20)

PPT
Custodian*24 Monitor Sales Presentation
PPTX
Mutual funds
PPT
Intro To Factoring
PPT
PDF
3 Best Practices for eDiscovery Custodian Interviews
 
PPTX
Mutual fund
ODP
Operating Systems As a Product
PPTX
Operating system
PPTX
vidddu A small presentation on,
PPT
Money 3.0
PPT
Factoring Trinomials
PPTX
Financial intermederies
PPTX
Mutual fund ppt
PPT
Factoring & forfaiting
PPT
Chapter 22_Insurance Companies and Pension Funds
PPT
Factoring & Forfaiting
PPTX
Factoring and Forfaiting
PPTX
Wealth Management
PPT
Financial intermediation
Custodian*24 Monitor Sales Presentation
Mutual funds
Intro To Factoring
3 Best Practices for eDiscovery Custodian Interviews
 
Mutual fund
Operating Systems As a Product
Operating system
vidddu A small presentation on,
Money 3.0
Factoring Trinomials
Financial intermederies
Mutual fund ppt
Factoring & forfaiting
Chapter 22_Insurance Companies and Pension Funds
Factoring & Forfaiting
Factoring and Forfaiting
Wealth Management
Financial intermediation
Ad

Similar to Practical microservices - NDC 2014 (20)

PDF
Keynote: Sam Newman, Building Microservices | The Tyranny Of Data | Kafka Sum...
PDF
INTERFACE by apidays - Microservices, APIs, and the Cost Of Change by Sam Newman
PDF
Deploying & operating microservices
PPTX
Truly Responsive Design Means Aligning to Business and User Goals
PPTX
MoMoMcr Android Wear
PPTX
Harnessing Domain Driven Design
PDF
It's a long Way to the Top if you Wanna Rock 'n' Roll: Main Drivers & How Con...
PDF
Digital Copycats: Escaping Plato's Cave (SXSW17)
PDF
Analytics That Drive The Value Of Content
PPTX
SDN Meet up Glasgow | 2018
PDF
Lessons learned scrum mastering distributed teams - Agile Lyon 2019
PDF
Fall 22: "From Kubernetes to PaaS to... err, what's next"
PPTX
Beyond Digital - IAS Workshop 2011
PPTX
Beyond Digital - IA Summit 2010 Workshop
PDF
Sam Newman_Designing For Habitability.pdf
PDF
Setting AMP for Success at #BrightonSEO
PPT
Digital Marketing Tips: Twitter, Instagram, Pinterest, Video - SEMdmv Meetup
PPTX
Setting The Agenda For Tomorrow's PR
PPTX
Salesforce Commerce Cloud & SEO - 5 Lessons.pptx
PDF
Društveno odgovorno poslovanje, Dragana Đermanović
Keynote: Sam Newman, Building Microservices | The Tyranny Of Data | Kafka Sum...
INTERFACE by apidays - Microservices, APIs, and the Cost Of Change by Sam Newman
Deploying & operating microservices
Truly Responsive Design Means Aligning to Business and User Goals
MoMoMcr Android Wear
Harnessing Domain Driven Design
It's a long Way to the Top if you Wanna Rock 'n' Roll: Main Drivers & How Con...
Digital Copycats: Escaping Plato's Cave (SXSW17)
Analytics That Drive The Value Of Content
SDN Meet up Glasgow | 2018
Lessons learned scrum mastering distributed teams - Agile Lyon 2019
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Beyond Digital - IAS Workshop 2011
Beyond Digital - IA Summit 2010 Workshop
Sam Newman_Designing For Habitability.pdf
Setting AMP for Success at #BrightonSEO
Digital Marketing Tips: Twitter, Instagram, Pinterest, Video - SEMdmv Meetup
Setting The Agenda For Tomorrow's PR
Salesforce Commerce Cloud & SEO - 5 Lessons.pptx
Društveno odgovorno poslovanje, Dragana Đermanović

More from Sam Newman (6)

PDF
Rip It Up - The Microservice Organisation
PDF
Principles of microservices ndc oslo
PDF
Principles of microservices velocity
PDF
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
PDF
Designing for rapid release goto 2012
PDF
Surfing the event stream
Rip It Up - The Microservice Organisation
Principles of microservices ndc oslo
Principles of microservices velocity
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
Designing for rapid release goto 2012
Surfing the event stream

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
KodekX | Application Modernization Development
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
cuic standard and advanced reporting.pdf
PPTX
Cloud computing and distributed systems.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Big Data Technologies - Introduction.pptx
PPT
Teaching material agriculture food technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Empathic Computing: Creating Shared Understanding
KodekX | Application Modernization Development
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Digital-Transformation-Roadmap-for-Companies.pptx
cuic standard and advanced reporting.pdf
Cloud computing and distributed systems.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Understanding_Digital_Forensics_Presentation.pptx
Spectroscopy.pptx food analysis technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation_ Review paper, used for researhc scholars
Big Data Technologies - Introduction.pptx
Teaching material agriculture food technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Machine learning based COVID-19 study performance prediction
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
sap open course for s4hana steps from ECC to s4
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

Practical microservices - NDC 2014