前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >YouTube系统架构【YouTube如此,你应该更有信心】

YouTube系统架构【YouTube如此,你应该更有信心】

作者头像
架构师之路
发布2018-02-28 17:19:35
3.8K0
发布2018-02-28 17:19:35
举报
文章被收录于专栏:架构师之路架构师之路

上一期,和大家分享了12306架构优化思路,本期讲和大家分享YouTube架构设计,阅读了本文你将了解到YouTube初期架构是个什么样子,以此,增强自己站点架构设计的信心。

YouTube网站架构吐槽(上) YouTube作为一个几十亿级别流量的视频网站,其站点维护人员却少之又少,这些技术人员是如何设计YouTube架构,使其具备如此强大的抗压能力的呢,我们接着往下看。

核心技术要点 1)Apache:站点服务器 2)Python:Web应用主要是用Python搞定的 3)Linux(SuSe):操作系统(笔者:为何选用SuSe呢) 4)Mysql:数据库 5)psyco(笔者:psyco是Python的一个C语言扩展) 6)lighttpd:视频服务器没有用Apache,而是选择用了lighttpd

Web服务要点 1)使用NetScalar实现负载均衡,以及对静态内容的缓存(笔者:NetScalar是一个Web应用优化的解决方案,常用于Web应用加速,负载均衡,Web安全功能等) 2)Apache使用mod_fast_cgi模式(笔者:fastcgi是一个进程常驻的CGI模型,主要解决传统CGI模型令人诟病的“fork and execute”模型) 3)由一个Python服务专门负责Web请求的路由(笔者:那个时候Nginx还没有大行其道) 4)CPU密集型的复杂计算,使用psyco用C语言搞定(笔者:Python这个技术选型真的合适么) 5)Web层做页面缓存 6)数据层做数据缓存 7)对于某些数据,提前计算,并形成本地缓存,但这个优化没有大规模应用

Web服务效果 1)可以通过增加服务器来进行水平扩展 2)选择Python,是因为它开发效率高,互联网的时代,快速迭代和频繁发布的能力,你懂的(笔者:为什么不选php呢) 3)Python代码效率不是瓶颈所在,Web服务的瓶颈在RPC请求(笔者:意思就是,Web应用的瓶颈还是在后端) 4)响应时间基本控制在100ms以内(笔者:不评论了)

视频服务要点 1)每段视频不止存储在一个机器上,而是存储在一个小集群上,集群的优势在于A:更高的读性能B:可用性高C:数据在线备份(笔者:那个时代,视频的replica是比较先进的技术) 2)使用lighttpd作为视频的Web服务器,lighttpd的优势在于A:Apache太重B:有epoll模式C:有多进程模式,无论如何,YouTube希望同时处理更多的并发连接 3)热门视频放到CDN上 4)冷门视频,这里指PV低于20的视频,使用XXOO技术进行优化(笔者:这个地方没有看懂,原文是“Less popular content uses YouTube servers in various colo sites”,这个“colo”没懂是什么意思,如果你知道,请发消息给我) 5)由于视频的特殊性,尽量减少服务器与终端用户之间的路由器和交换机等设备 6)采用SATA磁盘进行随机寻道优化

视频预览图要点 1)用单独的集群存储预览图(笔者:你猜的没错,预览图就是存在文件系统上的) 2)使用squid作为Apache的前端(笔者:squid是一个流行的Web服务器反向代理,常用来做静态文件访问加速,理解为一个缓存服务吧) 3)未来准备使用BigTable来做预览图的存储

数据库要点 1)数据库使用Mysql,当然,用它只是来存储元数据 2)和其他站点应用一样,YouTube走过了单机,主从,水平切分的过程 3)主服务器用硬件条件较好的机器,使用多进程多实例模式;从服务器使用硬件条件差一点的机器,使用单实例模式 4)读写分离

经验教训 1)坚持就是胜利,解决短期问题的创新方案有风险,需要慎重。一直坚持,一定能找到长期方案 2)找到主要矛盾并集中资源解决 3)有选择性合作,不要害怕将项目的关键部分外包,例如YouTube的CDN 4)keep it simple,从简思想,不多说了 5)数据分隔,水平拆分 6)瓶颈的迭代优化,包括软件层,操作系统层,硬件层 7)团队是成功的基石

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档