您当前的位置:首页 > 电脑百科 > 软件技术 > 软件技术

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因

时间:2023-11-01 12:30:00  来源:51CTO  作者:

作者 | NK

策划 | 言征 

2005 年 2 月, 美国加利福尼亚州。全球知名的在线支付服务公司PayPal已经走过 6 年零 2 个月的时间,3 名早期员工就像发现了互联网世界的流量密码一样,开始寻找属于他们的机会。

最后,他们希望建立一个分享视频的平台。后来这个在车库里诞生的平台,就是大名鼎鼎的YouTube

最初,他们的财力有限,只能通过信用卡债务和基础设施借款为 YouTube 筹集资金。但财务上的紧张,也倒逼着他们打造出一套出色的可扩展性技术。

第二年,他们平台的视频日播放量就达到了 1 亿。更令人出乎意料的是,他们只用了 9 名工程师就做到了这一点。 

YouTube 是如何做到的?下面为大家一一揭开当年的设计要点。(Ps:乍看起来,朴实无华,大巧不工。)

1、神奇飞轮

他们采用一种“飞轮”的方法去收集和分析系统数据,以便于可扩展性的实现。他们的工作流程是一个不断循环的过程:识别瓶颈→修复瓶颈→喝水→睡觉。这种方法好处在于避免了对高端硬件的需求(不用大规模部署),降低了硬件成本。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因可扩展性循环(Scalability loop)

2、看似无聊、却大巧不工的技术栈

他们让技术堆栈保持简单,并使用经过验证的技术。他们的技术堆栈绝对让你想象不到:

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因YouTube 技术栈

  • MySQL 存储元数据:视频标题、标签、描述和用户数据。因为修复 MySQL 中的问题很容易。 
  • Lighttpd Web 服务器提供视频服务。 
  • 使用linux作为操作系统。他们使用 Linux 工具来检查下列系统行为:strace、ssh、rsync、vmstat 和 tcpdump。 
  • 应用程序服务器上的 Python/ target=_blank class=infotextkey>Python。因为它提供了许多可重用的库,而且他们不想重新发明轮子。换句话说,Python 允许快速灵活的开发。根据他们的测量,Python 从来都不是瓶颈。值得注意的是,他们使用 Python 到 C 的编译器和 C 语言扩展来运行 CPU 密集型任务。

3、保持简单

他们认为软件架构是可扩展性的根源。他们没有盲目追求“流行语”去扩大规模。因此,他们保持架构简单——使代码审查更容易。这使他们能够快速重新架构以满足不断变化的需求。例如,他们从约会网站转向视频共享网站。

此外,他们还保持网络路径简单。因为网络设备具有可扩展性限制。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因硬件成本

他们还使用了商品硬件。它使他们能够减少功耗和维护费用,并保持较低的成本。

此外,他们使规模感知代码与应用程序开发相对独立。

4、选择你的主战场

他们将许多不重要的问题给外包出去了。因为他们想专注于重要的事情。他们没有时间或资源来构建自己的基础设施来提供流行视频。于是,他们把热门视频放到了第三方CDN上。好处:

  • 低延迟。由于用户的网络跳数较少 ;
  • 高性能。因为它提供的是内存中的视频; 
  • 高可用性。因为自动复制。

他们从同地数据中心提供受欢迎度稍低些的视频。并采用软件RAID,通过多磁盘并行访问来提高性能。还调整了他们的服务器以防止缓存抖动。

他们将基础设施保留在同一地点的数据中心,有两点原因。其一,可以轻松调整服务器以满足其需求。其二,方便自己的合同谈判。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因选择你的主战场;外包问题以释放资源

每个视频有 4 个缩略图。因此,他们在服务小对象时面临着问题:大量磁盘查找和文件系统限制。因此,他们将缩略图放入 BigTable 中 。它是一种分布式数据存储,具有许多优点:通过对文件进行聚类来避免小文件问题、提高性能、多级缓存低延迟、易于配置。

他们还伪造数据以防止昂贵的交易费用。例如,他们伪造视频观看次数并异步更新计数器。当今近似正确性的一种流行技术是:布隆过滤器,它是一种概率数据结构。

