SlideShare a Scribd company logo
Microservices: 
lessons from the trenches 
http://tiny.cc/microservices-lessons 
@MehdiKhalili
Mehdi Khalili 
@MehdiKhalili
http://giphy.com/gifs/parkour-tJLFLygAbaxYk
http://giphy.com/gifs/fail-parkour-dZeSENj3pXT6o
Microservices is 
awesome
Microservices is 
challenging
agenda 
• Introduction 
• Benefits 
• Challenges and tips 
• Resources 
• Questions
Introduction
Monolith
Monolith 
one 
repo
Monolith 
one 
language
Monolith 
one 
database
Monolith 
one 
deployment
Microservices
Microservices 
one 
repo 
per service
Microservices 
one 
language 
per service
Microservices 
one 
persistence engine 
per service
Microservices 
one 
data store 
per service
Microservices 
one 
deployment 
per service
Benefits 
AKA the cool parts!
Scalability
Decentralized 
Data Management
Loose Coupling
Fault Tolerance
Scalable Development
Lower 
Cognitive Load
Technical 
Diversification
Autonomous Teams
Continuous Delivery
Evolutionary Design
http://giphy.com/gifs/win-parkour-12GGmxlQU22fxS
http://giphy.com/gifs/parkour-hardcore-SdtFpqUnHtlbq
http://giphy.com/gifs/fail-parkour-jCi66sK0E770s
Challenges
Fault Tolerance
30 services with 99.9% SLA 
= 432 mins 
= 21.6 hours
99.9% SLA 
30 services 
one day of downtime a month
tightly coupled services
Netflix: 
assumed broken components
design for failure
circuit breaker pattern
circuit breaker
http://martinfowler.com/bliki/images/circuitBreaker/state.png
tightly coupled services
loosely coupled services
contain the failure
fallback 
and 
graceful degradation
https://github.com/Netflix/Hystrix
Hangfire 
hangfire.io
be proactive 
about failure
monitoring endpoints
synthetic monitoring
extensive logging
troubleshooting
correlation id
log aggregation
Gif-y break 
http://www.buzzfeed.com/richardhjames/are-these-the-funniest-gifs-of-all-time
http://www.buzzfeed.com/richardhjames/are-these-the-funniest-gifs-of-all-time
http://www.buzzfeed.com/richardhjames/are-these-the-funniest-gifs-of-all-time
http://www.buzzfeed.com/richardhjames/are-these-the-funniest-gifs-of-all-time
http://www.buzzfeed.com/richardhjames/are-these-the-funniest-gifs-of-all-time
http://giphy.com/gifs/fail-parkour-movement-7SqLFyxYHal6o
http://giphy.com/gifs/fail-parkour-2BuleA8z0C4uY
Decentralized Data Management
Werner Vogels: 
"No direct database access is 
allowed from outside the service, 
and there’s no data sharing 
among the services." 
http://queue.acm.org/detail.cfm?id=1142065
don’t take 
inter-database dependency
you will lose 
loose coupling
you will lose 
tech diversification
that includes BI too!
use aggregator services 
for cross-cutting logic
don’t use 
distributed transactions
CAP theorem 
http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
eventual consistency
compensating actions
Loose Coupling
consumer 
provider 
consumer
loose coupling could lead to 
violation of contract
runtime failure
consumer driven contracts 
consumer 
provider 
consumer 
contract 
contract
pact 
https://github.com/realestate-com-au/pact
pactNet 
https://github.com/SEEK-Jobs/pact-net
consumer driven contracts 
consumer 
provider 
consumer 
mock contract 
mock 
contract 
<- DSL -> 
<- DSL ->
consumer 
provider 
consumer 
service libraries 
service lib 
service lib
you need the big picture
don’t draw diagrams
use logging for 
populating the big picture
correlation id 
plus 
transaction code
document your services
swagger.io 
http://petstore.swagger.wordnik.com/
swagger and curies for 
self documenting services
"_links": { 
"curies": [ 
{ 
"name": "doc", 
"href": "http://domain/docs/{rel}” 
} 
] 
}
Continuous Delivery
Netflix: 
” you code it, you'll deploy it 
and you'll be on pager-duty.”
DevOps culture
test 
automation
deployment 
automation
infrastructure 
automation
Size Matters
It’s microservices; 
not nanoservices
Arnon Rotem-Gal-Oz: 
“A nanoservice is a service whose 
overhead outweighs its utility.”
nanoservice 
kill me now 
monolith 
Yaaaay! 
Size 
pain
organized around 
Business Capabilities
Ian Cartwright: 
“There should be business and 
architecture isomorphism”
The Culture
“Our release process has 43 
steps”
“We need a DevOps team”
“Test automation might work for 
others but our system is different.”
“We need to stop obsessing 
about quality and focus on 
getting this out soon.”
Conway’s Law: 
“Organizations which design 
systems are constrained to produce 
systems which are copies of the 
communication structures of these 
organizations.”
monolithic apps thrive 
at monolithic organizations
microservices thrive 
at agile organizations
fix your organization first
Wrap up
Microservices is 
awesome
Microservices is 
NOT a silver bullet
apply it to the extent 
where benefits 
outweigh the overheads
takeaway 
Culture, culture, culture!
takeaway 
Size matters
takeaway 
Fault Tolerance
Resources
Thanks 
Q&A 
@MehdiKhalili

