The document summarizes the six main obstacles to moving to microservices: 1) The Book Reading Cult of only following expert advice without practical application, 2) The Never-Decoupled-Enough Story of constantly trying to decouple more without limits, 3) The Common Patterns Phobia of avoiding common patterns without clear reasons, 4) The Buzzwords Syndrome of using buzzwords without understanding, 5) The Agile Trap of overlooking important architectural tasks, and 6) The Conway's Law Hackers of rigidly mapping architecture to organization without flexibility. The document provides advice on dealing with each obstacle, such as being a critical reader, focusing on communication, and starting simply.
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?
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
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.