Senior Staff Engineer at Uber, co-founder of Voxer
Matt works on architecture and distributed systems at Uber. Like most engineers, he spends a lot of time thinking about distributed databases. Before Uber, Matt was co-founder and CTO of Voxer where he wrote a lot of software for node.js, including node_redis and node_pcap.
YOW! 2015 Melbourne
Designing for Failure: Scaling Uber’s Backend by Breaking Everything
TALK – VIEW SLIDES
As Uber scales its business to new products in new cities, the requirements for high availability and scalability increase. As the engineering team scales, doubling every 6 months, the challenges of building a reliable system grow with it. At our current scale, even brief outages in the service are very costly, both in dollars to the company and with real world impact on people’s lives.
To get better at handling failure and design for it, we’ve had to make failures more common. Every new system that we build is subjected to regular failure testing, even databases. This requires some new technology choices from the more comfortable ones that worked when we were smaller.
The shift from a smaller service with a few hardened components to a global operation with hundreds of services is as much cultural as it is technical. This talk will cover the Uber architecture and how it handles every failure we can think of. It’ll also cover some real outages and how they’ve influenced our new design.