Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Microservices are an antipattern Lindsay Holmwood
Slide 2
Slide 2 text
Microservices are an antipattern Lindsay Holmwood
Slide 3
Slide 3 text
Why microservices?
Slide 4
Slide 4 text
Design strategy to manage complexity in our systems
Slide 5
Slide 5 text
Design strategy to manage complexity in our systems
Slide 6
Slide 6 text
If the system or team get too big, we: 1. Split the system
Slide 7
Slide 7 text
If the system or team get too big, we: 1. Split the system
Slide 8
Slide 8 text
If the system or team get too big, we: 2. Split the team
Slide 9
Slide 9 text
Popularised by the devops movement
Slide 10
Slide 10 text
Popularised by the devops movement
Slide 11
Slide 11 text
CD + containers were the drivers
Slide 12
Slide 12 text
CD + containers were the drivers
Slide 13
Slide 13 text
In use at the big end of town
Slide 14
Slide 14 text
“It works for Google, so we’ll scale it down and get the same benefits!”
Slide 15
Slide 15 text
We cargo culted a design strategy without understanding the tradeoffs
Slide 16
Slide 16 text
Real talk: The smallest microservice at Google probably does more transactions than the largest service in your organisation.
Slide 17
Slide 17 text
Real talk: We took a pattern for managing huge systems, extrapolated it down to our size, and hoped it worked.
Slide 18
Slide 18 text
Real talk: Hope is not a strategy.
Slide 19
Slide 19 text
Some downsides you should think about:
Slide 20
Slide 20 text
Some downsides you should think about:
Slide 21
Slide 21 text
You’re replacing function calls with network calls
Slide 22
Slide 22 text
Source: “Systems Performance: Enterprise and the Cloud” by Brendan Gregg
Slide 23
Slide 23 text
Is that latency worth it?
Slide 24
Slide 24 text
What hard limits are you imposing to control unpredictability?
Slide 25
Slide 25 text
Microservices are a systems multiplier for your shitty code
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
How is your ◦ modularity? ◦ isolation? ◦ encapsulation?
Slide 28
Slide 28 text
Refactor first
Slide 29
Slide 29 text
Then scale when the performance impacts users
Slide 30
Slide 30 text
1. Make it work 2. Make it right 3. Make it fast
Slide 31
Slide 31 text
1. Make it work 2. Make it right 3. Make it fast Refactor
Slide 32
Slide 32 text
1. Make it work 2. Make it right 3. Make it fast Refactor Microservice
Slide 33
Slide 33 text
Microservices have a higher cost of ownership
Slide 34
Slide 34 text
Operational requirements: ◦ CD pipelines ◦ Network & compute & storage ◦ Logging ◦ Monitoring ◦ Tracing & observability
Slide 35
Slide 35 text
Security requirements: ◦ Authentication ◦ Identity ◦ Monitoring
Slide 36
Slide 36 text
This costs more (both in systems bills and engineering time)
Slide 37
Slide 37 text
But what if we just… didn’t?
Slide 38
Slide 38 text
But what if we just… didn’t?
Slide 39
Slide 39 text
Problems are harder to debug
Slide 40
Slide 40 text
Incidents have > MTTD & MTTR
Slide 41
Slide 41 text
Delivery slows
Slide 42
Slide 42 text
Increased communication + coordination overhead between teams
Slide 43
Slide 43 text
Sequencing of changes across multiple services
Slide 44
Slide 44 text
Poor service boundaries? You have to get multiple teams moving in the same direction to deliver a change.
Slide 45
Slide 45 text
Stakeholders for technical changes are rarely exclusively technical
Slide 46
Slide 46 text
Requires coordination across disciplines like product, design, marketing, analytics, …
Slide 47
Slide 47 text
You need established and understood communication paths
Slide 48
Slide 48 text
You need established and understood change coordination
Slide 49
Slide 49 text
You need established cultural norms for resolving conflict
Slide 50
Slide 50 text
Microservices are an effective way to separate concerns in complex systems
Slide 51
Slide 51 text
Microservices are an inefficient way of organising people in organisations < 1,000 people
Slide 52
Slide 52 text
The smaller the org, the smaller the return
Slide 53
Slide 53 text
You are not Google/Netflix/ AWS/Facebook/…
Slide 54
Slide 54 text
Do the job you have, not the job you want.
Slide 55
Slide 55 text
Thank you! (fight me)