Lessons Learned on Uber's Journey into Microservices

C4Media
C4MediaMarketing Manager at C4Media
Uber’s Journey into
Microservices
Emily Reinhold, Software Engineer, Uber
JUNE 15, 2016
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
uber-darwin
Presented at QCon New York
www.qconnewyork.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Our Monolith
Background
‣“API”
‣Started January 2011
Fun Facts
Lines of Code over Time
0K
75K
150K
225K
300K
2011 2012 2013 2014 2015 2016
Unique Authors over Time
0
150
300
450
600
2011 2012 2013 2014 2015 2016
Start of
migration.
Yay!
API Trends
‣“API”
‣Started January 2011
‣Access to core data models
Fun Facts
Core Data Models
Users Trips Payments
Products Cities Documents
Exchange
Rates
Vehicles Promos
The Uber Monolith
‣Postgresql
‣Python 2.7
‣HTTP/JSON
‣uWSGI
Technical Details
Request Flow
Matching
Service
haproxy API box nginx uWSGI
process
Postgres
Downstream
Services
Third Parties
API
‣Minimal overhead for cross-
domain features
Benefits
“Cross Domain”
Users Trips Payments
Products Cities Documents
Exchange
Rates
Vehicles Promos
The Uber Monolith
‣Minimal overhead for cross-
domain features
‣Reuse code across domains
‣Broad, extensible interface
Benefits
‣Honks
‣Halloween 2014
‣Postgresql Master Failure
Historic Outages
Image courtesy of Anita Hart. Licensed under CC-BY-SA 2.0.
https://flic.kr/p/8PG15b
Postgresql Master Failure
‣Honks
‣Halloween 2014
‣Postgresql Master Failure
‣Kafka Outage
Historic Outages
Kafka Outage
‣Deploy burden
‣Single Postgres Master
Technical Bottlenecks
Image courtesy of Paul Schadler. Licensed under CC-BY 2.0.
https://flic.kr/p/aDoGkP
‣Rapid hiring
‣Slow test suite
‣Toe stepping, merge conflicts
Developability
‣Growth of business
‣Growth of features
‣Growth of organization
Scalability 3 Ways
In Microservices
Our Future
‣Horizontally scalable
Benefits
Scalability
Trips Users Promos
‣Horizontally scalable
‣Improved onboarding
‣Clear ownership
Benefits
Ownership
No hiding!
You’re on call!
‣Horizontally scalable
‣Improved onboarding
‣Clear ownership
‣Failure isolation
Benefits
Granular Failures
Old Way
API
client
show
Payments
Promos
User tags
Edge Service
New Way
Edge Service
Payments Promos Users
?
Lessons Learned
‣Drastically changing tech
stack
Limit Scope
Tech Stack
That’s
me!
eng.uber.com/building-tincup/
Data Migration
1. Develop new
schema
2. Implement
converter
3. Dual write 4. Backfill
6. Move read
queries
5. Validation
?
7. Remove old
writes
‣Drastically changing tech
stack
‣Infrastructure not ready
‣ Understaffed
‣ Lacked tooling
Limit Scope
Things Happen
Image courtesy of Kim Scarborough. Licensed under CC-BY-SA 2.0.
https://flic.kr/p/23HUAK
‣Drastically changing tech
stack
‣Infrastructure not ready
‣ Understaffed
‣ Lacked tooling
‣Understanding timelines
Limit Scope
‣Monolith’s consumers
directly impacted
Aligning with Consumers
Consumers
API
Pricing
Matching
Signup
Exchange rates
Cities
Users
Trips
Trips
Exchange
Rates
Cities
Users
‣Monolith’s consumers directly impacted
‣Importance of migrating not well
communicated
‣Constant interruption
Aligning with Consumers
‣For service developers and
migrating consumers
‣Tool to split up request
Build Tools Initially
Request Splitter
API
Cities
Currencies
Users
Trips
Old Way
requesting trip
info, with
relationships
on user,
currency, city
New Way
API
Cities
Currencies
Users
Trips
Tool
requesting trip
info, with
relationships
on user,
currency, city
request user
request city
request currency
request trip
‣For service developers and migrating
consumers
‣Tool to split up request
‣Tool to validate new response
‣Tool to gain visibility into consumers
Build Tools Initially
‣Most difficult aspect of migration
‣Silently call new system
Consumer Migration Tips
Silent Swap
API
Matching
Signup
Exchange ratesCities
Users Trips
Users
‣Most difficult aspect of migration
‣Silently call new system
‣Most successful migration kept
interface the same
Consumer Migration Tips
‣Tendency to avoid changes
‣Tackling core (User) directly
required refactor
Love your Monolith
‣Likely to impact other teams
‣Teams shift focus
Migration Blockers
Migration Successes
‣Shared accomplishment
‣Relationships formed
‣New understanding
Collaboration
‣New tech stack: more efficient
‣No more uWSGI!
Hardware efficiency
uWSGI Utilization
CPU Usage
‣New tech stack: more efficient
‣No more uWSGI!
‣Calls asynchronous
Hardware efficiency
‣How our systems work
‣Design for stability
‣Evenly spread ownership
Deeper Understanding
First & Last Name
Email: emilyr@uber.com
Engineering Blog: eng.uber.com
Twitter: @UberEng
Thank you
Lessons Learned on Uber's Journey into Microservices
Watch the video with slide synchronization on
InfoQ.com!
https://www.infoq.com/presentations/uber-
darwin
1 of 55

