SlideShare a Scribd company logo
by Bert Ertman
Those who stand for nothing,
fall for anything - Alexander
Hamilton
Microservices

Gone Wrong!
@BertErtman
• Fellow, Director of Technology
Outreach at Luminis
• Background in all things Java
since 1995
• Java Champion, JavaOne
Rockstar Speaker, and a Duke’s
Choice Award Winner
• Involved in architecting and
implementing dozens of large
scale systems over the past 20
years or so
• Book author for O’Reilly, speaker
at many conferences
Cheaper
Better
Faster
Stronger{ Most problems in
Computer Science have
already been solved in
the 60/70s
Say what?
The term "Microservice Architecture" has sprung up over the last few
years to describe a particular way of designing software applications
as suites of independently deployable services. While there is no
precise definition of this architectural style, there are certain common
characteristics around organization around business capability,
automated deployment, intelligence in the endpoints, and
decentralized control of languages and data.
Source: http://martinfowler.com/articles/microservices.html
Where did it come from?
• Microservices-style architectures are a response to adjust software
architecture to an ever-evolving spectrum. It addresses Business
Agility through technology:
• Usage of cloud-based infrastructure and services
• DevOps
• The need to scale up the number of people/teams
• Client-side revolution both in technologies and devices
Microservices
are about
Business Agility
Modularization
• Divide and Conquer
• Break down complex
structures into smaller
chunks that can be solved
individually
• Cohesion over coupling
How small is micro?
• Small as in “single responsibility”
• Each service only does one thing, and one thing well
• Not about lines of code, but “small enough to fit in your head”
• Maybe even small enough that you can throw them away – Rewrite
over Maintain
Are Microservices a better SOA?
Services
• Provide a public, versioned contract for a component
• Have their own life cycle, so they can be 

separately deployed
• Hide all implementation details
Comparing with SOA
• SOA: dumb endpoints, smart routes
• Endpoint is merely a remote procedure call
• Routing done through ESBs providing location transparency and
transformations
Comparing with SOA
• Microservices: Dumb pipes, smart endpoints
• Pipes: usually REST via HTTP(S)
• No intelligence in the route, or at least no more than simple
(persistent) queues
SOA is about Reuse
Microservices are
NOT about Reuse
What can we learn from Amazon/Netflix?
• They are not optimized for (saving) costs or overly structured
• Focus on opportunities ahead instead of cost savings
• Focus on speed to market (first mover advantage)
• Organized like nature to facilitate insane growth
• Cloud is their strategic advantage!
Why shouldn’t we pretend to be Amazon/Netflix?
• Most normal companies ARE looking for cost savings and
restructuring
• Most normal companies don’t have the scale of Amazon/Netflix
• Most normal companies see cloud still as a way to save costs
• If you pretend you are…you get all of their infrastructural problems
for free
Companies that have successfully adopted
Microservices have…
• …determined that they are an IT company which happen to offer
financial/healthcare/trading/shopping… services
• …embraced Cloud (technologies) as a strategic advantage
• …established solid CI/CD practices, and deploy to production
multiple times per day
Microservices require DevOps
*correction*
Microservices require
BizDevOpsSec
Conway’s Law
“Organizations which design systems ... are 

constrained to produce designs which are copies of 

the communication structures of these organizations"
—M. Conway 1968
What it actually means…
• Make sure the organization is compatible with the software architecture
• If your (microservices) architecture does not reflect the way your
organization is structured, don’t even bother going that way!
• It also means that your teams should be cross-functional. Everyone you
need to build, maintain and get it into production must be part of the
team
This is hard!
SOAAdoptionModel
So what should you do?
• Transform the organization along with the landscape
• Microservices boundaries must be drawn around organizational
capabilities
• Alternatively, they could be drawn around particular development
teams / features
There is no single way to do
microservices right!
There are many ways to do
microservices wrong!
Many wrong ways to do
microservices there are!
Struggles
• Data Strategy
• Orchestration vs Choreography
• Re-use Traps
• Test Strategy
• Dealing with Failure
Resilience
• The ability of a system to handle unexpected situations
• without the user noticing it (best case)
• with graceful degradation of service (worst case)
Anti-fragility
Isolation
Loose-coupling
Latency
Isolation
• Avoid cascading failures by
applying bulkheads:
• In shipping: partition the load into
sections allowing you to seal them
off if there is a breach
• In software: isolate services to
prevent cascading failures to
cripple the entire system
Web Application
thread
pool
•
•
•
•
Service
bulkhead
(size=3)
Loose-coupling
• Reduce coupling between failure units through:
• asynchronous communication
• location transparency
• relaxed temporal constraints
• idempotency
• self-containment
Latency control
• Detect and handle non-timely responses to avoid cascading failures
through:
• Timeouts
• CircuitBreaker
• Fan-out & quickest reply
• Bounded queues
• Shed load
InitiatingService
CircuitBreaker
TargetService
try 1
try 2
try 3
try 83
exception
exception
exception
exception
try 1
try 2
try 3
exception
exception
exception
circuit is CLOSED
circuit trips
and is OPEN
circuit is
HALF-OPEN
Anti-fragility
• Try to make code less breakable by correctly applying:
- Encapsulation (OOP)
- Open/Closed principle
- Test Driven Development (TDD)
summary
Microservices are NOT the logical
next step for enterprise architecture
in every organization
Microservices
• ..are suites of independently deployable services, organized around business
capabilities
• ..are small enough so they can ‘fit in your head’ and you can throw them away
• ..are all about promoting modularity at the system level
• ..are thriving on continuous deployment, DevOps, and infrastructure automation
• ..are a legitimate way of achieving business agility in some organizations
• ..will cause nightmares forever, when applied for the wrong reasons!
Microservices Gone
Wrong!
Thank you!
@BertErtman

More Related Content

What's hot

Cloud computing options
Cloud computing optionsCloud computing options
Cloud computing options
botsplash.com
 
Hybrid Cloud Orchestration: How SuperChoice Does It
Hybrid Cloud Orchestration: How SuperChoice Does ItHybrid Cloud Orchestration: How SuperChoice Does It
Hybrid Cloud Orchestration: How SuperChoice Does It
RightScale
 
ITI012En-Cloud computing
ITI012En-Cloud computingITI012En-Cloud computing
ITI012En-Cloud computing
Huibert Aalbers
 
Strategic Approaches to AWS Enterprise Application Migration - Technical 201
Strategic Approaches to AWS Enterprise Application Migration - Technical 201Strategic Approaches to AWS Enterprise Application Migration - Technical 201
Strategic Approaches to AWS Enterprise Application Migration - Technical 201
Amazon Web Services
 
Microservices & Streaming Data
Microservices & Streaming DataMicroservices & Streaming Data
Microservices & Streaming Data
Leon Mergen
 
Kentucky gis
Kentucky gisKentucky gis
Kentucky gisedsai
 
How to Use RightScale CMP to Manage Cloud: In-Depth Demo
How to Use RightScale CMP to Manage Cloud: In-Depth DemoHow to Use RightScale CMP to Manage Cloud: In-Depth Demo
How to Use RightScale CMP to Manage Cloud: In-Depth Demo
RightScale
 
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
Amazon Web Services
 
estrat AWS Cloud Breakfast
estrat AWS Cloud Breakfastestrat AWS Cloud Breakfast
estrat AWS Cloud Breakfast
Paul Cooper
 
TechDays 2017 - Going Serverless (2/2): Hands-on with Azure Event Grid
TechDays 2017 - Going Serverless (2/2): Hands-on with Azure Event GridTechDays 2017 - Going Serverless (2/2): Hands-on with Azure Event Grid
TechDays 2017 - Going Serverless (2/2): Hands-on with Azure Event Grid
Rick van den Bosch
 
Dude, Where's my Server?
Dude, Where's my Server?Dude, Where's my Server?
Dude, Where's my Server?
Rick van den Bosch
 
AWS Fallbeispiele zur Digitalen Transformation - AWS Cloud Web Day für Mittel...
AWS Fallbeispiele zur Digitalen Transformation - AWS Cloud Web Day für Mittel...AWS Fallbeispiele zur Digitalen Transformation - AWS Cloud Web Day für Mittel...
AWS Fallbeispiele zur Digitalen Transformation - AWS Cloud Web Day für Mittel...
AWS Germany
 
Scalable Application Development on AWS
Scalable Application Development on AWSScalable Application Development on AWS
Scalable Application Development on AWS
Mikalai Alimenkou
 
Amazon WorkSpaces for Education
Amazon WorkSpaces for EducationAmazon WorkSpaces for Education
Amazon WorkSpaces for Education
Amazon Web Services
 
Techique, Methodology, Culture
Techique, Methodology, CultureTechique, Methodology, Culture
Techique, Methodology, Culture
Benny Bauer
 
The business case for the cloud
The business case for the cloudThe business case for the cloud
The business case for the cloud
Justin Glatz
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
RightScale
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015
Randy Shoup
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
Talal Alsubaie
 
AWS Summit 2013 | India - Running Lean with Optimized Architecture, Pieter Kemps
AWS Summit 2013 | India - Running Lean with Optimized Architecture, Pieter KempsAWS Summit 2013 | India - Running Lean with Optimized Architecture, Pieter Kemps
AWS Summit 2013 | India - Running Lean with Optimized Architecture, Pieter Kemps
Amazon Web Services
 

What's hot (20)

Cloud computing options
Cloud computing optionsCloud computing options
Cloud computing options
 
Hybrid Cloud Orchestration: How SuperChoice Does It
Hybrid Cloud Orchestration: How SuperChoice Does ItHybrid Cloud Orchestration: How SuperChoice Does It
Hybrid Cloud Orchestration: How SuperChoice Does It
 
ITI012En-Cloud computing
ITI012En-Cloud computingITI012En-Cloud computing
ITI012En-Cloud computing
 
Strategic Approaches to AWS Enterprise Application Migration - Technical 201
Strategic Approaches to AWS Enterprise Application Migration - Technical 201Strategic Approaches to AWS Enterprise Application Migration - Technical 201
Strategic Approaches to AWS Enterprise Application Migration - Technical 201
 
Microservices & Streaming Data
Microservices & Streaming DataMicroservices & Streaming Data
Microservices & Streaming Data
 
Kentucky gis
Kentucky gisKentucky gis
Kentucky gis
 
How to Use RightScale CMP to Manage Cloud: In-Depth Demo
How to Use RightScale CMP to Manage Cloud: In-Depth DemoHow to Use RightScale CMP to Manage Cloud: In-Depth Demo
How to Use RightScale CMP to Manage Cloud: In-Depth Demo
 
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
AWS Customer Presentation - Thomson Reuters - Delivering on the Promise of Di...
 
estrat AWS Cloud Breakfast
estrat AWS Cloud Breakfastestrat AWS Cloud Breakfast
estrat AWS Cloud Breakfast
 
TechDays 2017 - Going Serverless (2/2): Hands-on with Azure Event Grid
TechDays 2017 - Going Serverless (2/2): Hands-on with Azure Event GridTechDays 2017 - Going Serverless (2/2): Hands-on with Azure Event Grid
TechDays 2017 - Going Serverless (2/2): Hands-on with Azure Event Grid
 
Dude, Where's my Server?
Dude, Where's my Server?Dude, Where's my Server?
Dude, Where's my Server?
 
AWS Fallbeispiele zur Digitalen Transformation - AWS Cloud Web Day für Mittel...
AWS Fallbeispiele zur Digitalen Transformation - AWS Cloud Web Day für Mittel...AWS Fallbeispiele zur Digitalen Transformation - AWS Cloud Web Day für Mittel...
AWS Fallbeispiele zur Digitalen Transformation - AWS Cloud Web Day für Mittel...
 
Scalable Application Development on AWS
Scalable Application Development on AWSScalable Application Development on AWS
Scalable Application Development on AWS
 
Amazon WorkSpaces for Education
Amazon WorkSpaces for EducationAmazon WorkSpaces for Education
Amazon WorkSpaces for Education
 
Techique, Methodology, Culture
Techique, Methodology, CultureTechique, Methodology, Culture
Techique, Methodology, Culture
 
The business case for the cloud
The business case for the cloudThe business case for the cloud
The business case for the cloud
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
 
From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015From the Monolith to Microservices - CraftConf 2015
From the Monolith to Microservices - CraftConf 2015
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
AWS Summit 2013 | India - Running Lean with Optimized Architecture, Pieter Kemps
AWS Summit 2013 | India - Running Lean with Optimized Architecture, Pieter KempsAWS Summit 2013 | India - Running Lean with Optimized Architecture, Pieter Kemps
AWS Summit 2013 | India - Running Lean with Optimized Architecture, Pieter Kemps
 

Similar to Microservices Gone Wrong!

What are microservices
What are microservicesWhat are microservices
What are microservices
Krunalkumar Rajdip
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesAngelos Kapsimanis
 
Microservices - stress-free and without increased heart attack risk
Microservices - stress-free and without increased heart attack riskMicroservices - stress-free and without increased heart attack risk
Microservices - stress-free and without increased heart attack risk
Uwe Friedrichsen
 
Microservices
MicroservicesMicroservices
Microservices
Ankireddy Polu
 
Microservices - stress-free and without increased heart-attack risk - Uwe Fri...
Microservices - stress-free and without increased heart-attack risk - Uwe Fri...Microservices - stress-free and without increased heart-attack risk - Uwe Fri...
Microservices - stress-free and without increased heart-attack risk - Uwe Fri...
distributed matters
 
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft Microservices
Chase Aucoin
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
Ajay Kumar Uppal
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
Capgemini
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
Vinod Wilson
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
Randy Shoup
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
Jim (张建军) Zhang
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
Andrew Siemer
 
Introduction-to-Cloud-Computing.pdf
Introduction-to-Cloud-Computing.pdfIntroduction-to-Cloud-Computing.pdf
Introduction-to-Cloud-Computing.pdf
prajwalalaladinni
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
AFAS Software
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
Srinivasan Nanduri
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
Araf Karsh Hamid
 
Microservices for Mortals by Bert Ertman at Codemotion Dubai
 Microservices for Mortals by Bert Ertman at Codemotion Dubai Microservices for Mortals by Bert Ertman at Codemotion Dubai
Microservices for Mortals by Bert Ertman at Codemotion Dubai
Codemotion Dubai
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
ramesh_sharma
 
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 Microservices
MahmoudZidan41
 

Similar to Microservices Gone Wrong! (20)

What are microservices
What are microservicesWhat are microservices
What are microservices
 
Software Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based ArchitecturesSoftware Architectures, Week 3 - Microservice-based Architectures
Software Architectures, Week 3 - Microservice-based Architectures
 
Microservices - stress-free and without increased heart attack risk
Microservices - stress-free and without increased heart attack riskMicroservices - stress-free and without increased heart attack risk
Microservices - stress-free and without increased heart attack risk
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservices - stress-free and without increased heart-attack risk - Uwe Fri...
Microservices - stress-free and without increased heart-attack risk - Uwe Fri...Microservices - stress-free and without increased heart-attack risk - Uwe Fri...
Microservices - stress-free and without increased heart-attack risk - Uwe Fri...
 
Microsoft Microservices
Microsoft MicroservicesMicrosoft Microservices
Microsoft Microservices
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
CWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der walCWIN17 Utrecht / cg u services - frank van der wal
CWIN17 Utrecht / cg u services - frank van der wal
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
Concurrency at Scale: Evolution to Micro-Services
Concurrency at Scale:  Evolution to Micro-ServicesConcurrency at Scale:  Evolution to Micro-Services
Concurrency at Scale: Evolution to Micro-Services
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
Introduction-to-Cloud-Computing.pdf
Introduction-to-Cloud-Computing.pdfIntroduction-to-Cloud-Computing.pdf
Introduction-to-Cloud-Computing.pdf
 
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
Alex Thissen (Xpirit) - Een verschuiving in architectuur: op weg naar microse...
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Microservices for Mortals by Bert Ertman at Codemotion Dubai
 Microservices for Mortals by Bert Ertman at Codemotion Dubai Microservices for Mortals by Bert Ertman at Codemotion Dubai
Microservices for Mortals by Bert Ertman at Codemotion Dubai
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
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
 

More from Bert Ertman

Microservices for Mortals
Microservices for MortalsMicroservices for Mortals
Microservices for Mortals
Bert Ertman
 
VJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud AgeVJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud Age
Bert Ertman
 
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]Bert Ertman
 
