架构头条
作者 | theinsaneApp.com
译者 | 张健欣
策划 | 万佳
今天,我们会讨论一些不同的东西,例如 Spotify、YouTube、Signal Messenger、Amazon 等科技巨头的推荐算法,以及像 Uber、Twitter.NETflix、Airbnb、Dropbox、google Docs、Zoom 之类企业的系统设计。
说明:本文基于我的个人研究。有些东西可能不是 100% 准确,但我已经尽力保证它的准确性、信息和价值。
Uber 系统设计
图片来源:Geeks for Geeks
Uber 的技术可能看起来很简单,但当一个用户从应用程序发起一次乘车请求,一名司机到达将他们送往目的地的场景,这背后其实并不简单。
Uber 的基础设施由成千上万个服务和数兆字节的数据组成,来支持平台上的每次旅行。
这个系统主要是用 Python/ target=_blank class=infotextkey>Python 编写的,使用 SQLAIchemy 作为数据库的 ORM 层。实际的架构对于少数城市中相对少量的旅行来说是不错的。
这个公司的后端现在不仅仅被设计来处理出租车,它还可以处理食品外卖、货物快递等等。
了解更多:https://medium.com/@
narengowda/uber-system-design-8b2bc95e2cfe
YouTube 视频推荐算法
图片来源:KDNuggets
当用户看 YouTube 上的视频时,会在设备下方或右侧抛出一个推荐清单,用户可能会按照一定的顺序喜欢这些视频。
本文所描述的模型着重于两个主要目标。采用的广度 + 深度模型架构,结合了广度模型线性模型(记忆)的功能以及深度神经学习(泛化)的功能。广度 + 深度模型将为每个定义(参与度和满意度)的目标生成预测。
了解更多:
https://www.kdnuggets.com/2019/10/youtube-recommending-next-video.html
Twitter 系统设计
图片来源:code karle
通过视频解说来获取更多细节:
https://youtu.be/EkudBdvbDhs
Spotify 音乐推荐算法
图片来源:Harvard Business School
Spotify 是如何使用机器学习来推荐音乐的呢?
该公司同时使用了三种推荐模型和其它技术。哈佛商学院描述的这三种模型是:
了解更多:
https://digital.hbs.edu/platform-rctom/submission/discover-weekly-how-spotify-is-changing-the-way-we-consume-music/
Netflix 系统设计
图片来源:Medium / Narendra L
Netflix 运行在两种云上:AWS 和 Open Connect。这两种云必须毫无差错地协同工作,从而提供无休止的让用户满意的视频。
三个主要的组件扮演了主要角色:CDN、后端和客户端。
任何不涉及视频服务的事务都在 AWS 中处理。在你点击播放之后发生的任何事都由 Open Connect 处理。Open Connect 是 Netflix 的定制全球化内容交付网络(CDN)。
了解更多:https://medium.com/@
narengowda/netflix-system-design-dbec30fede8d
Netflix 针对个性化和推荐的系统架构
图片来源:Netflix Tech Blog
Netflix 使用了论文中提到的各种排名模型,但是没有具体说明每种模型的架构。下面是对它们的总结:
个性化视频排名(Personalised Video Ranking, PVR) — 这个算法是一种通用算法,通常根据特定标准(例如暴力电视节目、美国电视节目、浪漫爱情等)过滤目录,并结合用户特性和流行度等辅助特性。
Top-N 视频排名 — 与 PVR 类似,只是它只查看排名的最前面和整个目录。它用一些指标(即查看目录排名的头部,例如 MAP@K、 NDCG)进行优化。
了解更多:
https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Fnetflixtechblog.com%2Fsystem-architectures-for-personalization-and-recommendation-e081aa94b5d8
Flipkart / Amazon System Design
图片来源:code karle
设计类似 Amazon 或 flipkart 这样的平台时的功能要求:
非功能性要求:
通过视频解释查看更多细节:
https://youtu.be/EpASu_1dUdE
Signal 系统架构
图片来源:scc
Signal 是一个用于 Android 和 IOS 的端到端加密通信应用程序,有点儿像 WhatsApp,但是是开源的。它使用 TCP/IP(互联网)来发送一对一和群组消息,包括文本、文件、语音信息、图片和视频,以及一对一语音和视频通话。使用标准蜂窝移动电话号码进行用户识别。
了解更多:
https://sorincocorada.ro/signal-messanger-architecture/)
Book My Show 系统设计
图片来源:GFG
在这篇文章中,我们将了解“如何设计一个类似 BookMyShow 的在线订票系统”。
BookMyShow 基于微服务架构构建。我们可以单独查看各个组件。在我们开始设计一个在线订票系统之前,可以先看看 Book My Show 使用的服务和技术。
BookMyShow 使用的技术:
了解更多:
https://www.geeksforgeeks.org/design-bookmyshow-a-system-design-interview-question/
Airbnb 系统设计
图片来源:code karle
像 Airbnb、Booking.com 和 OYO 这样的度假租赁巨头,是如何提供这样顺畅的从信息展示,到预订再到支付的流程的?从头到尾没有一点问题!可以通过视频看看他们的系统设计、技术、工作等方方面面。
通过视频了解更多细节:
https://youtu.be/YyOXt2MEkv4
TikTok's 机器学习支持的推荐引擎
图片来源:TDS
TikTok 的推荐系统设计的原型是以用户为中心的设计。简单来说是,TikTok 只会推荐你喜爱的内容,从冷启动调整到对活跃用户的明确推荐。
TikTok 从不向公众或技术社区透露其核心算法。但是,基于该公司发布的零碎信息,以及极客们使用逆向工程技术发现的线索,提出了这个推荐流程。
我们可以将这个工作流拆分成几个步骤
步骤 0: 针对用户生成内容(User Generated Content, UGC)的双重审计系统
步骤 1: 冷启动
步骤 2: 基于权重的指标
步骤 3: 用户画像投射
步骤 4: 时尚潮流池
其它步骤: 延迟点火(Delayed Ignition)
了解更多:
https://medium.com/m/global-identity?redirectUrl=https%3A%2F%2Ftowardsdatascience.com%2Fwhy-tiktok-made-its-user-so-obsessive-the-ai-algorithm-that-got-you-hooked-7895bb1ab423
Google Maps 系统设计
图片来源:code karle
设计一个类似谷歌地图系统的功能要求:
非功能性需求
通过视频查看更多细节:
https://youtu.be/jk3yvVfNvds
Amazon 产品推荐算法
图片来源:AI with python
这个算法包含 5 个主要概念:
Dropbox 系统设计
图片来源:Medium / Narendra L
你有没有想过这些服务是如何在内部提供文件上传、更新、删除和下载功能的?
下面是这些系统如何在底层工作的高级解释:
视频解释:
https://youtu.be/U0xTu6E2CT8
Google Docs 系统设计
图片来源:Medium Narendra L
Google Docs 系统设计分为 2 个视频。在第一个视频中,你将了解操作转换和差别同步。在第二个视频中,你会了解使用微服务架构和 API 网关的系统组件。
视频解释 1:
https://youtu.be/2auwirNBvGg
视频解释:
https://youtu.be/U2lVmSlDJhg
Zoom 系统设计
图片来源:code karle
到目前为止,谁还没使用过 Zoom、Microsoft teams、WebEx 或某种视频会议平台呢!现在甚至在 Zoom 上上课。如果你正在阅读本文,我确定你会对它是如何工作的感兴趣。因此,通过访问下面给出的视频链接,我确信在视频结束时,你能够成功设计一个视频会议系统。
视频解释:
https://youtu.be/G32ThJakeHk
Yelp 系统设计
图片来源:Medium / Narendra L
让我们设计任何基于位置的服务,类似 Yelp 或 Trip Advisor,用户可以搜索附近的旅游景点、餐馆、剧院或超市等,用户还能够登录,添加或浏览评论、图片和景点评论。我们将以 Yelp 为例来了解相关的一切。
视频解释:
https://youtu.be/TCP5iPy8xqo
Cricbuzz 系统设计
图片来源:Medium / Narendra L
视频解释:
https://youtu.be/exSwQtMxGd4
股票交易系统设计
图片来源:Tech Dummies
系统设计的目标:
视频解释:
https://youtu.be/dUMWMZmMsVE
原文链接:
https://www.theinsaneapp.com/2021/03/system-design-and-recommendation-algorithms.html