SlideShare a Scribd company logo
1 of 20
The Six Obstacles of Moving to
Microservices
Moisés Macero
ROME - APRIL 13/14 2018
Intro
Who am I?
•Software Developer / Architect
•From Málaga, Based in Amsterdam
•Book & Blog Author (ThePracticalDeveloper.com)
•Love traveling and hiking
…and made a lot of mistakes with Microservices
The six obstacles
•The Book Reading Cult
•The Never-Decoupled-Enough Story
•The Common Patterns Phobia
•The Buzzwords Syndrome
•The Agile Trap
•The Conway's Law Hackers
The Book Reading Cult (I)
MICROSERVICES
ADVANTAGES OF
LOOSE COUPLING
WE MUST DECOUPLE
STUFFTHE EXPERT’S BOOK
The Book Reading Cult
•How to deal with it
• READ BOOKS. Put the concepts into practice
…using your business case.
• Be a Critical Reader.
• Do Continuous Improvements. Don’t feel attached to
code.
• Keep your “against-the-book” items visible
• to solve them as soon as possible if you need them.
Invoices
Service
Emailing
Service
Users Service
The Never-Decoupled-Enough Story (II)
Contracts
Service
The Never-Decoupled-Enough Story
•How to deal with it
• Don’t make a drama of having (a few) sync calls
• Create a Microservices Map, keep it updated and
visible.
• OK-ish?
• No-Go? Why Microservices?
The Common Patterns Phobia (III)
Freedom of choice
A typical monolith
Java
Spring MySQL
REST
Microservice 2
Scala
PostgreSQL
GraphQL
Microservice 1
Spring
Boot
MariaDB
REST
Microservice 3
Node.js
Neo4j
AMQP
Microservice 4
?
The Common Patterns Phobia
•How to deal with it
• How far do you want to go? Make it clear.
• Communicate. Why Common Guidelines?
• Anarchy vs Dictatorship? Better do Democracy.
• Write down the decisions
• And their reasons and their constraints.
• Revisiting the guidelines should be possible
• In a constructive way, with a plan
The Buzzwords Syndrome (IV)
•Microservices
•Event-Driven Architecture
•Reactive Programming
•Serverless (lambda architecture)
•Blockchain
•Internet of Things
•DevOps
•Big Data
The Buzzwords Syndrome
•How to deal with it
• Don’t use buzzwords if you’re not sufficiently informed
• Use Critical Thinking
• There should always be a reason
The Agile Trap (V)
•Service Discovery
•Load Balancing
•Gateway pattern
•Centralized Logging
•End-to-End tests
•Containerization
•Continuous Integration
•…
The Agile Trap
•How to deal with it
• Keep it simple, but serious: don’t overlook important
tasks
• Prepare a list with all the ‘architectural stories’, make it
visible.
• Use “Business Language”
The Conway’s Law Hackers (VI)
“[...] the interface structure of a software system necessarily will show a congruence
with the social structure of the organization that produced it.”
Software
Thing 1
Software
Thing 2
The Conway’s Law Hackers
Microservice
1
Microservice
2
Microservice
3
YOU’RE A GENIUS
The Conway’s Law Hackers
•How to deal with it
• If you apply “Reverse Conway”, be flexible.
• You’ll need changes in your Architecture
• Fight against budgeting pieces
• Focus on Communication.
• Human, but also Interfaces, Integration, Deployment
• Start with a single, small team. Yes, SMALL is better.
Wrapping up
•Microservices are not the solution to all your
problems.
•The perfect Software doesn’t exist.
•Keep it simple (≠ fast).
•Try. Try again. Keep trying. Learn from it.
•Learn from books, but also from doers.
•Start small.
•Don’t be afraid of starting with a Monolith.
Questions?
?
tpd.io/book
@moises_mac
ero
github.com/mech
ero
Thanks!
tpd.io/book
@moises_mac
ero
github.com/mech
ero
Mountain, monster, monkey and avatar icons made by Freepik from www.flaticon.com

More Related Content

Similar to The six obstacles of moving to microservices and how to deal with them - Moisés Macero García - Codemotion Rome 2018

Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015
Steve Pember
 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
Eoin Woods
 

Similar to The six obstacles of moving to microservices and how to deal with them - Moisés Macero García - Codemotion Rome 2018 (20)

Cloud Native Future
Cloud Native FutureCloud Native Future
Cloud Native Future
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Service as-a-software
Service as-a-softwareService as-a-software
Service as-a-software
 
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...
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
 
Monoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCampMonoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCamp
 
Are Microservices our future?
Are Microservices our future?Are Microservices our future?
Are Microservices our future?
 
MLOps for living: Infrastructure-as-Code on AWS
MLOps for living: Infrastructure-as-Code on AWSMLOps for living: Infrastructure-as-Code on AWS
MLOps for living: Infrastructure-as-Code on AWS
 
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
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Neue zeiten verlangen nach neuen Paradigmen - Bernd Rücker
Neue zeiten verlangen nach neuen Paradigmen - Bernd RückerNeue zeiten verlangen nach neuen Paradigmen - Bernd Rücker
Neue zeiten verlangen nach neuen Paradigmen - Bernd Rücker
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
 
