大型视频网站的技术架构方案
国内的不清楚,给你看看YOUTUBE的
YouTube的架构扩展
在西雅图扩展性的技术研讨会上,YouTube的CuongDo做了关于YouTubeScalability的报告。视频内容在GoogleVideo上有(地址),可惜国内用户看不到。
KyleCordes对这个视频中的内容做了介绍。里面有不少技术性的内容。值得分享一下。(KyleCordes的介绍是本文的主要来源)
简单的说YouTube的数据流量,"一天的YouTube流量相当于发送750亿封电子邮件",2006年中就有消息说每日PV超过1亿,现在更夸张了,"每天有10亿次下载以及6,5000次上传",真假姑且不论,的确是超乎寻常的海量国内的互联网应用,但从数据量来看,怕是只有51com有这个规模但技术上和YouTube就没法子比了
1Web服务器
YouTube出于开发速度的考虑,大部分代码都是Python开发的。Web服务器有部分是Apache,用FastCGI模式。对于视频内容则用Lighttpd。据我所知,MySpace也有部分服务器用Lighttpd,但量不大。YouTube是Lighttpd最成功的案例。(国内用Lighttpd站点不多,豆瓣用的比较舒服。byFenng)
2视频
视频的缩略图(Thumbnails)给服务器带来了很大的挑战。每个视频平均有4个缩略图,而每个Web页面上更是有多个,每秒钟因为这个带来的磁盘IO请求太大。YouTube技术人员启用了单独的服务器群组来承担这个压力,并且针对Cache和OS做了部分优化。另一方面,缩略图请求的压力导致Lighttpd性能下降。通过HackLighttpd增加更多的worker线程很大程度解决了问题。而最新的解决方案是起用了Google的BigTable,这下子从性能、容错、缓存上都有更好表现。看人家这收购的,好钢用在了刀刃上。
出于冗余的考虑,每个视频文件放在一组迷你Cluster上,所谓"迷你Cluster"就是一组具有相同内容的服务器。最火的视频放在CDN上,这样自己的服务器只需要承担一些"漏网"的随即访问即可。YouTube使用简单、廉价、通用的硬件,这一点和Google风格倒是一致。至于维护手段,也都是常见的工具,如rsync,SSH等,只不过人家更手熟罢了。
3数据库
YouTube用MySQL存储元数据--用户信息、视频信息什么的。数据库服务器曾经一度遇到SWAP颠簸的问题,解决办法是删掉了SWAP分区!管用。
最初的DB只有10块硬盘,RAID10,后来追加了一组RAID1。够省的。这一波Web20公司很少有用Oracle的(我知道的只有Bebo,参见这里)在扩展性方面,路线也是和其他站点类似,复制,分散IO。最终的解决之道是"分区",这个不是数据库层面的表分区,而是业务层面的分区(在用户名字或者ID上做文章,应用程序控制查找机制)
YouTube也用Memcached
大学学Python到底有啥用
Python小贴士
学Python
到底有什么用!
七大就业方向
总有一个适合你!
1Python爬虫工程师
爬虫技术就是用Python收集和爬
取互联网的信息,也是小伙伴们入坑
Python的第一驱动力。
爬虫技术之所以受宠是由干它能
大大地提高我们的工作效率。学会
Python爬虫后, 即使不做程序员的
工作也能加分不少。
(友情提示:注意法律风险)
技能要求
前端基础、Python爬虫库、JS反
爬、数据库等。
2Python数据分析师
在数据和黄金一样宝贵的时代,
对干许多公司而言,产品都建立在对
用户的分析之上。
所以, Python数据分析师也成了
目前最火的职业之一, 而Python是
目前数据分析业务中,最常用的语
言。
技能要求
统计学基础、Python的数据分析库
(Pandas、NumPy、mat plo lib) 、数
据库等。
3Web开发Python后端
Python有很多优秀的Web开发
框架, 如Flask、Django、Boot star
等,可以帮助你快速搭建一个网站。
像知平、豆瓣这样的大厂,最早
的网站都是用Python搭建的, 而国
外则更多, 如:YouTube、Insta gram
等代表世界顶级流量的大站。
技能要求
前端基础、Python基础、主流
Python Web框架(Flask、Django
等)。
4Python游戏开发
我们经常能看到在互联网上有人
分享自己制作的一些有意思的
Python小游戏, 求代码的小伙伴也
是络绎绝。
Python游戏开发的招聘集中在游
戏服务器领域,主要负责网络游戏的
服务器功能开发、性能优化等工作。
技能要求
Python、Python Web框架、
Linux、数据库、Ng in x等。
5Al人工智能工程师
人工智能是目前最火的方向之
一,薪资待遇很高,要求也相对较高。
Python是人工智能时代的首选
语言,不管是机器学习还是深度学
习,最常用的工具和框架都需要用
Python调用, 如:Numpy、pandas、
matplotlib、Py Torch等。
技能要求
统计学基础、Python、数据分析
库、机器学习、深度学习框架等。
6自动化运维工程师
运维工程师经常要监控上百台机
器的运行,或同时部署的情况。
使用Python可以自动化批量管
理服务器,起到1个人顶10个人的效
果。自动化运维也是Python的主要
应用方向之一,它在系统管理、文档
管理方面都有很强大的功能。
技能要求
Python、shell、Linux、数据库、
open pyx l库等
7自动化测试工程师
测试的工作是枯燥和重复的,在
过去,每次产品更新,都要重复测试
一遍,效率低而且容易出错。
Python提供了很多自动化测试
的框架, 如Selenium、Py test等, 避
免了大量的重复工作, Python自动
化测试也变得越来越流行。
技能要求
Python、自动化测试框架、Linux等
python环境在小鸟云云服务器装好后,就有一个IDLE工具,你找一下安装目录,自带的编辑器,在任意目录新建一个 aapy 文件,用记事本和IDLE工具都行,输入print("Hello World"),如果你使用的是IDLE,直接按F5,就能查看结果,如果用记事本,打开CMD,进入这个目录,输入命令python aapy就出来结果了。
0条评论