Building Modular Cloud Applications in Java - Lessons Learned
Building Modular Cloud Applications in Java - Lessons LearnedBuilding Modular Cloud Applications in Java - Lessons Learned
Building Modular Cloud Applications in Java - Lessons Learned
Bert Ertman
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the Cloud
Bert Ertman
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
Bert Ertman
 

More from Bert Ertman (6)

Microservices for Mortals
Microservices for MortalsMicroservices for Mortals
Microservices for Mortals
 
VJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud AgeVJUG - Building Modular Java Applications in the Cloud Age
VJUG - Building Modular Java Applications in the Cloud Age
 
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
Migrating from Spring Applications to Java EE 6 [CHINESE VERSION]
 
Building Modular Cloud Applications in Java - Lessons Learned
Building Modular Cloud Applications in Java - Lessons LearnedBuilding Modular Cloud Applications in Java - Lessons Learned
Building Modular Cloud Applications in Java - Lessons Learned
 
Modular Java EE in the Cloud
Modular Java EE in the CloudModular Java EE in the Cloud
Modular Java EE in the Cloud
 
JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6JavaOne 2011: Migrating Spring Applications to Java EE 6
JavaOne 2011: Migrating Spring Applications to Java EE 6
 

Recently uploaded

Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
Peter Caitens
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 