Recommended

The Nihilist’s Guide to Wrecking Humans & Systems by
The Nihilist’s Guide to Wrecking Humans & SystemsThe Nihilist’s Guide to Wrecking Humans & Systems
The Nihilist’s Guide to Wrecking Humans & SystemsC4Media
332 views118 slides
API-first Architecture Transformation at Etsy by
API-first Architecture Transformation at EtsyAPI-first Architecture Transformation at Etsy
API-first Architecture Transformation at EtsyC4Media
918 views77 slides
APIDays Berlin Edition 2014 by
APIDays Berlin Edition 2014APIDays Berlin Edition 2014
APIDays Berlin Edition 2014Dirk Hoerig
1.2K views21 slides
Bringing Velocity and Momentum to Digital Transformation Projects by
Bringing Velocity and Momentum to Digital Transformation ProjectsBringing Velocity and Momentum to Digital Transformation Projects
Bringing Velocity and Momentum to Digital Transformation ProjectsAcquia
249 views49 slides
Scalable Microservices at Netflix. Challenges and Tools of the Trade by
Scalable Microservices at Netflix. Challenges and Tools of the TradeScalable Microservices at Netflix. Challenges and Tools of the Trade
Scalable Microservices at Netflix. Challenges and Tools of the TradeC4Media
10.9K views88 slides
Mastering Chaos - A Netflix Guide to Microservices by
Mastering Chaos - A Netflix Guide to MicroservicesMastering Chaos - A Netflix Guide to Microservices
Mastering Chaos - A Netflix Guide to MicroservicesC4Media
1.8K views109 slides

More Related Content

Similar to Lessons Learned on Uber's Journey into Microservices

Are We Really Cloud-Native? by
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?C4Media
355 views70 slides
Forced Evolution: Shopify's Journey to Kubernetes by
Forced Evolution: Shopify's Journey to KubernetesForced Evolution: Shopify's Journey to Kubernetes
Forced Evolution: Shopify's Journey to KubernetesC4Media
297 views51 slides
The Microservices and DevOps Journey by
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps JourneyC4Media
1.6K views68 slides
CI/CD for Machine Learning by
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
355 views70 slides
Rebuilding the Monolith with Composable Apps by
Rebuilding the Monolith with Composable AppsRebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable AppsC4Media
275 views90 slides
Microsoft Cloud's Front Door: Building a Global API by
Microsoft Cloud's Front Door: Building a Global APIMicrosoft Cloud's Front Door: Building a Global API
Microsoft Cloud's Front Door: Building a Global APIC4Media
1.4K views76 slides

