记得在大学里不止一次关注网站架构方面的东西了,但每次都是泛泛了解,也没有着重记录,一段时间后对各种架构的思想也就模糊了。这几天不知怎么的又心血来潮(可能是快毕业了冲动了)想深入了解一下网站架构方面的知识,并想通过这次来总结一下网站架构,记录一点东西供自己以后翻阅,也给那些希望了解这方面知识的朋友提供一点点有用的信息,下面是我这次学习的总结笔记,有什么写得不妥的地方还请大家指出,还有希望这篇随笔能抛砖引玉,大家各抒己见。
1、MySpace架构
回顾了MySpace的成长史,真是让人惊叹,他的架构基本经历了五个里程碑,每个阶段都是显得那么仓促,那么无奈,那么坎坷,又是那么的精彩,网站为了生存只能想尽一切办法去优化系统架构,让用户满意。他给我们后人的启示是要尽早发现系统的瓶颈,设计师在设计时要有前瞻思想,否则今后有可能也要这样仓促的升级你的产品。这里是“五个里程碑”的具体介绍。
2、Flickr网站架构总结
Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被微软看中成为Vista壁纸御用摄影师。
--Pair of ServerIron's做负载均衡
--Squid做html和照片的缓存
--Memcached做数据缓存
--尤其是mysql数据库采用master-slave和shards技术实现了mysql数据库的负载均衡,解决了数据库的瓶颈,达到了数据库横向扩展的目标。
这里是他详细的架构描述
3、YouTube架构总结
这个貌似在国内是被和谐的,要翻墙才能访问(不知到底何故)。看看他的架构:--NetScaler用于负载均衡和静态内容缓存
--使用lighttpd作为Web服务器来提供视频服务
--CDN在多个地方备份内容,这样内容离用户更近的机会就会更高
--使用Google的BigTable,一个分布式数据存储、数据库分成shards,不同的用户指定到不同的shards、使用BigTable将图片备份到不同的数据中心,代码查看谁是最近的
这里是YouTube详细架构描述
4、PlentyOfFish架构总结
这个我觉的最神奇了,一个人每天花2个小时,可以维护一个每天3000W PV的,而且是基于.NET的(呵呵,终于给我们.net程序员一个好榜样了)。简述他的架构:--用Microsoft Windows操作系统作为服务器
--使用ASP.NET技术
--使用IIS作为Web容器
--用Akamai CDN来缓存网页
--用Foundry ServerIron 来做负载均衡
--sqlserver采用master-slave架构,两台负责read操作,master那台负责写操作
--所有的request数据都使用了gzip压缩
PlentyOfFish详细架构描述
5、WikiPedia架构总结
维基百科(Wikipedia)是一个基于Wiki技术的全球性多语言百科全书协作计划,同时也是一部在网际网路上呈现的网路百科全书,其目标及宗旨是为全人类提供自由的百科全书──用他们所选择的语言来书写而成的,是一个动态的、可自由和的全球知识体。
--GeoDNS让用户能够访问离他地域最近的Web服务器
--用LVS实现负载均衡
--用Lighttpd做图片服务器
--使用MediaWiki软件
--大量缓存(Cache),Squid 作为反向代理,Memcached做数据缓存
--用Mysql数据库集群
WikiPedia架构详细介绍
DBA notes上果然好东西很多
许多大型(只是访问量,而不是公司规模)的web 2.0的网站架构上面都有现在收集整理一下有关网站架构的资料,其中许多来自DBA notes这种资料.向来可遇不可求啊
WikiPedia 技术架构学习分享http://www.dbanotes.net/opensource/wikipedia_arch.html
YouTube 的架构扩展http://www.dbanotes.net/opensource/youtube_web_arch.html
Internet Archive 的海量存储浅析http://www.dbanotes.net/database/internet_archive_storage.html
LinkedIn 架构笔记http://www.dbanotes.net/arch/linkedin.html
Tailrank 网站架构http://www.dbanotes.net/review/tailrank_arch.html
Twitter 的架构扩展: 100 倍性能提升http://www.dbanotes.net/arch/twitter_arch.html
财帮子(caibangzi.com)网站架构http://www.dbanotes.net/arch/caibangzi_web_arch.html
Yupoo! 的网站技术架构http://www.dbanotes.net/arch/yupoo_arch.html
37Signals 架构http://www.dbanotes.net/arch/37signals_arch.html
Flickr 的访问统计实现以及其他http://www.dbanotes.net/arch/flickr_stats_and_dathan.html
PlentyOfFish 网站架构学习http://www.dbanotes.net/arch/plentyoffish_arch.html
Yahoo!社区架构http://www.dbanotes.net/arch/yahoo_arch.html
有关 Alexa 与 AOL 部署集群文件系统http://www.dbanotes.net/arch/alexa_ibrix_san_file_system.html
eBay 的存储一瞥http://www.dbanotes.net/arch/ebay_storage.html
eBay 的数据量http://www.dbanotes.net/database/ebay_storage.html
eBay 的数据库分布扩展架构http://www.dbanotes.net/database/ebay_database_scale_out.html
eBay 的数据层扩展经验http://www.dbanotes.net/arch/ebay_db_scale_out.html
eBay 的应用服务器规模http://www.dbanotes.net/web/ebay_application_server.html
性能扩展问题要趁早http://www.dbanotes.net/arch/scaling_an_early_stage_startup.html
Scaling an early stage startuphttp://www.scribd.com/doc/429986/Scaling-an-early-stage-startup
Facebook 的 PHP 性能与扩展性http://www.dbanotes.net/arch/facebook_php.html
Skype 用 PostgreSQL 支撑海量用户http://www.dbanotes.net/arch/skype_postgresql.html
闲谈 Web 图片服务器http://www.dbanotes.net/web/web_image_server.html
说说北京奥运购票系统瘫痪这事儿http://www.dbanotes.net/review/beijing_olympic_ticketes_system_crash.html
Architectures You’ve Always Wondered Abouthttp://qcon.infoq.com/london-2008/tracks/show_track.jsp?trackOID=82
eBay’s Architectural Principleshttp://www.eos1.dk/qcon-london-2008/slides/RandyShoup_eBaysArchitecturalPrinciples.pdf
Building a large scale SaaS apphttp://www.eos1.dk/qcon-london-2008/slides/Dan_Hanley_Building_a_large_scale_SaaS_app.pdf
Scaling an early stage startuphttp://www.scribd.com/doc/429986/Scaling-an-early-stage-startup
互联星空播客架构(原文在张宴blog上,但是后来文章撤下,很可惜.此为转载)http://www.flashmov.com/blog_1632.html
QQ游戏百万人同时在线服务器架构实现http://www.libing.net.cn/read.php?41
大型Web2.0站点构建技术初探http://blog.csdn.net/heiyeshuwu/archive/2007/11/18/1890793.aspx
Web站点数据库分布存储浅谈http://blog.csdn.net/heiyeshuwu/archive/2007/11/18/1891639.aspx
QQ的架构讨论http://groups.google.com/group/dev4server/browse_thread/thread/0d72668d11c4886b/a6d202489cabf285#a6d202489cabf285
Notes from Scaling MySQL - Up or Outhttp://venublog.com/2008/04/16/notes-from-scaling-mysql-up-or-out/
Yapache-Yahoo! Apache 的秘密http://www.dbanotes.net/web/yapache_yahoo_apache.html
LinkedIn 架构与开发过程http://www.dbanotes.net/arch/linkedin_soa.html
Scalability Best Practices: Lessons from eBayhttp://www.infoq.com/articles/ebay-scalability-best-practices
看 Twitter 人谈架构扩展问题http://www.dbanotes.net/arch/twitter_interview.html
Facebook 海量数据处理http://www.dbanotes.net/arch/facebook_photos_arch.html