淘宝网技术发展回顾(四):Java时代 脱胎换骨

  我的师父黄裳@岳旭强曾经说过,“好的架构图充满美感”,一个架构好不好,从审美的角度就能看得出来。后来我看了很多系统的架构,发现这个言论基本成立。那么反观淘宝前面的两个版本的架构,你看哪个比较美?

  

  

  显然第一个比较好看,后面那个显得头重脚轻,这也注定了它不是一个稳定的版本,只存活了不到半年的时间。2004年初,SQL Relay的问题解决不了,数据库必须要用Oracle,那从哪里动刀?只有换开发语言了。换什么语言好呢?Java。Java是当时最成熟的网站开发语言,它有比较良好的企业开发框架,被世界上主流的大规模网站普遍采用,另外有Java开发经验的人才也比较多,后续维护成本会比较低。

  到2004年上半年,淘宝网已经运行了一年的时间,这一年积累了大量的用户,也快速的开发了很多功能,当时这个网站已经很庞大了,而且新的需求还在源源不断的过来。把一个庞大的网站的开发语言换掉,无异于脱胎换骨,在换的过程中还不能拖慢业务的发展,这无异于边换边跑,对时间和技术能力的要求都非常高。做这样的手术,需要请第一流的专家来主刀。现在再考一下读者,如果你在这个创业团队里面,请什么样的人来做这事?我们的答案是请Sun的人。没错,就是创造Java语言的那家公司,世界上没有比他们更懂Java的了。除此之外,还有一个不为人知的原因,……(此处和谐掉200字,完整版见aliway)

  这帮Sun的工程师的确很强大,在笔者2004年底来淘宝的时候,他们还在,有幸跟他们共事了几个月。现在摆在他们面前的问题是用什么办法把一个庞大的网站从PHP语言迁移到Java?而且要求在迁移的过程中,不停止服务,原来系统的bugfix和功能改进不受影响。亲,你要是架构师,你怎么做?有人的答案是写一个翻译器,如同把中文翻译成英文一样,自动翻译。我只能说你这个想法太超前了,换个说法就是“too simple, sometimes naive”。当时没有,现在也没有人能做到。他们的大致方案是给业务分模块,一个模块一个模块的替换。如用户模块,老的member.taobao.com继续维护,不添加新功能,新的功能先在新的模块上开发,跟老的共用一个数据库,开发完毕之后放到不同的应用集群上,另开个域名member1.taobao.com,同时替换老的功能,替换一个把老的模块上的功能关闭一个,逐渐的把用户引导到member1.taobao.com,等所有功能都替换完毕之后,关闭member.taobao.com。后来很长时间里面都是在用member1这样奇怪的域名,两年后有另外一家互联网公司开始做电子商务了,我们发现他们的域名也叫member1.xx.com、auction1.xx.com……

  说了开发模式,再说说用到的Java MVC框架,当时的struts1.x是用的比较多的框架,但是用过webwork和struts2的同学可能知道,struts1.x在多人协作方面有很多致命的弱点,由于没有一个轻量框架作为基础,因此很难扩展,这样架构师对于基础功能和全局功能的控制就很难做到。而阿里巴巴的18个创始人之中,有个架构师,在Jakarta Turbine的基础上,做了很多扩展,打造了一个阿里巴巴自己用的MVC框架WebX (http://www.openwebx.org/docs/Webx3_Guide_Book.html ),这个框架易于扩展,方便组件化开发,它的页面模板支持JSP和velocity等、持久层支持ibatis和hibernate等、控制层可以用EJB和Spring(Spring是后来才有的)。项目组选择了这个强大的框架,这个框架如果当时开源了,也许就没有webwork和struts2什么事了。另外,当时Sun在全世界大力推广他们的EJB,虽然淘宝的架构师认为这个东东用不到,但他们还是极力坚持。在经历了很多次的技术讨论、争论和争吵之后,这个系统的架构就变成了下图的样子:

  

  Java应用服务器是Weblogic,MVC框架是WebX、控制层用了EJB、持久层是ibatis,另外为了缓解数据库的压力,商品查询和店铺查询放在搜索引擎上面。这个架构图是不是好看了一点了,亲?

  这帮Sun的工程师开发完淘宝的网站之后,又做了一个很牛的网站,叫“支付宝”。

  其实在任何时候,开发语言本身都不是系统的瓶颈,业务带来的压力更多的是压到了数据和存储上。上面一篇也说到,MySQL撑不住了之后换Oracle,Oracle的存储一开始在本机上,后来在NAS上,NAS撑不住了用EMC的SAN存储,再然后Oracle的RAC撑不住了,数据的存储方面就不得不考虑使用小型机了。在2004年的夏天,DBA七公、测试工程师郭芙和架构师行癫,踏上了去北京测试小型机的道路。他们带着小型机回来的时候,我们像欢迎领袖一样的欢迎他们,因为那个是我们最值钱的设备了,价格表上的数字吓死人。小型机买回来之后我们争相合影,然后Oracle就跑在了小型机上,存储方面从EMC低端cx存储到Sun oem hds高端存储,再到EMCdmx高端存储,一级一级的往上跳。

  到现在为止,我们已经用上了IBM的小型机、Oracle的数据库、EMC的存储,这些东西都是很贵的,那些年可以说是花钱如流水啊。有人说过“钱能解决的问题,就不是问题”,但随着淘宝网的发展,在不久以后,钱已经解决不了我们的问题了。花钱买豪华的配置,也许能支持1亿PV的网站,但淘宝网的发展实在是太快了,到了10亿怎么办?到了百亿怎么办?在N年以后,我们不得不创造技术,解决这些只有世界顶尖的网站才会遇到的问题。后来我们在开源软件的基础上进行自主研发,一步一步的把IOE(IBM小型机、Oracle、EMC存储)都去掉了。这就如同在《西游记》里面,妖怪们拿到神仙的兵器会非常厉害,连猴子都能够打败,但最牛的神仙是不用这些神器的,他们挥一挥衣袖、翻一下手掌就威力无比。去IOE这一部分会在最后一个章节里面讲,这里先埋个千里伏笔。

  欲知后事如何,且听下回分解。

淘宝网技术发展回顾(三):Oracle/支付宝/旺旺

淘宝网技术发展回顾(二):个人网站时期

淘宝网技术发展回顾(一):“光棍节”的狂欢

原文:http://blog.sina.com.cn/s/blog_633219970100xktb.html

时间: 2024-10-26 12:27:30

淘宝网技术发展回顾(四):Java时代 脱胎换骨的相关文章

淘宝网技术发展回顾(五) Java时代:坚若磐石

中介交易 SEO诊断 淘宝客 云主机 技术大厅 已经有读者在迫不及待的问怎么去掉了IOE,别急,在去掉IOE之前还有很长的路要走.行癫他们买回来小型机之后,我们用上了Oracle,七公带着一帮DBA在优化SQL和存储,行癫带着几个架构师在研究数据库的扩展性.Oracle本身是一个封闭的系统,用Oracle怎么做扩展?用现在一个时髦的说法就是做"分库分表". 我们知道一台Oracle的处理能力是有上限的,它的连接池有数量限制,查询速度跟容量成反比.简单的说,在数据量上亿.查询量上亿的时候

淘宝网技术发展回顾(三):Oracle/支付宝/旺旺

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Oracle/支付宝/旺旺 淘宝网作为个人网站发展的时间其实并不长,由于它太引人注目了,马云在2003年7月就宣布了这个是阿里巴巴旗下的网站,随后在市场上展开了很成功的运作.最著名的就是利用中小网站来做广告,突围eBay在门户网站上对淘宝的广告封锁.上网比较早的人应该还记得那些在右下角的弹窗和网站腰封上一闪一闪的广告.市场部那位到处花钱买广告的家伙,太能花钱了,一出手就是几百万,他被我们称为"大少爷". "大少爷"们做

淘宝网技术发展回顾(二):个人网站时期

中介交易 SEO诊断 淘宝客 云主机 技术大厅 个人网站 2003年4月7日,马云,在杭州,成立了一个神秘的组织.他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴,去做一个神秘的项目.这个项目要求绝对保密,老马戏称"连说梦话被老婆听到都不行,谁要是透漏出去,我将追杀到天涯海角".这份协议是英文版的,匆忙之间,大多数人根本来不及看懂,但出于对老马的信任,都卷起铺盖离开了阿里巴巴. 他们去了一个神秘的据点--湖畔花园小区的一套未装修的房子里,房子的主人是马云.这伙人刚进

淘宝网技术发展回顾(一):“光棍节”的狂欢

中介交易 SEO诊断 淘宝客 云主机 技术大厅 "时间到,开抢!"坐在电脑前早已等待多时的小美一看时间已到2011年11月11日零时,便迫不及待地投身于淘宝商城一年一度的大型网购促销活动--"淘宝双11购物狂欢节".小美打开早已收藏好的宝贝--某品牌的雪地靴,飞快的点击购买,付款,一回头发现3000双靴子已被抢购一空. 小美跳起来,大叫一声"欧耶!" 小美不知道,就在11日零点过后的这一分钟内,全国有342万人和她一起涌入淘宝商城.当然,她更不知

淘宝网将与阿里妈妈合并 马云内部邮件曝光

中介交易 SEO诊断 淘宝客 云主机 技术大厅 9月4日,阿里巴巴集团宣布旗下的淘宝网.阿里妈妈两家公司进行合并.阿里巴巴集团董事局主席马云用内部邮件公布了合并细节,并透露淘宝网在坚持免费5年后,仅仅依靠广告收入我们上个星期已经让淘宝网实现当月收支平衡. 以下是邮件全文: 各位阿里人,  今天,我非常高兴地向大家宣布:阿里巴巴集团从今天起正式启动"大淘宝战略"第一步------淘宝网和阿里妈妈即日起合并发展,共同打造全球最大电子商务生态体系! 经过近5年的努力,淘宝网已经发展成为日均交

淘宝网与淘宝客 到底是谁成就了谁

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 淘宝网,让淘宝客欢喜,却又让淘宝客忧.欢喜的是给许多人,尤其是大部分草根站长提供了赚钱的途径,部分个人站长也因为淘宝网有了不菲的收入.而忧的是越来越多的人加入淘宝客的行列,导致整个行业竞争激烈,许多淘宝客的生存空间都极为艰难,再加上接踵而来的"冻结门",掉单,封闭账户等以及最近的"360默认推荐购物助手插件&qu

淘宝网总裁陆兆禧:好的人才没有成本,需要专家的献言献策

淘宝网总裁陆兆禧:好的人才没有成本 5月16日消息,国内首届网商交易会于今天广州流花宾馆召开.阿里巴巴集团资深副总裁淘宝网总裁陆兆禧在接受新浪科技专访时表示好的人才没有成本,淘宝网要同时兼顾效率和公平,需要专家的献言献策. 以下为实录: 新浪科技:各位新浪网的网友大家好,今天是首届阿里巴巴网商交易会的第一天,非常有幸请到了淘宝网总裁陆兆禧,接受新浪科技的专访,陆总您好. 陆兆禧:您好. 新浪科技:淘宝现在在高薪招聘一些专家,他们的主要职责是什么? 陆兆禧:淘宝现在已经是一个网上的虚拟商业社区,要

好人才没有成本,淘宝网需同时兼顾效率和公平

淘宝网总裁陆兆禧:好的人才没有成本 5月16日消息,国内首届网商交易会于今天广州流花宾馆召开.阿里巴巴集团资深副总裁淘宝网总裁陆兆禧在接受新浪科技专访时表示好的人才没有成本,淘宝网要同时兼顾效率和公平,需要专家的献言献策. 以下为实录: 新浪科技:各位新浪网的网友大家好,今天是首届阿里巴巴网商交易会的第一天,非常有幸请到了淘宝网总裁陆兆禧,接受新浪科技的专访,陆总您好. 陆兆禧:您好. 新浪科技:淘宝现在在高薪招聘一些专家,他们的主要职责是什么? 陆兆禧:淘宝现在已经是一个网上的虚拟商业社区,要

淘宝网欲扩张海外版图 国内卖家该如何应对挑战

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 随着国内互联网不断发展壮大后,该领域部分巨擘在自家土地上扎稳根基后,开始积极向海外市场进军,这种现象在2010年尤为突出.无论是近日腾讯投资俄罗斯互联网公司DST,还是年初,国内最大的电子商务提供商阿里巴巴与韩国非盈利性政府机构KOTRA在杭州正式签署战略合作协议,专门针对中韩中小企业的进出口贸易市场,建立更顺畅和安全的电子商务合作体系.这些