5、可扩展性三大支柱

YouTube 依赖可扩展性的三大支柱:无状态、复制和分区。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因可扩展性的 3 个支柱

他们保持网络服务器无状态(stateless),并通过复制进行扩展。

他们复制replicated数据库服务器以实现读取可扩展性和高可用性。并对副本之间的流量进行负载平衡。但这种方法引起了问题:复制滞后和写入可扩展性问题。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因复制与分区

因此,他们对数据库进行了分区,以提高写入可扩展性、缓存局部性和性能。partitioned它还将硬件成本降低了 30%。

此外,他们还研究了数据访问模式来确定分区级别。例如,他们研究了流行的查询、连接和事务一致性,并选择用户作为分区级别。

6、扎实的工程团队

知识丰富的团队是可扩展性的重要资产。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因跨学科团队

他们保持较小的团队规模t以改善沟通:仅 9 名工程师。他们的团队非常擅长跨学科技能。

7、不要重复自己的话

他们使用缓存cache来防止重复昂贵的操作。它使他们能够扩展浏览量。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因多级缓存可扩展

他们还在多个级别实现了缓存 - 并且减少了延迟。

8、排序:重要的指标要优先

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因对重要流量进行排名;二八原则(帕累托原则)

他们将视频观看流量优先,排在其他所有流量之上。因此,他们为视频观看流量保留了专用资源集群。这一点提供了高可用性。

9、防止“雷群”

如果许多并发客户端查询服务器,就会出现雷群问题。它会降低性能。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因雷群(The Thundering Herd)问题

他们使用抖动来防止雷群问题。例如,他们为流行视频的缓存过期添加了抖动。

10、打持久战

他们专注于宏观层面的事物:算法和可扩展性。他们进行了快速的黑客攻击,以赢得更多时间来构建长期解决方案。例如,使用 Python 消除不良 API 以防止短期问题。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因冒险与回报

他们容忍组件中的缺陷。当遇到瓶颈时:他们要么重写组件,要么删除它。

他们用效率换取可扩展性。有四个例子:

  • 他们选择了 Python 而不是 C; 
  • 他们在组件之间保持清晰的界限以进行横向扩展。和容忍的延迟;
  • 他们优化了软件,使其足够快。但并不痴迷于机器效率; 
  • 他们根据带宽可用性从服务器位置提供视频。并且不基于延迟。

11、适应性进化

他们调整了系统以满足他们的需求。例子:

  • 关键组件使用RPC而不是 HTTP REST,这提高了性能; 
  • 自定义BSON作为数据序列化格式。它提供了高性能;
  • 应用程序某些部分的最终一致性以实现可扩展性。例如,用户评论中的“读你所写”的一致性模型 ;
  • 学习 Python 是为了防止常见的陷阱。当然,还有分析需求的原因;
  • 定制开源软件;
  • 优化数据库查询; 
  • 使非关键实时任务异步。

YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因编码原则

他们没有浪费时间编写代码来限制人们。相反,采用了出色的工程实践- 编码约定来改进其代码结构。

——后记—— 

2006 年 11 月,谷歌以 16.5 亿美元的价格收购了 YouTube,并把它当做一个子公司来运营。时至今日,它依然是视频分享市场的领导者,每天有 50 亿次视频浏览量。

据《福布斯》报道,YouTube 创始人的净资产超过 1 亿美元。YouTube创立仅 20 个月便成视频搜寻界的龙头,可谓是缔造了一个硅谷奇迹。

参考链接:https://newsletter.systemdesign.one/p/youtube-scalability



