《淘宝技术这十年》之LAMP架构的网站
本文节选自《淘宝技术这十年》一书,子柳(赵超)著,由电子工业出版社出版。作者的系列博文:从P1到P7——我在淘宝这7年
2003年4月7日,马云在杭州成立了一个神秘的组织。他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴集团,去做一个神秘的项目。这个项目要求绝对保密,老马戏称“连说梦话被老婆听到都不行,谁要是透漏出去,我将追杀到天涯海角”。这份协议是英文版的,匆忙之间,大多数人根本来不及看懂,但出于对老马的信任,都卷起铺盖离开了阿里巴巴。
他们去了一个神秘的据点——湖畔花园小区的一套未装修的房子里,房子的主人是马云。这伙人刚进去的时候,马云给他们布置了一个任务,就是在最短的时间内做出一个个人对个人(C2C)的商品交易的网站。这里出一个问题考考大家,看你适不适合做淘宝的创业团队:亲,要是让你来做,你怎么做?
在说出这个答案之前,我们先介绍一下这个创业团队的成员:三个开发工程师(虚竹、三丰、多隆)、一个UED工程师(二当家)、三个运营工程师(小宝、阿珂、破天)、一个经理(财神),以及马云和他的秘书。
当时对整个项目组来说,压力最大的就是时间,为什么时间这么重要呢?火云邪神先生说过“天下武功无坚不破,唯快不破”,还有一个原因就是当时eBay和易趣在资本方面正打得不可开交,我们是乘虚而入的,等他们反应过来就危险了。那怎么在最短的时间内把一个网站从零开始建立起来呢?了解淘宝历史的人都知道淘宝是在2003年5月10日上线的,2003年4月7日到5月10日,这之间只有一个月时间。要是你在这个团队里,你怎么做?不是“抄一个来”,我们的答案是——“买一个来”。
买一个网站显然比作一个网站要省事,但是他们的梦想可不是做一个小网站而已,要做大,就不是随便买一个就行的,要有比较低的维护成本,要能够方便地扩展和二次开发。那么接下来就是第二个问题:买一个什么样的网站?答案是:轻量一点的,简单一点的。于是买了这样一个架构的网站:LAMP(Linux+Apache+MySQL+PHP),这个直到现在还是一个很常用的网站架构模型,其优点是:无须编译,发布快速,PHP语言功能强大,能做从页面渲染到数据访问所有的事情,而且用到的技术都是开源、免费的。当时我们是从一个美国人那里买来的一个网站系统,这个系统的名字叫做PHPAuction(其官方网站 http://www.phpauction.net,Auction即是拍卖的意思,这个名字很直白,一眼就可看出这个系统是用什么语言做的、用途是什么),PHPAuction有好几个版本,我们买的是最高版的,功能比较多,而且最重要的是对方提供了源代码。最高的版本比较贵,花了我们差不多2000美元(貌似现在降价了,只要946美元,在他们的网站上有明码标价的信息)。买来之后不是直接就能用的,需要很多本地化的修改,例如,修改一些数据类型,增加后台管理的功能,页面模板改得漂亮一点,页眉和页脚加上自己的站点简介等。其中最有技术含量的是对数据库进行了一个修改,原来是从一个数据库进行所有的读写操作,现在把它拆分成一个主库、两个从库,并且读写分离。这么做的好处有几点:存储容量增加了,有了备份,使得安全性增加了,读写分离使得读写效率得以提升(写要比读更加消耗资源,分开后互不干扰)。这样整个系统的架构就如下图所示。
其中,pear DB是一个PHP模块,负责数据访问层。另外,他们也用开源的论坛系统PHPBB(http://www.phpbbchina.com)搭建了一个小的论坛社区,在当时,论坛几乎是所有网站的标配。虚竹负责机器采购、配置、架设等,三丰和多隆负责编码,他们把交易系统和论坛系统的用户信息打通,给运营人员开发出后台管理的功能(Admin系统),把交易类型从只有拍卖这一种增加为拍卖、一口价、求购商品、海报商品(意思是还没推出的商品,先挂个海报出来,这是快速增加商品数的一个好方法)四种。(PHPAuction系统里只有拍卖的交易,Auction即拍卖的意思。@_行癫在微博中提到:今天,eBay所有的交易中,拍卖交易仍然占40%,而在中国,此种模式在淘宝几乎从一开始就未能占据优势,如今在主流的交易中几乎可以忽略不计。背后的原因一直令人费解,我大致可以给出其中一种解释,eBay基本上只在发达国家展开业务,制造业外包后,电子商务的基本群体大多只能表现为零散的个体间交易。)
在开发过程中,这个项目的代号是BMW(没错!就是宝马的意思)。这个是二当家提出的建议,二当家特别喜欢宝马,他希望我们的网站也如同宝马一样漂亮、快速、安全,充满乐趣。二当家现在的座驾就是一辆宝马X5,算是得偿所愿了。在上线的时候需要给这个网站取个名字,为了不引起eBay的注意,这个名字要撇开与阿里巴巴的关系,所以“阿里爷爷”、“阿里舅舅”之类的域名是不能用的。这时候,美女阿珂提供了一个很好听的名字“淘宝”。因为她家里有人热爱收藏古董,经常去市场上淘宝贝,而她本人也非常热爱逛街,享受“淘”的乐趣,她觉得“淘宝”两个字特别符合网站的定位(阿珂说想到这个名字的时候,脑子里一道闪电劈过,真的是“灵光一闪”。后来“支付宝”的名字也是阿珂取的)。于是这个大名就定了下来,淘宝网横空出世了。
在接下来的大半年时间里,这个网站迅速显示出了它的生机。这里有必要提一下当时的市场环境,非典(SARS)的肆虐使得大家都不敢出门,尤其是去类似商场等人多的地方。另外,在神州大地上最早出现的C2C网站易趣也正忙得不亦乐乎,2002年3月,eBay以3000万美元收购了易趣公司33%的股份,2003年6月以1.5亿美元收购了易趣公司剩余67%的股份。当时,淘宝网允许买卖双方留下联系方式,允许同城交易,整个操作过程简单轻松。而eBay是收费的,为了收取交易佣金,eBay禁止买卖双方这么做,这必然增加了交易过程的难度。而且eBay为了全球统一,把易趣原来的系统替换成了美国eBay的系统,用户体验一下全变了,操作起来非常麻烦,很多易趣的卖家在那边都混不下去了,这等于是把积累的用户拱手送给了淘宝。为了不引起eBay的注意,淘宝网在2003年里一直声称自己是一个“个人网站”。由于这个创业团队强大的市场开拓和运营能力,淘宝网的发展非常迅猛,2003年年底就吸引了注册用户23万个,每日31万个PV,从2003年5月到同年年底成交额达3371万元。这没有引起eBay的注意,却引起了阿里巴巴内部很多员工的注意,他们觉得这个网站以后会成为阿里巴巴强劲的对手,甚至有人在内网发帖,忠告管理层要警惕这个刚刚起步的网站,但管理层似乎无动于衷。(这个团队的保密工作做得真好!)
作者子柳:本名赵超,2004年加入淘宝网,取花名子柳。历任开发工程师、项目经理、产品经理、测试经 理,2009年随着淘宝系统的大规模重构和人才的迅速扩张,创办了“淘宝技术大学”,培养内外部工 程师众多,人称“校长”。2011年将培训中的内容写成文章发表,遂一发不可收拾,总结了淘宝十年的技术之路,乃成本书。