Here is the link.
To Keep up with Uber's growth, we've embraced microservices in a big way. This has led to an explosion of new services, crossing over 1,000 production services in early March 2016. Along the way we've learned a lot, and if we had to do it all over again [...]
5:31
Microservice
immutable?
Append only?
Why microservices?
Now you have a distributed system
Eveything is an RPC
what if it breaks?
Less obvious costs
Everything is a tradeoff
You can build around problems
Might trade complexity for politics
You get to keep your biases
Languages
Hard to share code
Hard to move between teams
WIWK: Fragments the culture
Fragment the culture - human behavior - really cost
RPC
HTTP/REST gets complicated
JSON needs a schema
RPCs are slower than PCs
WIWIK: servers are not browsers
Performance
Doesn't matter until it does
Probably want at least simple perf requirements
WIWIK: "good" not required, but "known" is
FANOUT
overall latency >= latency of slowest
1ms avg, 1000ms p99
use 1:1% at least 1000ms
use 100: 63% at least
Tracing
Lots of ways to get this
Best way to understand fanout
Tracing
Probably want sampleing
WIWIK: cross-lang context propagation
LOAD TESTING
Need to test against production
Without breaking metrics
Preferably all the time
WIWIK: all systems need to handle "test" traffic
MIGRATIONS
old stuff still has to work
What happened to immutable?
WIWIK: mandates are bad
From January 2015, she started to practice leetcode questions; she trains herself to stay focus, develops "muscle" memory when she practices those questions one by one. 2015年初, Julia开始参与做Leetcode, 开通自己第一个博客. 刷Leet code的题目, 她看了很多的代码, 每个人那学一点, 也开通Github, 发表自己的代码, 尝试写自己的一些体会. She learns from her favorite sports – tennis, 10,000 serves practice builds up good memory for a great serve. Just keep going. Hard work beats talent when talent fails to work hard.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment