Warning message

  • The service having id "twitter" is missing, reactivate its module or save again the list of services.
  • The service having id "facebook" is missing, reactivate its module or save again the list of services.
  • The service having id "google_plus" is missing, reactivate its module or save again the list of services.
  • The service having id "linkedin" is missing, reactivate its module or save again the list of services.

Presentation: Scaling Uber

Key Takeaways

  • Learn some of lessons around growing Uber's rapidly expanding engineering organization.
  • Understand some of the technology choices Uber has made to tame failure and ensure service reliability.
  • Hear how Uber is building and scaling their microservice architecture.

Abstract

The Uber platform has been growing dramatically, now facilitating transportation in over 330 cities around the world. As the company has grown, the architecture that powers this platform has gone through many changes. From its simple roots as a PHP program, Uber has grown into a complex distributed system deployed across multiple datacenters using multiple databases and programming languages. This talk will cover the evolution of Uber's architecture and some of the systems we've built to handle the current scaling challenges.

Interview with Matt Ranney

QCon: What is the motivation for your talk?

Matt: The biggest problem Uber has is handling growth (product, business, and engineering). The team has gone from (when I first started) 200 engineers to 1,100 engineers. Handling that growth has been a huge problem. I don’t just mean people (that’s a huge problem too), I mean from technology viewpoint. How do you have all those engineers making meaningful contributions to your systems?

As a result, we left broken a bunch of stuff that would have been fixed if we were proceeding methodically. The motivation for my talk is about how we’re coping with adding this many people (this quickly) without taking the time to do a consistent design, it’s more adapting to chaos as much as taming it.

QCon: How is this talk different than the one you did in London earlier this year on Uber’s architecture?

Matt: The London talk was about the dispatch system. We went into detail into some of it. The dispatch system now runs the entire world. When we talked about it earlier this year, it was only in one city, but now it’s what ‘makes Uber go’.

In San Francisco, we’re talking about what we had to do on the infrastructure side to scale services. Things around routing and the explosion of of our services. Uber has about 500 services in production now. It’s a shocking graph anytime anyone sees it.

This talk is about the work we’re doing to get a handle on all that.

QCon: Can you give me an idea of some of the things you might be talking about?

Matt: There are some pretty neat failure handling techniques that I would like to go into that we have in our system. Those are among the coolest.

For example, we implement in our RPC framework Backup Requests w/ Cross-Server Cancellation from Jeff Dean’s presentation a year or two ago. As far as I know, we are the only system that does that. It’s an interesting technique. We use the same technique (basically making everything you can be Idempotent) everywhere we can, so that a service can be retried (or run twice accidentally) to mask failures as well as handle latency outliers.

QCon: Who do you think are the people that should be most interested in your talk?

Matt: If people are interested in what are the problems of scaling a rapidly growing engineering organization, the talk will be interesting to you. There are no specific technologies you need to know to come to the talk.

Similar Talks

Co-creator of Apache Kafka, Co-founder & Head of Engineering @Confluent
VP of Product Engineering @Tuplejump
Senior Software Engineer @BlueJeansNetwork
Director of Marketplace Engineering @Uber
VP of Engineering for Search @Salesforce

Tracks

Covering innovative topics

Monday Nov 16

Tuesday Nov 17

Wednesday Nov 18

Conference for Professional Software Developers