More Related Content

Similar to Microservices: lessons from the trenches

The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
DevOps.com
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
Araf Karsh Hamid
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!
Ken Owens
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architecture
Huxing Zhang
 
Microservices
MicroservicesMicroservices
Microservices
NewsCred Dhaka
 
From Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical DebtFrom Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical Debt
TechWell
 
Media streaming architecture Introduction
Media streaming architecture IntroductionMedia streaming architecture Introduction
Media streaming architecture Introduction
DAEBUM LEE
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
Alexander Arda
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Boaz Ziniman
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Araf Karsh Hamid
 
agile microservices @scaibo
agile microservices @scaiboagile microservices @scaibo
agile microservices @scaibo
Ciro Donato Caiazzo
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
Markus Eisele
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
Kim Clark
 
Everything you want to know about microservices
Everything you want to know about microservicesEverything you want to know about microservices
Everything you want to know about microservices
Youness Lasmak
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
Jamie (Taka) Wang
 
Real-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoTReal-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoT
All Things Open
 
Microservices - when, why and how incontrodevops.it
Microservices  - when, why and how incontrodevops.itMicroservices  - when, why and how incontrodevops.it
Microservices - when, why and how incontrodevops.it
Giuseppe Lavagetto
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
Ugo Landini
 
From Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical DebtFrom Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical Debt
David Litvak Bruno
 

Similar to Microservices: lessons from the trenches (20)

The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architecture
 
Microservices
MicroservicesMicroservices
Microservices
 
From Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical DebtFrom Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical Debt
 
Media streaming architecture Introduction
Media streaming architecture IntroductionMedia streaming architecture Introduction
Media streaming architecture Introduction
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
 
Microservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL MeetupMicroservices and Serverless for Mega Startups - DevOps IL Meetup
Microservices and Serverless for Mega Startups - DevOps IL Meetup
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
agile microservices @scaibo
agile microservices @scaiboagile microservices @scaibo
agile microservices @scaibo
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
Everything you want to know about microservices
Everything you want to know about microservicesEverything you want to know about microservices
Everything you want to know about microservices
 
20141210 - Microservice Container
20141210 - Microservice Container20141210 - Microservice Container
20141210 - Microservice Container
 
Real-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoTReal-World, Open Source, End-to-End JavaScript in IoT
Real-World, Open Source, End-to-End JavaScript in IoT
 
Microservices - when, why and how incontrodevops.it
Microservices  - when, why and how incontrodevops.itMicroservices  - when, why and how incontrodevops.it
Microservices - when, why and how incontrodevops.it
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
From Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical DebtFrom Monoliths to Services: Grafually paying your Technical Debt
From Monoliths to Services: Grafually paying your Technical Debt
 

Recently uploaded

Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
dhavalvaghelanectarb
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
Softradix Technologies
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
Luigi Fugaro
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
Anand Bagmar
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
michniczscribd
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
confluent
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
jrodriguezq3110
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
Jhone kinadey
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
vaishalijagtap12
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 

