Check out a free preview of the full Introduction to Backend Architectures course
The "Google & Uber Backend Systems" Lesson is part of the full, Introduction to Backend Architectures course featured in this preview video. Here's what you'd learn in this lesson:
Erik explains how Google's search engine architecture has evolved over time, starting with a monolithic architecture and eventually transitioning to microservices. He also highlights how Uber expanded its services by transitioning from a monolithic to a microservice architecture, allowing them to scale and customize their services for different markets.
Transcript from the "Google & Uber Backend Systems" Lesson
[00:00:00]
>> Erik Reinert: Google, so Google's search backend engine uses concepts such as monolithic architecture, service-oriented architecture, and microservice, each of which represents stages in the evolution of backend architectures. Google has been around for a while, as we all know, right? And so Google has adapted with the technology as it's grown, right?
[00:00:21]
And in a lot of ways, some of the things that we work with today are directly related because of how Google implemented them in their own systems, right? And so a good example of that is the search engine. Now, [LAUGH] Google's a little bit of a black box when it comes to the things that they do.
[00:00:37]
I couldn't really find an official Google document on the search engine. However, what I was able to find was the original high level Google architecture diagram for the original search engine. And so you can even see, 20-something years ago when they first made this, they had a URL server, they had a crawler, they had a store server with a repository.
[00:01:01]
They had a URL resolver, and an indexer, and linking, and document indexing, and page ranking, and searching, and sorting, and all of these other things that eventually got created into microservices and services. And distributed and higher scaling and more distribution and more complexity as the software and as the platform grew.
[00:01:22]
But even this as a start was already distributed because of the type of problem that they were trying to solve.
>> Erik Reinert: And finally, we have Uber, right? As it expanded worldwide, Uber transitioned from a monolithic to a microservice architecture. Each service, such as ride-hailing, food delivery, and driver-partner services, is managed by separated microservices or services.
[00:01:47]
This has enabled Uber to scale and customize its services for different markets. So, who here remembers when Uber started doing food deliveries? That was crazy, right? You were so used to using Uber for ride-hailing, but they already had half of the platform there. They already had the geolocation part.
[00:02:07]
They already had the hailing part. All they needed to do was throw on food on top of it, and now they have a whole other market that they're tapped into. That's another reason why backend system architectures are so valuable. And again, this is from Silicon Valley, but you can pivot, [LAUGH] you can pivot, and you could try new things.
[00:02:26]
And that's also what made Uber a massive company. They're not just ride-sharing anymore, they're food delivery and they have partner services, and you can rent cars on Uber and all this other stuff, right? They are, once again, like Amazon, dogfooding their platform and finding out multiple ways to make money off of it.
[00:02:46]
And that is how you get to a billion dollars. That's how you get to a huge company, is not just doing one thing, but doing a lot of things really well. And so when we look at Uber's infrastructure, you can see here that they have core services and WebSocket services.
[00:03:02]
And for example, a customer creates a chat contact which goes to a chat channel manager. That content is created or uploaded to a contact service. The contact is added for routing to a router, and then that get pushed to a web, basically a web server. That gets sent to an agent state service for managing agents stay online, offline, all that stuff.
[00:03:27]
They have a lower level Kafka service which handles a lot of these messages. They have a WebSocket proxy which then goes to the frontend. And then that connects to the frontend so that agents have a real-time interaction with all these systems. And then multiple services are connected through that frontend, which is the app that we use today.
[00:03:47]
And again, they're doing a really good job of looking at what they already have, their fleets, their infrastructure, and saying, okay, cool, this is a way that we can make money.
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops