从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
Web网站架构案例分析从优酷网浅谈大型网站的架构和优化
邱丹 qiudan@http://www.77cn.com.cnQCon 2009北京
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
议
程
架构和环境
Web架构的8个特性 优酷网案例 网络优化
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
Part I
架构和环境
适应天上飞翔:鸟拥有翅膀 适应水里呼吸:鱼拥有鳃
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
通用架构的梦想
愿景:让拥有鳃和翅膀的人,能够适应各种环境
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
结果:被具体环境退化或替换
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
架构的进化和退化
进化原理 -寻找最适合的 退化原理 -简化不必要的
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
架构师的职责
初始环境 while(true){寻找适应环境的结构;/*进化*/简化结构;/*退化*/环境改变;}
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
Part II Web环境下架构8个特性
可扩展 (Scalability)在线升级效率可靠性可理解简单核心独立性模块化
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
Part III网站架构案例
关于优酷网(http://www.77cn.com.cn)-中国大陆领先的在线视频网站
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
网站规模(08年9月)20000 15000 10000 5000 0万
VV: 1.6亿+ 日上传视频: 6万+
VV(播放数)/日
PV/日Source: iUserTracker 2008年9月
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
网站核心业务带来的架构特性
可扩展 (Scalability)在线升级效率可靠性可理解简单核心独立性模块化
√√
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
创世纪:网站的初始环境
2006年下半年 500家视频网站存在,但规模都不大 部分互联网用户关注 巨大的用户潜力
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
拥抱开源世界
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
前端框架
Browser: http://www.77cn.com.cn/<module>/<method>/[params] Front Framework: hook(request){ module, method, params<-- request.url response= module.php->method(params)
echo reponse} module1.php: method1(params){ return“<p>hello, world!</p>”}
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
简单前端框架满足的特性
模块分离,多人开发 无状态:前端可扩展 分层,UI分离 没有采用第三方Web框架 自建CMS解决掉大部分页面显示
可扩展 (Scalability)在线升级效率可靠性可理解简单核心独立性模块化
√
√√√√√√√√
从优酷网浅谈大型网站的架构和优化:Web环境下架构8个特性1.可扩展(Scalability)2.在线升级3.效率4.可靠性5.可理解6.简单核心7.独立性8.模块化
CMS前端架构(局部)