Similar to Lessons Learned on Uber's Journey into Microservices(20)

Are We Really Cloud-Native? by C4Media
Are We Really Cloud-Native?Are We Really Cloud-Native?
Are We Really Cloud-Native?
C4Media355 views
Forced Evolution: Shopify's Journey to Kubernetes by C4Media
Forced Evolution: Shopify's Journey to KubernetesForced Evolution: Shopify's Journey to Kubernetes
Forced Evolution: Shopify's Journey to Kubernetes
C4Media297 views
The Microservices and DevOps Journey by C4Media
The Microservices and DevOps JourneyThe Microservices and DevOps Journey
The Microservices and DevOps Journey
C4Media1.6K views
CI/CD for Machine Learning by C4Media
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
C4Media355 views
Rebuilding the Monolith with Composable Apps by C4Media
Rebuilding the Monolith with Composable AppsRebuilding the Monolith with Composable Apps
Rebuilding the Monolith with Composable Apps
C4Media275 views
Microsoft Cloud's Front Door: Building a Global API by C4Media
Microsoft Cloud's Front Door: Building a Global APIMicrosoft Cloud's Front Door: Building a Global API
Microsoft Cloud's Front Door: Building a Global API
C4Media1.4K views
Open API and API Management - Introduction and Comparison of Products: TIBCO ... by Kai Wähner
Open API and API Management - Introduction and Comparison of Products: TIBCO ...Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Open API and API Management - Introduction and Comparison of Products: TIBCO ...
Kai Wähner30.2K views
The Service Mesh: It's about Traffic by C4Media
The Service Mesh: It's about TrafficThe Service Mesh: It's about Traffic
The Service Mesh: It's about Traffic
C4Media898 views
Can Technology Innovation Save The New York Times? by C4Media
Can Technology Innovation Save The New York Times?Can Technology Innovation Save The New York Times?
Can Technology Innovation Save The New York Times?
C4Media1.1K views
Take Two: Evolving Microservice Architectures by C4Media
Take Two: Evolving Microservice ArchitecturesTake Two: Evolving Microservice Architectures
Take Two: Evolving Microservice Architectures
C4Media271 views
[WSO2 Summit APAC 2020] Enabling Digital Transformation and Ecosystem Collabo... by WSO2
[WSO2 Summit APAC 2020] Enabling Digital Transformation and Ecosystem Collabo...[WSO2 Summit APAC 2020] Enabling Digital Transformation and Ecosystem Collabo...
[WSO2 Summit APAC 2020] Enabling Digital Transformation and Ecosystem Collabo...
WSO2384 views
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser... by C4Media
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
C4Media4.5K views
Adopting Continuous Delivery: Adjusting your Architecture by C4Media
Adopting Continuous Delivery: Adjusting your ArchitectureAdopting Continuous Delivery: Adjusting your Architecture
Adopting Continuous Delivery: Adjusting your Architecture
C4Media2.5K views
Scaling Uber by C4Media
Scaling UberScaling Uber
Scaling Uber
C4Media33.8K views
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ... by Amazon Web Services
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
DevOps on AWS: Accelerating Software Delivery with AWS Developer Tools | AWS ...
Computational Patterns of the Cloud by C4Media
Computational Patterns of the CloudComputational Patterns of the Cloud
Computational Patterns of the Cloud
C4Media592 views
Design Microservice Architectures the Right Way by C4Media
Design Microservice Architectures the Right WayDesign Microservice Architectures the Right Way
Design Microservice Architectures the Right Way
C4Media241 views
API Marketplaces: Centers of Innovation for your Digital Enterprise by WSO2
API Marketplaces: Centers of Innovation for your Digital EnterpriseAPI Marketplaces: Centers of Innovation for your Digital Enterprise
API Marketplaces: Centers of Innovation for your Digital Enterprise
WSO2365 views
From Monoliths to Services: Paying Your Technical Debt by TechWell
From Monoliths to Services: Paying Your Technical DebtFrom Monoliths to Services: Paying Your Technical Debt
From Monoliths to Services: Paying Your Technical Debt
TechWell327 views