Things You Need to Know Before Starting An App-Openair2015 keynote
Things You Need to Know Before Starting An App-Openair2015 keynoteThings You Need to Know Before Starting An App-Openair2015 keynote
Things You Need to Know Before Starting An App-Openair2015 keynote
 
Let's talk about... Microservices
Let's talk about... MicroservicesLet's talk about... Microservices
Let's talk about... Microservices
 
Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015Advanced Microservices - Greach 2015
Advanced Microservices - Greach 2015
 
Microservices vs monolithics betabeers
Microservices vs monolithics   betabeersMicroservices vs monolithics   betabeers
Microservices vs monolithics betabeers
 
Software Architecture as Systems Dissolve
Software Architecture as Systems DissolveSoftware Architecture as Systems Dissolve
Software Architecture as Systems Dissolve
 
Liferay as a Microservice Platform
Liferay as a Microservice PlatformLiferay as a Microservice Platform
Liferay as a Microservice Platform
 

More from Codemotion

More from Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Recently uploaded

Recently uploaded (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

The six obstacles of moving to microservices and how to deal with them - Moisés Macero García - Codemotion Rome 2018

  • 1. The Six Obstacles of Moving to Microservices Moisés Macero ROME - APRIL 13/14 2018
  • 2. Intro Who am I? •Software Developer / Architect •From Málaga, Based in Amsterdam •Book & Blog Author (ThePracticalDeveloper.com) •Love traveling and hiking …and made a lot of mistakes with Microservices
  • 3. The six obstacles •The Book Reading Cult •The Never-Decoupled-Enough Story •The Common Patterns Phobia •The Buzzwords Syndrome •The Agile Trap •The Conway's Law Hackers
  • 4. The Book Reading Cult (I) MICROSERVICES ADVANTAGES OF LOOSE COUPLING WE MUST DECOUPLE STUFFTHE EXPERT’S BOOK
  • 5. The Book Reading Cult •How to deal with it • READ BOOKS. Put the concepts into practice …using your business case. • Be a Critical Reader. • Do Continuous Improvements. Don’t feel attached to code. • Keep your “against-the-book” items visible • to solve them as soon as possible if you need them.
  • 7. The Never-Decoupled-Enough Story •How to deal with it • Don’t make a drama of having (a few) sync calls • Create a Microservices Map, keep it updated and visible. • OK-ish? • No-Go? Why Microservices?
  • 8. The Common Patterns Phobia (III)
  • 9. Freedom of choice A typical monolith Java Spring MySQL REST Microservice 2 Scala PostgreSQL GraphQL Microservice 1 Spring Boot MariaDB REST Microservice 3 Node.js Neo4j AMQP Microservice 4 ?
  • 10. The Common Patterns Phobia •How to deal with it • How far do you want to go? Make it clear. • Communicate. Why Common Guidelines? • Anarchy vs Dictatorship? Better do Democracy. • Write down the decisions • And their reasons and their constraints. • Revisiting the guidelines should be possible • In a constructive way, with a plan
  • 11. The Buzzwords Syndrome (IV) •Microservices •Event-Driven Architecture •Reactive Programming •Serverless (lambda architecture) •Blockchain •Internet of Things •DevOps •Big Data
  • 12. The Buzzwords Syndrome •How to deal with it • Don’t use buzzwords if you’re not sufficiently informed • Use Critical Thinking • There should always be a reason
  • 13. The Agile Trap (V) •Service Discovery •Load Balancing •Gateway pattern •Centralized Logging •End-to-End tests •Containerization •Continuous Integration •…
  • 14. The Agile Trap •How to deal with it • Keep it simple, but serious: don’t overlook important tasks • Prepare a list with all the ‘architectural stories’, make it visible. • Use “Business Language”
  • 15. The Conway’s Law Hackers (VI) “[...] the interface structure of a software system necessarily will show a congruence with the social structure of the organization that produced it.” Software Thing 1 Software Thing 2
  • 16. The Conway’s Law Hackers Microservice 1 Microservice 2 Microservice 3 YOU’RE A GENIUS
  • 17. The Conway’s Law Hackers •How to deal with it • If you apply “Reverse Conway”, be flexible. • You’ll need changes in your Architecture • Fight against budgeting pieces • Focus on Communication. • Human, but also Interfaces, Integration, Deployment • Start with a single, small team. Yes, SMALL is better.
  • 18. Wrapping up •Microservices are not the solution to all your problems. •The perfect Software doesn’t exist. •Keep it simple (≠ fast). •Try. Try again. Keep trying. Learn from it. •Learn from books, but also from doers. •Start small. •Don’t be afraid of starting with a Monolith.
  • 20. Thanks! tpd.io/book @moises_mac ero github.com/mech ero Mountain, monster, monkey and avatar icons made by Freepik from www.flaticon.com