Tags:YouTube   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
报告称 OpenAI 采集了超一百万小时的 YouTube 视频来训练 GPT-4
IT之家 4 月 7 日消息,本周早些时候,《华尔街日报》报道称 AI 公司在收集高质量训练数据方面遇到了困难。今天,《纽约时报》详细介绍了 AI 公司处理此问题的一些方法,其中涉及到...【详细内容】
2024-04-07  Search: YouTube  点击:(5)  评论:(0)  加入收藏
YouTube 为包含 AI 生成内容的视频制定新准则
AI 正在迅速改变内容的制作方式。现在,AI 模型可以书写文字、生成图像、制作视频,甚至可以合成听起来令人震惊的真实声音。随着这种技术变得越来越容易获得,公司也开始努力解决...【详细内容】
2024-03-19  Search: YouTube  点击:(17)  评论:(0)  加入收藏
Youtube第一网红吐槽马斯克“抠门”:X平台给的收入分成太少
美国社交媒体网红MrBeast周末对马斯克的X平台表示不满,认为该平台目前给予的广告收入分成太少,还不够他制作一则视频的成本的一个零头。MrBeast的真实姓名是吉米·唐纳...【详细内容】
2024-01-04  Search: YouTube  点击:(37)  评论:(0)  加入收藏
Tiktok、油管YouTube、Facebook平台定位及差异有哪些?
油管YouTube是一个国际原创视频内容平台,月活跃用户超过20亿。该平台的竞争优势在于游戏、搞笑和音乐等创意视频,并因与谷歌同源而增加品牌曝光权重,更容易被Google搜索到。Tik...【详细内容】
2023-12-14  Search: YouTube  点击:(53)  评论:(0)  加入收藏
YouTube推出创新人工智能功能:实时陪聊与评论总结,颠覆视频观看体验
近日,YouTube宣布推出突破性的新功能,一款全新的人工智能聊天机器人和评论汇总器,将彻底改变用户的视频观看体验。这款人工智能聊天机器人,将如同私人助手般在用户观看视频的过...【详细内容】
2023-12-11  Search: YouTube  点击:(126)  评论:(0)  加入收藏
YouTube运营技巧大全
YouTube在全球已经拥有了超过20亿的月活跃用户,作为从事外贸行业的你,如果还没有开始用YouTube做视频营销,那就要赶紧开始学习了。就像今天的抖音、快手一样,视频营销没有门槛,不...【详细内容】
2023-12-07  Search: YouTube  点击:(118)  评论:(0)  加入收藏
Google Bard现在可以帮你总结YouTube视频内容了
凭借新的扩展,谷歌Bard已经能够理解视频内容并响应用户的查询请求。换言之,用户现在可以通过这款AI聊天机器人,快速了解自己关注的YouTube视频大致表达了哪些内容。谷歌在11月2...【详细内容】
2023-11-29  Search: YouTube  点击:(56)  评论:(0)  加入收藏
YouTube推出可模仿著名歌手的AI工具,可用文字或哼唱创作歌曲
IT之家 11 月 16 日消息,YouTube 正在测试新的生成式 AI 功能,让用户可以通过输入文本或哼唱一段旋律来创作音乐。其中一个功能叫做 Dream Track,已经向平台上的一些创作者提供...【详细内容】
2023-11-17  Search: YouTube  点击:(82)  评论:(0)  加入收藏
YouTube 仅用 9 名工程师就能支持每天 1 亿次视频观看的 11 个原因
作者 | NK策划 | 言征 2005 年 2 月, 美国加利福尼亚州。全球知名的在线支付服务公司PayPal已经走过 6 年零 2 个月的时间,3 名早期员工就像发现了互联网世界的流量密码一样,开...【详细内容】
2023-11-01  Search: YouTube  点击:(214)  评论:(0)  加入收藏
YouTube涨粉270万后,李子柒能在抖音成功复出吗?
文/孙鹏越编辑/大风沉寂两年之久的李子柒,又又又传要复出的消息。10月7日,抖音官方发布的“美好奇妙夜”宣传片中,李子柒的身影阔别两年出现在短视频平台之上。虽然李子柒的镜...【详细内容】
2023-10-16  Search: YouTube  点击:(122)  评论:(0)  加入收藏
▌简易百科推荐
Win10/Win11和 macOS用户反馈:谷歌云服务“捆绑”系统 DNS 设置
IT之家 4 月 6 日消息,谷歌公司承认旗下的 Google One 订阅服务中存在问题,在 Windows 10、Windows 11 以及 macOS 系统上会更改系统 DNS 设置,变更为 8.8.8.8 地址。Google On...【详细内容】
2024-04-08    IT之家  Tags:Win10   点击:(4)  评论:(0)  加入收藏
微软 Edge 浏览器将迎来“内存限制器”功能,用户可自主控制 Edge 内存占用
IT之家 3 月 28 日消息,微软即将为其 Edge 浏览器带来一项实用新功能,据悉该公司正在测试一项内置的内存限制器,这项功能可以让用户限制 Edge 所占用的内存,防止浏览器超出内存...【详细内容】
2024-03-29    IT之家  Tags:Edge   点击:(14)  评论:(0)  加入收藏
一寸照片的大小如何压缩?四个实测效果很好的方法
一寸照片作为生活中常见的尺寸之一,常用于各类证件照与证明文件的制作。然而,受限于其较为狭小的尺寸,上传及打印过程中很容易出现尺寸超限的情况。所以,这个时候就需要对其体积...【详细内容】
2024-03-18  宠物小阿涛    Tags:压缩   点击:(12)  评论:(0)  加入收藏
手机投屏到电脑/电视的方法
方法一:Win10自带的投影功能1、将手机和电脑连接同一个无线网络。2、选择【开始】>【设置】>【系统】>【投影到此电脑】3、将默认的始终关闭的选项更改为所有位置都可用。4、...【详细内容】
2024-03-18    老吴讲I  Tags:投屏   点击:(14)  评论:(0)  加入收藏
微软商店怎么卸载应用 一分钟快速看懂!
微软商店怎么卸载应用 一分钟快速看懂!微软公司(Microsoft Corporation)是一家全球领先的科技企业,总部位于美国华盛顿州的雷德蒙德。成立于1975年,由比尔·盖茨和保罗&mid...【详细内容】
2024-02-27  婷婷说体育    Tags:微软商店   点击:(35)  评论:(0)  加入收藏
微软Edge浏览器新功能:手机上传 配对设备直接传文件
2月21日,微软最新的稳定版本Edge浏览器在Windows 11/10端加入了“手机上传”功能。这一功能允许用户直接从移动设备上上传文件,适用于所有网站,并且没有文件格式限制。要使用这...【详细内容】
2024-02-21    中关村在线  Tags:Edge   点击:(127)  评论:(0)  加入收藏
什么是虚拟机?你知道吗?
谁都没想到 Sun 公司技术如此的强大,却在之后的岁月里逐渐走向陨落,因为不懂销售和运营,导致公司财务逐渐出现亏损,在 2009 年,Oracle 公司以现金方式收购 Sun 公司,交易价格达 74...【详细内容】
2024-02-19  Java极客技术  微信公众号  Tags:虚拟机   点击:(43)  评论:(0)  加入收藏
怎么查看电脑使用记录
查看电脑使用记录是一项常见的操作,可以帮助用户了解自己或其他人在电脑上进行了哪些操作。下面是一个详细的解释,包括查看浏览历史、文件访问记录、应用程序使用记录以及其他...【详细内容】
2024-02-06  编程资料站    Tags:使用记录   点击:(81)  评论:(0)  加入收藏
电脑虚拟内存怎么设置?1分钟快速增加内存!
“我电脑里的内存好像不太够用,因此,我想在电脑里增加一些虚拟内存。不知道我应该怎么操作呢?有什么比较简单的此操作方法吗?” 虚拟内存是计算机系统内存管理的一种技术,它为程...【详细内容】
2024-02-06  数据蛙恢复专家    Tags:虚拟内存   点击:(61)  评论:(0)  加入收藏
新手制作ai写真都是用哪些工具?
春节即将来临,你的朋友圈是否已经被各种春节主题的个人写真刷屏了?看到那么多美照,你是否也心动了?其实,制作个人写真并不需要专门去拍摄,现在有很多AI写真软件可以轻松制作出自己...【详细内容】
2024-01-31  雨后海棠    Tags:ai写真   点击:(60)  评论:(0)  加入收藏
站内最新
站内热门
站内头条