第301章 视频网站-《重生之大叔崛起》
第(2/3)页
就拿未来世界上最大的视频网站youtube的架构扩展来说说吧!
一,web服务器!
youtube出于开发速度的考虑,大部分代码都是python开发的。web服务器有部分是apache,用astcgi模式。对于视频内容则用lighttpd。据我所知,myspace也有部分服务器用lighttpd,但量不大。youtube是lighttpd最成功的案例。
二,视频!
视频的缩略图给服务器带来了很大的挑战。每个视频平均有4个缩略图,而每个 web 页面上更是有多个,每秒钟因为这个带来的磁盘io请求太大。youtube技术人员启用了单独的服务器群组来承担这个压力,并且针对cache和os做了部分优化。
另一方面,缩略图请求的压力导致lighttpd性能下降。通过hacklighttpd增加更多的worker线程很大程度解决了问题。而最新的解决方案是起用了google的bigtable,这下子从性能、容错、缓存上都有更好表现。看人家这收购的,好钢用在了刀刃上。
出于冗余的考虑,每个视频文件放在一组迷你cluster上,所谓‘迷你cluster’就是一组具有相同内容的服务器。最火的视频放在cdn上,这样自己的服务器只需要承担一些‘漏网‘的随即访问即可。youtube使用简单、廉价、通用的硬件。这一点和google风格倒是一致。至于维护手段,也都是常见的工具,如rsync,ssh等。只不过人家更手熟罢了。
三,数据库!
youtube用mysql存储元数据用户信息、视频信息什么的。数据库服务器曾经一度遇到swap颠簸的问题,解决办法是删掉了swap分区!管用。
最初的db只有10块硬盘,raid10,后来追加了一组raid1。够省的。这一波公司很少有用oracle的。在扩展性方面,路线也是和其他站点类似,复制。分散io。最终的解决之道是‘分区‘,这个不是数据库层面的表分区,而是业务层面的分区!
那么需要哪方面的技术人才呢,托前世在视频网站的那个工作。苏达还恰好知道九点!
一,架构知识!
架构是大型网站开发的重要部分。开发者已经从rails,django等公司提供的网站架构工具中收益,因为架构工具可以帮助完成那些需要一定编程知识的重复性的任务。如果你拥有领先的架构技术。你的择业面将非常广阔。
二。窗体小部件开发!
窗体小部件是一个嵌入网页的迷你应用程序,通常也可以下载到windows或者mac桌面下运行。它让数据变得便与携带而且更具交互性。比较出名的像yahoo、widgets和aol、music、widgets。窗体小部件开发除了需要掌握网络应用程序开发所需的语言知识,还需要精通javascript和lash知识。
三,内容管理系统主题定制!
第(2/3)页