SlideShare a Scribd company logo
1 of 33
Microservices
– The 7 Deadly Sins
IT event @ Morgan McKinley August 2016
CTO Wavebreak Media
MVP Microsoft Azure
@AIDANJCASEY
Agenda
• What are Microservices
• Benefit of a Microservices architecture
• The Seven Deadly Sins
• Questions & Wrap Up
• Small autonomous services that work together
• Focused on one business capability and doing it well
• Deploy independently
• Scale independently
• No centralised, shared database
Benefits
• Optimized for change
• Optimized for experimentation
• Encourages ownership & accountability within development
teams
• More resilience
• Forces you to deal with eventual consistency
• Increased productivity - smaller teams on smaller codebases
work faster
• Freedom to pick the right technology for each service
(multiple languages and frameworks)
Adopters
• Netflix
• eBay
• Amazon
• Gilt
• REA
• Twitter
• PayPal
• SoundCloud
• Hailo
• Uber
• Google
• Cloud Foundry and many many more…
Portal Practice
App
Third
Party
App
API Gateway
STS (OAuth) Contact (CRM) Provisioning User Mgt Features
Toggles
Doc Storage
Workflow
Tax Prep
Notification
Tax Lodgement
Business Event Digital Signing
ConversationLedger
Desktop
client
Sync
Service
Client
Portal
Ledger
Aggregator
Stat Reporting Log Aggregator
7 Deadly Sins..
Lust MmmmMmm shiney!
• Start small
• You need a great DevOps culture to make Microservices work
• Don't have too many variations between each tech stack
• Get current stay current
• Consider operations whenever you add new technology
• Create a stencil project / service template – this should be immediately
deployable and kept up to date
Gluttony MmmmMmm … free resources
the circuit breaker…
https://github.com/App-vNext/Polly
// break the circuit after the specified number of exceptions
// and keep circuit broken for the specified duration
var policy = Policy
.Handle<ServiceUnavailableException>()
.CircuitBreaker(2, TimeSpan.FromMinutes(1));
Policy.Execute((=>YourAPICall))
Greed
Need to make more..
• A microservices that do little more than expose a CRUD style interface
result in an anemic data models that won’t be reused
• Start bigger, when you feel that a section of one a services needs to be scaled
independently from the rest of the functionality, that's a good indicator of a
need to create a separate microservice.
• Appoint service owners / custodians for each service.
Conway’s Law
“Organizations which design
systems ... are constrained to
produce designs which are copies of
the communication structures of
these organizations”
— M. Conway 1967
Two Pizza rule = better productivity
I can’t do anything by
myself
Sloth
• 1 service per repo
• 1 pipeline per service
• Build once, deploy many times
• Version all API contracts
• Service locator
Wrath
Beware distributed
system !
Wrath
• Know what “normal” looks like for each microservice and the overall system
• Information Radiators & Dashboards
• Pass CorrelationIDs in all message headers and log things consistently
• Use synthetic transactions in production
• Realtime telemetry & dashboards
• Alerts when auto scaling happens & synthetic transactions fail
Envy
I’ll be deploying to
production in 2 weeks
time
• Embrace continuous delivery as an organisation
• Doing something all the time takes the pain out of it & makes you good at it
• Feature Switch everything
• Rethinking configuration – prefer convention over configuration
• Immutable Infrastructure
• Releasing a feature and turning it on are 2 separate things
• Every code change is backward compatible
• Blue Green Deployments
Blue-Green Deployment
Pride
I don’t write buggy code,
no need for automated
tests !
Unit
Service
UI
Faster, more isolated
Increased scope and slower
Pact – Consumer Driven Contract Test
• It forces a conversation between the consumer and the provider
• Pact tests are easy to run standalone as part of a CI build pipeline or on
anyone's dev machine
• Best part is you end up with a standalone CI pipeline for each service but
within this pipeline we get to verify all expectations of the consumers of the
service !
• Gives consumers a safety net - their tests are continually run as part of the
API providers CI pipeline
• Pact broker - gives a picture of all the API consumers & the API call graphs
E2E User Journey Tests
• pick a handful of key workflows across your application ( less than 10)
• Brittle and expensive to maintain so choose wisely
• Never let them break
• Don’t be afraid to throw them away and create new ones over time
Summary
• Lust –chasing shiney new technology & tools
• Gluttony - no circuit breakers to prevent cascading failures
• Greed – creating too many services with the wrong bounded contexts
• Sloth – creating a distributed monolith
• Wrath – ignoring the wrath of distributed systems
• Envy – your build and deploy process must be a joy to behold
• Pride – fooled into thinking you don’t need proper tests
Recommended Reading
https://microserviceweekly.com/