Recently uploaded (20)

Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Advanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should KnowAdvanced Flow Concepts Every Developer Should Know
Advanced Flow Concepts Every Developer Should Know
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 

Microservices Gone Wrong!

  • 1. by Bert Ertman Those who stand for nothing, fall for anything - Alexander Hamilton Microservices
 Gone Wrong! @BertErtman
  • 2. • Fellow, Director of Technology Outreach at Luminis • Background in all things Java since 1995 • Java Champion, JavaOne Rockstar Speaker, and a Duke’s Choice Award Winner • Involved in architecting and implementing dozens of large scale systems over the past 20 years or so • Book author for O’Reilly, speaker at many conferences
  • 3. Cheaper Better Faster Stronger{ Most problems in Computer Science have already been solved in the 60/70s
  • 4.
  • 5. Say what? The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are certain common characteristics around organization around business capability, automated deployment, intelligence in the endpoints, and decentralized control of languages and data. Source: http://martinfowler.com/articles/microservices.html
  • 6. Where did it come from? • Microservices-style architectures are a response to adjust software architecture to an ever-evolving spectrum. It addresses Business Agility through technology: • Usage of cloud-based infrastructure and services • DevOps • The need to scale up the number of people/teams • Client-side revolution both in technologies and devices
  • 8. Modularization • Divide and Conquer • Break down complex structures into smaller chunks that can be solved individually • Cohesion over coupling
  • 9. How small is micro? • Small as in “single responsibility” • Each service only does one thing, and one thing well • Not about lines of code, but “small enough to fit in your head” • Maybe even small enough that you can throw them away – Rewrite over Maintain
  • 10. Are Microservices a better SOA?
  • 11. Services • Provide a public, versioned contract for a component • Have their own life cycle, so they can be 
 separately deployed • Hide all implementation details
  • 12. Comparing with SOA • SOA: dumb endpoints, smart routes • Endpoint is merely a remote procedure call • Routing done through ESBs providing location transparency and transformations
  • 13. Comparing with SOA • Microservices: Dumb pipes, smart endpoints • Pipes: usually REST via HTTP(S) • No intelligence in the route, or at least no more than simple (persistent) queues
  • 14. SOA is about Reuse Microservices are NOT about Reuse
  • 15. What can we learn from Amazon/Netflix? • They are not optimized for (saving) costs or overly structured • Focus on opportunities ahead instead of cost savings • Focus on speed to market (first mover advantage) • Organized like nature to facilitate insane growth • Cloud is their strategic advantage!
  • 16. Why shouldn’t we pretend to be Amazon/Netflix? • Most normal companies ARE looking for cost savings and restructuring • Most normal companies don’t have the scale of Amazon/Netflix • Most normal companies see cloud still as a way to save costs • If you pretend you are…you get all of their infrastructural problems for free
  • 17. Companies that have successfully adopted Microservices have… • …determined that they are an IT company which happen to offer financial/healthcare/trading/shopping… services • …embraced Cloud (technologies) as a strategic advantage • …established solid CI/CD practices, and deploy to production multiple times per day
  • 21. Conway’s Law “Organizations which design systems ... are 
 constrained to produce designs which are copies of 
 the communication structures of these organizations" —M. Conway 1968
  • 22. What it actually means… • Make sure the organization is compatible with the software architecture • If your (microservices) architecture does not reflect the way your organization is structured, don’t even bother going that way! • It also means that your teams should be cross-functional. Everyone you need to build, maintain and get it into production must be part of the team
  • 25. So what should you do? • Transform the organization along with the landscape • Microservices boundaries must be drawn around organizational capabilities • Alternatively, they could be drawn around particular development teams / features
  • 26. There is no single way to do microservices right!
  • 27. There are many ways to do microservices wrong!
  • 28. Many wrong ways to do microservices there are!
  • 29. Struggles • Data Strategy • Orchestration vs Choreography • Re-use Traps • Test Strategy • Dealing with Failure
  • 30. Resilience • The ability of a system to handle unexpected situations • without the user noticing it (best case) • with graceful degradation of service (worst case)
  • 32. Isolation • Avoid cascading failures by applying bulkheads: • In shipping: partition the load into sections allowing you to seal them off if there is a breach • In software: isolate services to prevent cascading failures to cripple the entire system Web Application thread pool • • • • Service bulkhead (size=3)
  • 33. Loose-coupling • Reduce coupling between failure units through: • asynchronous communication • location transparency • relaxed temporal constraints • idempotency • self-containment
  • 34. Latency control • Detect and handle non-timely responses to avoid cascading failures through: • Timeouts • CircuitBreaker • Fan-out & quickest reply • Bounded queues • Shed load InitiatingService CircuitBreaker TargetService try 1 try 2 try 3 try 83 exception exception exception exception try 1 try 2 try 3 exception exception exception circuit is CLOSED circuit trips and is OPEN circuit is HALF-OPEN
  • 35. Anti-fragility • Try to make code less breakable by correctly applying: - Encapsulation (OOP) - Open/Closed principle - Test Driven Development (TDD)
  • 37. Microservices are NOT the logical next step for enterprise architecture in every organization
  • 38. Microservices • ..are suites of independently deployable services, organized around business capabilities • ..are small enough so they can ‘fit in your head’ and you can throw them away • ..are all about promoting modularity at the system level • ..are thriving on continuous deployment, DevOps, and infrastructure automation • ..are a legitimate way of achieving business agility in some organizations • ..will cause nightmares forever, when applied for the wrong reasons!