microservices practitioner summit jan '15 - scaling uber from 1 to 100s of services - matt...
TRANSCRIPT
![Page 1: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/1.jpg)
SCALING UBERMATT RANNEY
![Page 2: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/2.jpg)
As of January 2016:
Uber Cities Worldwide: 361Countries: 67Employees: 5,400Engineers: 1,700US Driver Payments Jan-Oct 2015: $3.5B
![Page 3: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/3.jpg)
![Page 4: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/4.jpg)
![Page 5: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/5.jpg)
UBER ENGINEERING HISTORY
![Page 6: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/6.jpg)
2009-2010 Outsourced PHP + MySQL
Jan 2011 "dispatch" - Node.JS/MongoDB
Jan 2011 “API” - Python/SQLAlchemy/MySQL
Feb 2012 Dispatch swaps MongoDB for Redis
May 2012 Dispatch adds ON fallback
Jan 2013 First non-API Python services
Feb 2013 API switched to Postgres
Mar 2014 New Python services use MySQL
Mar 2014 Schemaless begins, must finish before pg collapse
Sep 2014 First Schemaless - trips out of Postgres
Aug 2015 Dispatch X.0 / Ringpop / Riak
Jan 2016 Go, Java, Cloud, More Abstractions
![Page 7: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/7.jpg)
TECHNICAL DEBT
![Page 8: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/8.jpg)
![Page 9: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/9.jpg)
![Page 10: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/10.jpg)
![Page 11: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/11.jpg)
Credit: NASA, ESA, and R. Thompson (Univ. Arizona)
![Page 12: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/12.jpg)
Credit: NASA, ESA, and Z. Levay (STScI/AURA)
![Page 13: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/13.jpg)
MICROSERVICESImmutable?Append Only?
![Page 14: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/14.jpg)
Node.JSPythonGoJava
![Page 15: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/15.jpg)
SCALING NODE
![Page 16: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/16.jpg)
![Page 17: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/17.jpg)
![Page 18: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/18.jpg)
![Page 19: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/19.jpg)
![Page 20: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/20.jpg)
![Page 21: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/21.jpg)
![Page 22: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/22.jpg)
![Page 23: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/23.jpg)
![Page 24: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/24.jpg)
![Page 25: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/25.jpg)
![Page 26: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/26.jpg)
![Page 27: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/27.jpg)
![Page 28: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/28.jpg)
![Page 29: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/29.jpg)
![Page 30: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/30.jpg)
![Page 31: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/31.jpg)
![Page 32: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/32.jpg)
![Page 33: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/33.jpg)
![Page 34: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/34.jpg)
![Page 35: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/35.jpg)
![Page 36: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/36.jpg)
![Page 37: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/37.jpg)
Getting out of the HTTP+JSON businessHTTP is slow, complex, and inconsistentJSON is hard to validate, awkward in non-nodeThrift is OK, but generated code is bad
![Page 38: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/38.jpg)
![Page 39: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/39.jpg)
![Page 40: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/40.jpg)
SERVICE DISCOVERY
![Page 41: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/41.jpg)
![Page 42: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/42.jpg)
Lots of services, lots of instancesMostly Node.JS and PythonCall graph unknowableSelf-inflicted DoSCascading failures
![Page 43: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/43.jpg)
![Page 44: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/44.jpg)
![Page 45: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/45.jpg)
![Page 46: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/46.jpg)
![Page 47: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/47.jpg)
![Page 48: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/48.jpg)
load balancerservice A
service B
service B
![Page 49: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/49.jpg)
load balancer
service A service B
service B
![Page 50: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/50.jpg)
![Page 51: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/51.jpg)
horizontal scalabilityzipkin tracingcircuit breakingrate limitingfailure testablealmost no configurationas available as possible
![Page 52: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/52.jpg)
overall latency ≥ latency of slowest component1ms avg, 1000ms p99use 1: 1% at least 1000msuse 100: 63% at least 1000ms1.0 - 0.99^100 = 0.634 = 63.4%
LATENCY
![Page 53: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/53.jpg)
requ
ests
that
are
slo
w
0%
25%
50%
75%
100%
Processes Used
1 2 4 8 16 32 64 128 256 512 1024
p95 p99 p99.9
![Page 54: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/54.jpg)
![Page 55: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/55.jpg)
![Page 56: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/56.jpg)
![Page 57: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/57.jpg)
CULTURAL CHANGES
![Page 58: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/58.jpg)
FAILURE TESTING
![Page 59: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/59.jpg)
RETRIES
![Page 60: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/60.jpg)
partner app dispatch DC1Location Updates
State Digest
dispatch DC2
Location UpdatesState Request
![Page 61: Microservices Practitioner Summit Jan '15 - Scaling Uber from 1 to 100s of Services - Matt Ranney, Uber](https://reader031.vdocuments.us/reader031/viewer/2022022203/5870a3f51a28abcb078b556f/html5/thumbnails/61.jpg)
THANKS