进入WEB2.0时代,各类标新立异的网站层出不穷,并且web 2.0所倡导的紧密用户交互性更是对网站开发水平提出更高要求,尤其在数据库的读写操作频率上,和web1.0相比瞬间死锁、系统崩溃是一触即发。
如果仅仅通过优化你程序代码、采用优秀的MVC开放框架、优化数据库查询语句和索引等已经让开放人员略显心有余而力不足,此时必须从网站的全局架构、用户访问惯性上权衡分析,但是对于我们大多数技术人员恰恰缺少的就是这方面的经历。
程序编码是内功、系统架构 是武林秘笈,二者合并方可一统江湖^_^。
下面收集整理 网络讨论较广的几个网站架构经验谈:
1. PlentyOfFish 网站架构学习 http://www.dbanotes.net/arch/plentyoffish_arch.html
采取 Windows 技术路线的 Web 2.0 站点并不多,除了 MySpace ,另外就是这个 PlentyOfFish。这个站点提供 “Online Dating” 服务。一个令人津津乐道的、惊人的数据是这个只有一个人(创建人Markus Frind)的站点价值 10 亿,估计要让很多人眼热,更何况 Markus Frind 每天只用两个小时打理网站–可操作性很强嘛。
2. 从LiveJournal后台发展看 大型网站系统架构以及性能优化方法 http://www.example.net.cn/archives/2006/03/olivejournaloio.html
LiveJournal是99年始于校园中的项目,几个人出于爱好做了这样一个应用,以实现以下功能:
* 博客,论坛 * 社会性网络,找到朋友 * 聚合,把朋友的文章聚合在一起
LiveJournal采用了大量的开源软件,甚至它本身也是一个开源软件。
在上线后,LiveJournal实现了非常快速的增长:
* 2004年4月份:280万注册用户。 * 2005年4月份:680万注册用户。 * 2005年8月份:790万注册用户。 * 达到了每秒钟上千次的页面请求及处理。 * 使用了大量MySQL服务器。 * 使用了大量通用组件。
3. YouTube 的架构扩展 http://www.dbanotes.net/opensource/youtube_web_arch.html
在西雅图扩展性的技术研讨会上,YouTube 的 Cuong Do 做了关于 YouTube Scalability 的报告。视频内容在 Google Video 上有(地址),可惜国内用户看不到。 Kyle Cordes 对这个视频中的内容做了介绍。里面有不少技术性的内容。值得分享一下。(Kyle Cordes 的介绍是本文的主要来源)
4. WikiPedia 技术架构学习分享 http://www.dbanotes.net/opensource/wikipedia_arch.html
维基百科(WikiPedia.org)位列世界十大网站,目前排名第八位。这是开放的力量。
来点直接的数据:
* 峰值每秒钟3万个 HTTP 请求 * 每秒钟 3Gbit 流量, 近乎375MB * 350 台 PC 服务器
5. Tailrank 网站架构 http://www.dbanotes.net/review/tailrank_arch.html
每天数以千万计的 Blog 内容中,实时的热点是什么? Tailrank 这个 Web 2.0 Startup 致力于回答这个问题。
专门爆料网站架构的 Todd Hoff 对 Kevin Burton 进行了采访。于是我们能了解一下 Tailrank 架构的一些信息。每小时索引 2400 万的 Blog 与 Feed,内容处理能力为 160-200Mbps,IO 写入大约在10-15MBps。每个月要处理 52T 之多的原始数据。Tailrank 所用的爬虫现在已经成为一个独立产品:spinn3r。
6. LinkedIn 架构笔记 http://www.dbanotes.net/arch/linkedin.html
LinkedIn 雇员有 180 个,在 Web 2.0 公司中算是比较多的,不过人家自从 2006 年就盈利了,这在 Web 2.0 站点中可算少的。用户超过 1600 万,现在每月新增 100 万,50% 会员来自海外(中国用户不少,也包括我).
7. Yahoo!社区架构 http://www.dbanotes.net/arch/yahoo_arch.html
旧金山举行的 QCon 会议带给我们很多新鲜的信息。虽然没机会参加,但是看看各个网站”晒架构”也是个比较过瘾的事情。请参观并收藏这个页面:Architectures you’ve always wondered about。
8. Craigslist 的数据库架构 http://www.dbanotes.net/database/craigslist_database_arch.html
Craigslist 绝对是互联网的一个传奇公司。根据以前的一则报道:
每月超过 1000 万人使用该站服务,月浏览量超过 30 亿次,(Craigslist每月新增的帖子近 10 亿条??)网站的网页数量在以每年近百倍的速度增长。Craigslist 至今却只有 18 名员工(现在可能会多一些了)。
9. Fotolog.com 的技术信息拾零 http://www.dbanotes.net/review/fotolog_arch.html
尽管是世界上最大的图片服务网站, Fotolog.com 在国内的名气并不是很响亮, 每当提到图片服务, 很多人第一个会想起 Flickr. 但实际上 Fotolog 也的确是很猛的, Alexa 上的排名一直在 Flickr 前面, 目前注册用户超过 1100 万. 而前不久也卖了一个好价钱, 9000 万美金. 算下来的话, 1 个注册用户大约 9 美金. Yupoo 的刘平阳可以偷着算算自己的网站如果卖给老外是怎样一个价格了.
10. Digg 网站架构 http://www.dbanotes.net/arch/digg_arch_cache_and_shard.html
Digg 工程师采用 LAMP (Linux, Apache, MySQL and PHP) 模式。这个 Alexa 排名在 100 左右的、自我估价 1.5 亿美金的站点目前有超过 100 台的 PC 服务器(足够少了),可以粗略分成三个部分:数据库服务器,Web 服务器,搜索服务器。
11. Amazon 的 Dynamo 架构 http://www.dbanotes.net/techmemo/amazon_dynamo.html
我在 DBAnotes.net 上记录过不少比较大的网站架构分析(eg: eBay [1], eBay [2]) ,Amazon 一直找不到太多的资料。国庆期间读到了一篇关于 Amazon Dynamo 的论文,非常精彩。Amazon Dynamo 这个高可用、可扩展存储体系支撑了Amazon 不少核心服务.
12. 财帮子(caibangzi.com)网站架构 http://www.dbanotes.net/arch/caibangzi_web_arch.html
财帮子(caibangzi.com) 定位在”基金理财社区”。是国内访问量最大的基于 Ruby on rails 的 startup 项目。“理财”这个词据说是光大银行发明的,且不去管,不可否认的是,目前国内”理财”是个很有潜力的切入点。财帮子网站潜在用户群还是很大的。
13. 了解一下 Technorati 的后台数据库架构 http://www.dbanotes.net/web/technorati_db_arch.html
目前处理着大约 10Tb 核心数据, 分布在大约 20 台机器上.通过复制, 多增加了 100Tb 数据, 分布在 200 台机器上. 每天增长的数据 1TB. 通过 SOA 的运用, 物理与逻辑的访问相隔离, 似乎消除了数据库的瓶颈. 值得一提的是, 该扩展过程始终是利用普通的硬件与开源软件来完成的. 毕竟 , Web 2.0 站点都不是烧钱的主. 从数据量来看,这绝对是一个相对比较大的 Web 2.0 应用.
14. 说说大型高并发高负载网站的系统架构 http://www.toplee.com/blog/?p=71
我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构 升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。
15. 大型高负载网站架构 的感想 http://atman.memoab.com/articles/194
昨日认识了位健谈的IT人,原在verycd作系统管理的叶宁(这哥们现飘泊去见首都人民了).
以前sweater给我介绍的他写的《大型高负载网站架构和应用初探》, 他总结了很多信息和数据,感谢叶宁的辛劳成果. 这里我也想就此PPT写些自己的感想