More Related Content

What's hot

Azure cloud for the web frontend developers
Azure cloud for the web frontend developersAzure cloud for the web frontend developers
Azure cloud for the web frontend developersMaxim Salnikov
 
Adopting containers and kubernetes in production
Adopting containers and kubernetes in productionAdopting containers and kubernetes in production
Adopting containers and kubernetes in productionTa Ching Chen
 
Packing It In: Images, Containers and Config Management
Packing It In: Images, Containers and Config ManagementPacking It In: Images, Containers and Config Management
Packing It In: Images, Containers and Config ManagementMichael Goetz
 
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedRebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedKacper Gunia
 
Bosh - Configuring Services
Bosh - Configuring ServicesBosh - Configuring Services
Bosh - Configuring ServicesAndrew Shafer
 
Run UI Automation Tests using Selenium Grid and Azure Container Service (AKS)
Run UI Automation Tests using Selenium Grid and Azure Container Service (AKS)Run UI Automation Tests using Selenium Grid and Azure Container Service (AKS)
Run UI Automation Tests using Selenium Grid and Azure Container Service (AKS)Sri Kanth
 
Azure and web sites hackaton deck
Azure and web sites hackaton deckAzure and web sites hackaton deck
Azure and web sites hackaton deckAlexey Bokov
 
Azure serverless architectures
Azure serverless architecturesAzure serverless architectures
Azure serverless architecturesBenoit Le Pichon
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesAtlassian
 
Serverless Architecture - introduction + AWS demo
Serverless Architecture - introduction + AWS demoServerless Architecture - introduction + AWS demo
Serverless Architecture - introduction + AWS demoJan van Zoggel
 
Containerization: The DevOps Revolution
Containerization: The DevOps Revolution Containerization: The DevOps Revolution
Containerization: The DevOps Revolution SoftServe
 
Session Slides from DEVintersection Europe
Session Slides from DEVintersection EuropeSession Slides from DEVintersection Europe
Session Slides from DEVintersection EuropeRick Van Rousselt
 
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...VMware Tanzu
 
Serverless in Azure with Functions
Serverless in Azure with FunctionsServerless in Azure with Functions
Serverless in Azure with FunctionsChristos Matskas
 
My session slides from unityConnect 2016 in Haarlem
My session slides from unityConnect 2016 in HaarlemMy session slides from unityConnect 2016 in Haarlem
My session slides from unityConnect 2016 in HaarlemRick Van Rousselt
 
Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes Christian Posta
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent Biret
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
Continuous Deployment with Containers
Continuous Deployment with ContainersContinuous Deployment with Containers
Continuous Deployment with ContainersDavid Papp
 
Microservices without servers
Microservices without serversMicroservices without servers
Microservices without servers99X Technology
 

What's hot (20)

Azure cloud for the web frontend developers
Azure cloud for the web frontend developersAzure cloud for the web frontend developers
Azure cloud for the web frontend developers
 
Adopting containers and kubernetes in production
Adopting containers and kubernetes in productionAdopting containers and kubernetes in production
Adopting containers and kubernetes in production
 
Packing It In: Images, Containers and Config Management
Packing It In: Images, Containers and Config ManagementPacking It In: Images, Containers and Config Management
Packing It In: Images, Containers and Config Management
 
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learnedRebuilding Legacy Apps with Domain-Driven Design - Lessons learned
Rebuilding Legacy Apps with Domain-Driven Design - Lessons learned
 
Bosh - Configuring Services
Bosh - Configuring ServicesBosh - Configuring Services
Bosh - Configuring Services
 
Run UI Automation Tests using Selenium Grid and Azure Container Service (AKS)
Run UI Automation Tests using Selenium Grid and Azure Container Service (AKS)Run UI Automation Tests using Selenium Grid and Azure Container Service (AKS)
Run UI Automation Tests using Selenium Grid and Azure Container Service (AKS)
 
Azure and web sites hackaton deck
Azure and web sites hackaton deckAzure and web sites hackaton deck
Azure and web sites hackaton deck
 
Azure serverless architectures
Azure serverless architecturesAzure serverless architectures
Azure serverless architectures
 
Connect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket PipelinesConnect + Docker + AWS = Bitbucket Pipelines
Connect + Docker + AWS = Bitbucket Pipelines
 
Serverless Architecture - introduction + AWS demo
Serverless Architecture - introduction + AWS demoServerless Architecture - introduction + AWS demo
Serverless Architecture - introduction + AWS demo
 
Containerization: The DevOps Revolution
Containerization: The DevOps Revolution Containerization: The DevOps Revolution
Containerization: The DevOps Revolution
 
Session Slides from DEVintersection Europe
Session Slides from DEVintersection EuropeSession Slides from DEVintersection Europe
Session Slides from DEVintersection Europe
 
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
 
Serverless in Azure with Functions
Serverless in Azure with FunctionsServerless in Azure with Functions
Serverless in Azure with Functions
 
My session slides from unityConnect 2016 in Haarlem
My session slides from unityConnect 2016 in HaarlemMy session slides from unityConnect 2016 in Haarlem
My session slides from unityConnect 2016 in Haarlem
 
Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes Microservices with Spring Cloud, Netflix OSS and Kubernetes
Microservices with Spring Cloud, Netflix OSS and Kubernetes
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Continuous Deployment with Containers
Continuous Deployment with ContainersContinuous Deployment with Containers
Continuous Deployment with Containers
 
Microservices without servers
Microservices without serversMicroservices without servers
Microservices without servers
 

Similar to The 7 deadly sins of micro services

Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutesAndrew Siemer
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To MicroservicesLalit Kale
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0Vinod Wilson
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5Richard Hudson
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumRick Hightower
 
API310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsAPI310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsYan Cui
 
DEVNET-1142 Decomposing Monolithic Applications to Microservices
DEVNET-1142	Decomposing Monolithic Applications to MicroservicesDEVNET-1142	Decomposing Monolithic Applications to Microservices
DEVNET-1142 Decomposing Monolithic Applications to MicroservicesCisco DevNet
 
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 PipelineDevOps.com
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice ArchitectureEngin Yoeyen
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitectureAshwini Kuntamukkala
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application DevelopmentWaveMaker, Inc.
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupMatt Ray
 
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...apidays
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYCChristian Posta
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesHector Tapia
 
DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--asmeerana605
 
Microservices and IBM Bluemix meetup presentation
Microservices and IBM Bluemix meetup presentationMicroservices and IBM Bluemix meetup presentation
Microservices and IBM Bluemix meetup presentationCarlos Ferreira
 

Similar to The 7 deadly sins of micro services (20)

Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
API’s and Micro Services 0.5
API’s and Micro Services 0.5API’s and Micro Services 0.5
API’s and Micro Services 0.5
 
Service Mesh Talk for CTO Forum
Service Mesh Talk for CTO ForumService Mesh Talk for CTO Forum
Service Mesh Talk for CTO Forum
 
API310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsAPI310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 steps
 
DEVNET-1142 Decomposing Monolithic Applications to Microservices
DEVNET-1142	Decomposing Monolithic Applications to MicroservicesDEVNET-1142	Decomposing Monolithic Applications to Microservices
DEVNET-1142 Decomposing Monolithic Applications to Microservices
 
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
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Pros & Cons of Microservices Architecture
Pros & Cons of Microservices ArchitecturePros & Cons of Microservices Architecture
Pros & Cons of Microservices Architecture
 
Disruptive Trends in Application Development
Disruptive Trends in Application DevelopmentDisruptive Trends in Application Development
Disruptive Trends in Application Development
 
Automating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native MeetupAutomating Applications with Habitat - Sydney Cloud Native Meetup
Automating Applications with Habitat - Sydney Cloud Native Meetup
 
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...
apidays LIVE Jakarta - Building an Event-Driven Architecture by Harin Honesty...
 
Microservices Journey NYC
Microservices Journey NYCMicroservices Journey NYC
Microservices Journey NYC
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServices
 
DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--
 
Microservices and IBM Bluemix meetup presentation
Microservices and IBM Bluemix meetup presentationMicroservices and IBM Bluemix meetup presentation
Microservices and IBM Bluemix meetup presentation
 

More from Aidan Casey

The Agony and the Ecstasy of being Agile when the Schedule is Not
The Agony and the Ecstasy of being Agile when the Schedule is NotThe Agony and the Ecstasy of being Agile when the Schedule is Not
The Agony and the Ecstasy of being Agile when the Schedule is NotAidan Casey
 
Rise of the Machines - AI in the Agile World
Rise of the Machines - AI in the Agile WorldRise of the Machines - AI in the Agile World
Rise of the Machines - AI in the Agile WorldAidan Casey
 
Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve successOrganisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve successAidan Casey
 
Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success Aidan Casey
 
Agile in the City London - creating a sense of purpose in agile teams
Agile in the City London - creating a sense of purpose in agile teamsAgile in the City London - creating a sense of purpose in agile teams
Agile in the City London - creating a sense of purpose in agile teamsAidan Casey
 
Creating a sense of purpose in agile teams
Creating a sense of purpose in agile teamsCreating a sense of purpose in agile teams
Creating a sense of purpose in agile teamsAidan Casey
 
Evolutionary architecture guiding principles
Evolutionary architecture guiding principlesEvolutionary architecture guiding principles
Evolutionary architecture guiding principlesAidan Casey
 
Building mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesBuilding mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesAidan Casey
 
Cloud arena accelerate your mobile development
Cloud arena   accelerate your mobile developmentCloud arena   accelerate your mobile development
Cloud arena accelerate your mobile developmentAidan Casey
 
A lap around AWS
A lap around AWS A lap around AWS
A lap around AWS Aidan Casey
 
Building node.js applications on windows azure
Building node.js applications on windows azureBuilding node.js applications on windows azure
Building node.js applications on windows azureAidan Casey
 
Myob beyond patents, practical ways to protect your software ip
Myob    beyond patents, practical ways to protect your software ipMyob    beyond patents, practical ways to protect your software ip
Myob beyond patents, practical ways to protect your software ipAidan Casey
 

More from Aidan Casey (12)

The Agony and the Ecstasy of being Agile when the Schedule is Not
The Agony and the Ecstasy of being Agile when the Schedule is NotThe Agony and the Ecstasy of being Agile when the Schedule is Not
The Agony and the Ecstasy of being Agile when the Schedule is Not
 
Rise of the Machines - AI in the Agile World
Rise of the Machines - AI in the Agile WorldRise of the Machines - AI in the Agile World
Rise of the Machines - AI in the Agile World
 
Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve successOrganisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success
 
Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success Organisations must celebrate failure to achieve success
Organisations must celebrate failure to achieve success
 
Agile in the City London - creating a sense of purpose in agile teams
Agile in the City London - creating a sense of purpose in agile teamsAgile in the City London - creating a sense of purpose in agile teams
Agile in the City London - creating a sense of purpose in agile teams
 
Creating a sense of purpose in agile teams
Creating a sense of purpose in agile teamsCreating a sense of purpose in agile teams
Creating a sense of purpose in agile teams
 
Evolutionary architecture guiding principles
Evolutionary architecture guiding principlesEvolutionary architecture guiding principles
Evolutionary architecture guiding principles
 
Building mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesBuilding mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile services
 
Cloud arena accelerate your mobile development
Cloud arena   accelerate your mobile developmentCloud arena   accelerate your mobile development
Cloud arena accelerate your mobile development
 
A lap around AWS
A lap around AWS A lap around AWS
A lap around AWS
 
Building node.js applications on windows azure
Building node.js applications on windows azureBuilding node.js applications on windows azure
Building node.js applications on windows azure
 
Myob beyond patents, practical ways to protect your software ip
Myob    beyond patents, practical ways to protect your software ipMyob    beyond patents, practical ways to protect your software ip
Myob beyond patents, practical ways to protect your software ip
 

Recently uploaded

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 