Recently uploaded (20)

Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
Streamlining End-to-End Testing Automation
Streamlining End-to-End Testing AutomationStreamlining End-to-End Testing Automation
Streamlining End-to-End Testing Automation
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Building API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructureBuilding API data products on top of your real-time data infrastructure
Building API data products on top of your real-time data infrastructure
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
 
Boost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management AppsBoost Your Savings with These Money Management Apps
Boost Your Savings with These Money Management Apps
 
42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert42 Ways to Generate Real Estate Leads - Sellxpert
42 Ways to Generate Real Estate Leads - Sellxpert
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 

Microservices: lessons from the trenches

Editor's Notes

  1. We see something awesome and we get really excited about it and think I want to be like that. I want to do that
  2. One repo One programming language One database One deployment
  3. One repo One programming language One database One deployment
  4. One repo One programming language One database One deployment
  5. One repo One programming language One database One deployment
  6. One repo One programming language One database One deployment
  7. Each service has One repo One programming language One data store And one deployment
  8. Each service has One repo One programming language One data store And one deployment
  9. Each service has One repo One programming language One data store And one deployment
  10. Each service has One repo One programming language One data store And one deployment
  11. Each service has One repo One programming language One data store And one deployment
  12. Each service has One repo One programming language One data store And one deployment
  13. Scale the bits that require scale.
  14. Encapsulate data with the services No locks =&amp;gt; Scalability Ease of maintenance: 4000 sps and 1000 tables!
  15. allows services and consumers to evolve independently of each other. reimplement a service as long as from outside it looks and behaves the same
  16. It&amp;apos;s not all or nothing unlike monolith
  17. Monolith is one repo not as many merge conflicts not as much consistency force/requirement
  18. Less code =&amp;gt; easier to understand =&amp;gt; faster to run =&amp;gt; easier to maintain
  19. Eliminates any long-term commitment to a technology stack. Use right tool, standards and stack for every service and change it whenever you like.
  20. from scoping out the functionality, to architecting it, to building it, and operating it
  21. Each service can be deployed independently of other services - easier to deploy new versions of services frequently. Less to release each time =&amp;gt; CD =&amp;gt; all the benefits of CD
  22. Smaller services are easier to change and evolve and that facilitates experimentation Create a new microservice to experiment with an idea in isolation of the rest of the system. If it flies, keep it. If it doesn&amp;apos;t, kill it.
  23. This actually shows one of the bigger risks with microservices: when it hurts, it really hurts!!
  24. Akamai NetStorage
  25. Assume everything your system talks to is broken and write it so it can cope!
  26. when one of your dependencies stops responding, you need to stop calling it for a little while.
  27. circuit breaker
  28. Fire &amp; forget Pub/sub Contain the failure
  29. Hitting a different URL Caching Returning a canned response (null)
  30. circuit breaker with fallbacks and graceful degradation monitoring
  31. Guaranteed fire &amp; forget background processing
  32. Don&amp;apos;t wait for it to fail before you fix it
  33. to expose the error count, response times, up time, transaction per second
  34. simulate an action or path that a customer or end-user would take. continuously monitor functionality, availability, and response time measures
  35. Helps with troubleshooting and also with health monitoring
  36. We were getting exception on an endpoint because it was missing a param Where did the traffic came in from?
  37. you’ll lose most of microservices benefits
  38. We changed a stored procedure’s param and it broke BI
  39. In a monolithic app you have transactions You will have slower transactions, and might create system wide locking!
  40. We were introducing soft deletes and we didn’t know what would be impacted
  41. Pact: DSL, generates mock and plays back the request for the provider
  42. Consumer codes against a mock and provider complies with contracts Unit testing
  43. circuit breaker Fallback graceful degradation caching
  44. so when you want to change the behavior of something you know what will be impacted
  45. Extensive logging Correlation id Transaction code Log aggregation
  46. Extensive logging Correlation id Transaction code Log aggregation
  47. It will be resisted by operations and change management Resistance by ops
  48. And you should have a bounded context representing each capability keep to your bounded context
  49. A business person should be able to look at a high level map of the architecture and see the business represented there and similarly as technologists we should be able to look at the business and see the architecture represented there.
  50. The microservices culture
  51. Explain what’s wrong with this
  52. Not organizations doing agile; but agile organization
  53. Micro management Long release process Hard to sell unit testing