1、The Evolution of the Uber Eats Architecture1.Business Overview&Challenges2.Architecture Overview&Evolution3.Leveraging Ridesharing Platforms4.Tackling i18n Challenges 5.Q&AAgenda$6B Gross Bookings 350CitiesOur ScaleThenNowHow does Uber Eats work today?On-demand Uber EatsMarketplace complexity vs res
2、ource constraintInternationalization(i18n)Operation(reliability)Performance(app,network)Extensibility(dev)Challenges1.Business Overview&Challenges2.Architecture Overview&Evolution3.Leveraging Ridesharing Platforms4.Tackling i18n Challenges 5.Q&AAgenda BackgroundUber:Monolith(from 2009)=lots of micro
3、services Py/JS=Golang/JavaMySQL=CassandraUber Eats(2015):Microservices*+Golang+Cassandra*at the onsetPain points0=1=N cities Microservices(70+)Long e2e chainMessy dep graph*Hairy migrations*Any service can bring down the biz*Identify core flowsRevisit product phases=Core Flows=Tier 1 services=Extra
4、rigor for T1=Tech convergence*=Fewer servicesSimplified architecture(flows)1.Business Overview&Challenges2.Architecture Overview&Evolution3.Leveraging Ridesharing Platforms4.Tackling i18n Challenges 5.Q&AAgenda Batching:beforeGreedy matching1 order 1 delivery“Nearest”winsBatching:afterClustering1 or
5、ders per deliveryEfficiency Win winConstraintsEater ETARoute overlapSystemScan local/globalCase study:disaster recoveryActive-active(2 DC)3 levels of mitigation DNS(L1)Data center(L2)Service(L3)Tiered operation powerDNS:SREDC:Ring0Service:ownersRecent exampleCase study:storageMySQL=C*Gocql can be to
6、o much2 different kinds of entitiesState machine vs SOTWrite-optimal:K-V+dual-writeState machine,e.g.order/cartRead-optimal:K-V+RedisSOT entities,e.g.menu/storeMany more examples.Machine Learning Platform(eng blog)Experimentation Platform(eng blog)Forecasting Platform(eng blog)Dy