More from C4Media

Streaming a Million Likes/Second: Real-Time Interactions on Live Video by
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoC4Media
2.5K views171 slides
Next Generation Client APIs in Envoy Mobile by
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileC4Media
845 views107 slides
Software Teams and Teamwork Trends Report Q1 2020 by
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020C4Media
530 views11 slides
Understand the Trade-offs Using Compilers for Java Applications by
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
494 views59 slides
Kafka Needs No Keeper by
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No KeeperC4Media
579 views127 slides
High Performing Teams Act Like Owners by
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like OwnersC4Media
409 views75 slides

More from C4Media(20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video by C4Media
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
C4Media2.5K views
Next Generation Client APIs in Envoy Mobile by C4Media
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
C4Media845 views
Software Teams and Teamwork Trends Report Q1 2020 by C4Media
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
C4Media530 views
Understand the Trade-offs Using Compilers for Java Applications by C4Media
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
C4Media494 views
Kafka Needs No Keeper by C4Media
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
C4Media579 views
High Performing Teams Act Like Owners by C4Media
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
C4Media409 views
Does Java Need Inline Types? What Project Valhalla Can Bring to Java by C4Media
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
C4Media339 views
Service Meshes- The Ultimate Guide by C4Media
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
C4Media269 views
Shifting Left with Cloud Native CI/CD by C4Media
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
C4Media299 views
Fault Tolerance at Speed by C4Media
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
C4Media286 views
Architectures That Scale Deep - Regaining Control in Deep Systems by C4Media
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
C4Media323 views
ML in the Browser: Interactive Experiences with Tensorflow.js by C4Media
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
C4Media1.7K views
Build Your Own WebAssembly Compiler by C4Media
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
C4Media297 views
User & Device Identity for Microservices @ Netflix Scale by C4Media
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
C4Media1.2K views
Scaling Patterns for Netflix's Edge by C4Media
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
C4Media588 views
Make Your Electron App Feel at Home Everywhere by C4Media
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
C4Media587 views
The Talk You've Been Await-ing For by C4Media
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
C4Media250 views
Future of Data Engineering by C4Media
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
C4Media1.7K views
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More by C4Media
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
C4Media842 views
Navigating Complexity: High-performance Delivery and Discovery Teams by C4Media
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery Teams
C4Media449 views

Recently uploaded

The details of description: Techniques, tips, and tangents on alternative tex... by
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...BookNet Canada
126 views24 slides
Special_edition_innovator_2023.pdf by
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdfWillDavies22
17 views6 slides
Voice Logger - Telephony Integration Solution at Aegis by
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at AegisNirmal Sharma
31 views1 slide
1st parposal presentation.pptx by
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptxi238212
9 views3 slides
Microsoft Power Platform.pptx by
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptxUni Systems S.M.S.A.
52 views38 slides
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveNetwork Automation Forum
30 views35 slides

Recently uploaded(20)

The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada126 views
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2217 views
Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma31 views
1st parposal presentation.pptx by i238212
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptx
i2382129 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex22 views
Black and White Modern Science Presentation.pptx by maryamkhalid2916
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptx
maryamkhalid291616 views
Perth MeetUp November 2023 by Michael Price
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023
Michael Price19 views
Attacking IoT Devices from a Web Perspective - Linux Day by Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri15 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
Piloting & Scaling Successfully With Microsoft Viva by Richard Harbridge
Piloting & Scaling Successfully With Microsoft VivaPiloting & Scaling Successfully With Microsoft Viva
Piloting & Scaling Successfully With Microsoft Viva
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst476 views

Lessons Learned on Uber's Journey into Microservices