MySpace:.Net架构网站的王者
通过上面一大段我们对MySpace的前期技术发展也有了一个大概的了解,同时也能学习到了一些针对高负载网站常见的几个方面的解决方案。我们能够明白Scale up和scale out的优缺点,Horizontal Partition和vertical Partition的作用,以及后台数据和web server的load balance。作为一个技术人员,如果职业生涯能够经历一个网站从几个用户到数千万到数亿用户使用,也不枉费人世走着一遭,有点夸张了J。
哎,上面水来水去都不是俺们哥们.Net框架的功劳,欢呼个啥呢?别介啥的一般都应该在剧末才粉末登场对吧。.Net也是,MySpace team估计已经感觉到他们熟悉的ColdFusion很难抗住如此快速增长的负载,而选择.Net方案,而不是那个啥java,呵呵。由此才可以突出俺们哥们.Net的牛x,管它多少用户,来一百万消灭一百万,来一千万消灭。。。不好意思,哥们吹的有点过了。。。那MySpace是怎么利用.Net来搞定它的数亿用户的负载的呢? MySpace是在2005年早期,用户数达到9百万后才开始使用.Net Framework来重新实现,上文已经讲了切换到.Net后立杆见影的效果,但是当用户数达到1千万时,MySpace再次遭遇存储瓶颈问题。不过可不是.Net扛不住,而是后台机器负载不够均衡,导致某些机器过载了。具体原因之一是每数据库1百万账户的分割策略,通常情况下的确可以将压力均分到各台服务器,但现实并非一成不变。比如第七台账户数据库上线后,仅仅7天就被塞满了,主要原因是佛罗里达一个乐队的歌迷疯狂注册。最初,MySpace通过定期重新分配SAN中数据,以让其更为均衡的方法基本解决了这个问题,但这是一个人工过程,“大概需要两个人全职工作。”Benedetto说。长期解决方案是迁移到虚拟存储体系上,这样,整个SAN被当作一个巨型存储池,不再要求每个磁盘为特定应用服务。MySpace采用了一种新型SAN设备——来自加利福尼亚州弗里蒙特的3PARdata。当2005年春天账户数达到1千7百万时,MySpace又启用了新的策略以减轻存储系统压力,即增加数据缓存层——位于Web服务器和数据库服务器之间,其唯一职能是在内存中建立被频繁请求数据对象的副本,如此一来,不访问数据库也可以向Web应用供给数据。Faint, MySpace到这个规模才想起来用Cache,真的有点sx了。增加缓存服务器是“一开始就应该做的事情,但我们成长太快,以致于没有时间坐下来好好研究这件事情。”Benedetto补充道。既然承认错误了,就不打Benedetto的pp了。后来在2005年中期,服务账户数达到2千6百万时,MySpace切换到了还处于beta测试的SQL Server 2005。转换何太急?主流看法是2005版支持64位处理器。但Benedetto说,“这不是主要原因,尽管这也很重要;主要还是因为我们对内存的渴求。”支持64位的数据库可以管理更多内存。 更多内存就意味着更高的性能和更大的容量。原来运行32位版本的SQL Server服务器,能同时使用的内存最多只有4G。切换到64位,就好像加粗了输水管的直径。升级到SQL Server 2005和64位Windows Server 2003后,MySpace每台服务器配备了32G内存,后于2006年再次将配置标准提升到64G。看来MySpace还是比较喜欢用scale up的解决方案。也对,反正有$,多花点无所谓。后来在…... 历史车轮还会继续向前推进,MySpace也会不断遇到新的挑战,虽然这些挑战我们可能一辈子都不可能遇到,但是作为一个.Net追随者,应该时刻追随着这个王者的脚步,因为他是我们的领袖,他应该是我们心中的信仰….
MySpace对于.Net技术的发展毋庸置疑是起了不少推动作用。因为他遇到了很多微软自身都没有遇到的问题,它给.Net提供了一个不断增长的高负载的实验平台,来一个一个检验微软的产品和技术。微软在克服一个一个难题后,在下一代产品launch时候把这些问题fix后加入新产品,这样我们这些终端客户实际上也间接的享受到了MySpace给我们带来的.Net技术promotion。MySpace应该是微软的金牌合作伙伴,在www.asp.net上Who is using ASP.NET?第一个就是MySpace。微软估计开心极了,有MySpace这样的巨无霸帮他向整个业界证明了.Net的牛x。很期望将来在中国能够看到像MySpace这样的网站,至少应该有一些像douban使用python这样的互联网产品。一枝独秀有时不是比百花齐放更美,不是吗?最后,如果您想成为或者已经是.Net的fans,那么您一定要熟记下上面的关于MySpace的关键数字,至少能够做到脱稿讲5分钟。下次,面对小弟请教或者xx fans挑衅时候,不用我说,你应该知道该怎么做了。MySpace对我们来说应该不仅仅是个互联网巨无霸……
后记:多年不写文章手脚已经生疏了,某些段落可能不是那么的连贯,某些形容词估计也欠推敲。请见谅,少拍点转。亏得不要用笔写,不然估计错别字连篇,J。因为个人时间和经历有限,没有办法也没有文学功底来完成一篇能过得去的文章,所以很多都是直接摘自互联网上的文章,个人只是做了一点内容的筛选和重新组织,再加上个人的一点感想。如果希望深入了解的朋友,建议还是应该看一下参考文章。
作者:shawnliu
出处:http://www.cnblogs.com/liushouzhao/archive/2008/10/30/1322634.html
参考文章:
下面是一张MySpace应用所采用的产品的图表:
APPLICATION |
PRODUCT |
SUPPLIER |
Web application technology |
Microsoft Internet Information Services, .NET Framework |
Microsoft |
Server operating system |
Windows 2003 |
Microsoft |
Programming language and environment |
Applications written in C# for ASP.NET |
Microsoft |
Programming language and environment |
Site originally launched on Adobe's ColdFusion; remaining ColdFusion code runs under New Atlanta's BlueDragon.NET product. |
Adobe, New Atlanta |
Database |
SQL Server 2005 |
Microsoft |
Storage area network |
3PAR Utility Storage |
3PARdata |
Internet application acceleration |
NetScaler |
Citrix Systems |
Server hardware |
Standardized on HP 585 (see below) |
Hewlett-Packard |
Ad server software |
DART Enterprise |
DoubleClick |
Search and keyword advertising |
Google search |
|