Upload
phil-calcado
View
384
Download
68
Embed Size (px)
Citation preview
Technical Challenges
Organization Challenges
Introducing distribution into your architecture brings up new
"I know, let’s have all circuit breakers share state”
Answer to the question “how did my application ended up importing a Zookeeper library again?"
Circuit breakersTimeouts
Your code looks like this now
Biz Logic
Timeouts
Telemetry
RPC code
Distributed state
Circuit breakersTimeouts
Your code looks like this now
Biz Logic
Timeouts
Telemetry
RPC code
Distributed state
Client-side Service Discovery
Circuit breakers
Timeouts
Biz Logic
Timeouts
Telemetry
RPC code
Distributed state
Client-side Service Discovery
SDK
Application
Transport
Internet
Network
Circuit breakers
Telemetry
RPC code
Distributed state
Client-side Service Discovery
} TCP/IP
}?
One way to think about it
Sidecars to the rescue
Circuit breakers
Timeouts
Biz Logic
Timeouts
Telemetry
RPC code
Distributed state
Client-side Service Discovery
SCARY OUTSIDE WORLD
Sidecars to the rescue
Circuit breakers
Timeouts
Biz Logic
Timeouts
Telemetry
RPC code
Distributed state
Client-side Service Discovery
SCARY OUTSIDE WORLDSidecar
Circuit breakers
Timeouts
Biz Logic
Timeouts
Telemetry
RPC code
Distributed state
Client-side Service Discovery
Service
Platform
It’s not that these patterns aren’t used anymore, it’s just that the
dumb work moved down the stack.
New, optmised, protocols are quite opaque(e.g. gRPC and friends)
Works better with metadata-rich protocols
It makes it even harder to fully replicate production earlier in the development cycle
Coupled to the platform