Recently uploaded (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 

The 7 deadly sins of micro services

  • 1. Microservices – The 7 Deadly Sins IT event @ Morgan McKinley August 2016
  • 2. CTO Wavebreak Media MVP Microsoft Azure @AIDANJCASEY
  • 3. Agenda • What are Microservices • Benefit of a Microservices architecture • The Seven Deadly Sins • Questions & Wrap Up
  • 4.
  • 5. • Small autonomous services that work together • Focused on one business capability and doing it well • Deploy independently • Scale independently • No centralised, shared database
  • 6. Benefits • Optimized for change • Optimized for experimentation • Encourages ownership & accountability within development teams • More resilience • Forces you to deal with eventual consistency • Increased productivity - smaller teams on smaller codebases work faster • Freedom to pick the right technology for each service (multiple languages and frameworks)
  • 7. Adopters • Netflix • eBay • Amazon • Gilt • REA • Twitter • PayPal • SoundCloud • Hailo • Uber • Google • Cloud Foundry and many many more…
  • 8. Portal Practice App Third Party App API Gateway STS (OAuth) Contact (CRM) Provisioning User Mgt Features Toggles Doc Storage Workflow Tax Prep Notification Tax Lodgement Business Event Digital Signing ConversationLedger Desktop client Sync Service Client Portal Ledger Aggregator Stat Reporting Log Aggregator
  • 11. • Start small • You need a great DevOps culture to make Microservices work • Don't have too many variations between each tech stack • Get current stay current • Consider operations whenever you add new technology • Create a stencil project / service template – this should be immediately deployable and kept up to date
  • 12. Gluttony MmmmMmm … free resources
  • 14. https://github.com/App-vNext/Polly // break the circuit after the specified number of exceptions // and keep circuit broken for the specified duration var policy = Policy .Handle<ServiceUnavailableException>() .CircuitBreaker(2, TimeSpan.FromMinutes(1)); Policy.Execute((=>YourAPICall))
  • 16. • A microservices that do little more than expose a CRUD style interface result in an anemic data models that won’t be reused • Start bigger, when you feel that a section of one a services needs to be scaled independently from the rest of the functionality, that's a good indicator of a need to create a separate microservice. • Appoint service owners / custodians for each service.
  • 17. Conway’s Law “Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” — M. Conway 1967
  • 18. Two Pizza rule = better productivity
  • 19. I can’t do anything by myself Sloth
  • 20. • 1 service per repo • 1 pipeline per service • Build once, deploy many times • Version all API contracts • Service locator
  • 22. • Know what “normal” looks like for each microservice and the overall system • Information Radiators & Dashboards • Pass CorrelationIDs in all message headers and log things consistently • Use synthetic transactions in production • Realtime telemetry & dashboards • Alerts when auto scaling happens & synthetic transactions fail
  • 23.
  • 24. Envy I’ll be deploying to production in 2 weeks time
  • 25. • Embrace continuous delivery as an organisation • Doing something all the time takes the pain out of it & makes you good at it • Feature Switch everything • Rethinking configuration – prefer convention over configuration • Immutable Infrastructure • Releasing a feature and turning it on are 2 separate things • Every code change is backward compatible • Blue Green Deployments
  • 27. Pride I don’t write buggy code, no need for automated tests !
  • 29. Pact – Consumer Driven Contract Test
  • 30. • It forces a conversation between the consumer and the provider • Pact tests are easy to run standalone as part of a CI build pipeline or on anyone's dev machine • Best part is you end up with a standalone CI pipeline for each service but within this pipeline we get to verify all expectations of the consumers of the service ! • Gives consumers a safety net - their tests are continually run as part of the API providers CI pipeline • Pact broker - gives a picture of all the API consumers & the API call graphs
  • 31. E2E User Journey Tests • pick a handful of key workflows across your application ( less than 10) • Brittle and expensive to maintain so choose wisely • Never let them break • Don’t be afraid to throw them away and create new ones over time
  • 32. Summary • Lust –chasing shiney new technology & tools • Gluttony - no circuit breakers to prevent cascading failures • Greed – creating too many services with the wrong bounded contexts • Sloth – creating a distributed monolith • Wrath – ignoring the wrath of distributed systems • Envy – your build and deploy process must be a joy to behold • Pride – fooled into thinking you don’t need proper tests

Editor's Notes

  1. MSA is not a cure-all and its not the right approach for every project
  2. Circuit breaker is used to detect failures and encapsulates logic of preventing a failure to reoccur Prevent cascading failures for upstream consumers in a distributed system Fail fast During normal operation, a circuit breaker is in the Closed state: Exceptions or calls exceeding the configured callTimeout increment a failure counter Successes reset the failure count to zero When the failure counter reaches a maxFailures count, the breaker is tripped into Open state While in Open state: All calls fail-fast with a CircuitBreakerOpenException After the configured resetTimeout, the circuit breaker enters a Half-Open state Performance - While it's safe to say that the benefits outweigh the consequences, implementing Circuit Breaker will negatively affect the performance.
  3.  Therefore: Make sure the organization is compatible with the product architecture“ The structure of your organisation will be reflected in the structure of your code "If you have four groups working on a compiler, you'll get a 4-pass compiler“ Amazon – 2 pizza rule
  4. Netflix and Amazon for example structure themselves around multiple small teams, each one with responsibility for a small part of the overall system. Two-Pizza Team Rule Works These independent teams can own the whole lifecycle of the services they create, affording them a greater degree of autonomy than is possible for larger teams with more monolithic codebases
  5. Avoid tight coupling between services
  6. Move From Continuous Integration to Continuous Delivery Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently.