LAMP是超大型网站构架首选
实际上,数据库经常会造成大型网站的性能瓶颈。徐海以淘宝为例,介绍了淘宝网站架构升级变迁的发展路线图。
最早淘宝规模较小,应用的就是X86服务器+MySQL数据库,这也是很多小规模互联网公司的常见架构。
随着淘宝业务发展到了第二个阶段,用户量增加了一个规模,原有系统难以支撑增长的访问量,内部架构也从X86系统迁移到了小型机,采用了小型机+Oracle的典型架构。
到了第三个阶段,随着访问量进一步增加,淘宝已经逐步发展成为了一个超大型电子交易网站,小型机+Oracle组合也不再适合了,因此到了第三个阶段,服务器又由小型机回归到X86平台上。数据库也从Oracle回到了MySQL。“Oracle的优势在于功能性强,稳定性好,成熟,中型的企业用户用这种架构非常合适,瓶颈则在于,对于大型的数据库应用来说,Oracle购买Lience是十分昂贵的,而且Oracle本身也存在着扩展上限,当访问人次超过一定程度后,oracle本身也力不从心。”
徐海总结小型机和X86平台在互联网应用中的差异时谈到:小型机+Oracle的组合适合于中等规模的企业用户,而超大规模互联网站则首选LAMP架构(Linux +Apache+Mysql+PHP)。徐海认为,小型机单机处理能力是非常强劲的,但如果在大量并发访问量的压力下,一般用户受限于成本很难购买大量的小型机,而且小型机的内存扩展也是一个限制。
“实际上对于大型网站来说,与网站访问并发数紧密相关的一个关键指标就是内存。”徐海谈到:“通常我们在网站设计阶段,需要考虑一台服务器支持多少并发数,每个并发数需要多少字节,然后大概的计算内存配置,因此当并发量变的非常大的时候,内存的需求量是非常巨大的。应用大量X86服务器进行集群和负载均衡,就能够解决超大型网站高并发访问量的需求。”
LAMP网站架构图
徐海介绍的LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。
此外,徐海透露,淘宝目前大部分应用都已经过度到MySQL上,但一些核心的关键应用仍然建立在Oracle架构上。采用多种数据库结合协作,也可降低数据库成本。