打败淘宝需要多少钱?
假设淘宝不犯错误,不存在致命的管理瓶颈,那么如果要打败淘宝,需要一个什么量级的资金投入?
淘宝并非完美的电子商务,淘宝仍然是粗放式的经营模式,淘宝无法满足日益个性化、精细化的用户需求和商业业态升级的需求,淘宝对产业链、服务品质的掌控力很弱。现在的问题是,假设淘宝不犯错误,不存在致命的管理瓶颈,那么如果要打败淘宝,需要一个什么量级的资金投入?
答非所问的回答太多。抛开任何台面下的手段,假设所有问题最终都可以通过投入资金来解决,来提供一个更为用户所喜欢的购物网站,那么这个资金额最低会是多少?请注意,并不限定C2C还是B2C,重要的是完美解决用户的购物需求。
我的这篇主要讲讲淘宝的技术,从技术上超越淘宝。毕竟淘宝是家高科技公司,对吧。
很多人看到的是淘宝表面的东西,比方讲销售额,一万亿神马的。但是你要知道淘宝是如何发展成今天的这个样子后,你就明白其实超越淘宝最难的不是钱,到了淘宝的那个水准,能用钱解决的问题都是小问题。
最早搞淘宝的那帮人是从阿里巴巴出来的,当时老马让他们在1个月内把淘宝给搞出来(那时还没有淘宝这个名字,淘宝、支付宝其实都是后来淘宝的同一个员工起的,是个MM,和马云没关系)。现在考考你,如果让你在一个月内建一个网站,你会怎么做?当时淘宝人的解决方案是:从一个美国人那里买了一个LAMP(Linux+Apache+MySQL+PHP)架构的网站,当时花了多少小银子呢?2000美刀左右(当然,源代码也买来了)。。你要注意,这时候是淘宝的初创期,所有问题都能用钱解决,但随着日后淘宝规模的扩大,后来淘宝人所遇到的问题,几乎是全世界范围内前无古人的难题,是花钱也买不到的了。这点之后再表。
花了2000美刀买来一个网站系统,稍加修改,比如修改一些数据类型、增加后台管理功能、页面模板美化等等,其中稍有技术含量的就是对数据库进行了一个修改,吧一个数据库拆成了一个主库、两个从库,并且读写分离(顺便说一句,当时这个项目的代号叫BMW,因为项目二当家喜欢宝马,听说后来这位二当家的座驾就是一辆宝马X5,算是如愿所偿了)。这之后网站便投入了使用,这是2003年5月10日,到了这年的年底,,淘宝已经有32W注册用户,每日31万个PV(page view页面访问量),交易额在3371万元。
随着淘宝用户需求和流量的不断增长,服务器从一台变成了三台(没错,淘宝一开始只有一台服务器~!),一台发送e-mail、一台负责运行数据库、一台负责运行WebApp,并且淘宝的首席架构师又把阿里巴巴中文站的搜索引擎iSearch搬到了淘宝。
当时淘宝访问量是飞速增长的,数据库的问题很快就出来了,当年的MySQL不比如今的MySQL,和Oracle相比存在着先天的不足(数据容量和安全性)。既然MySQL存在问题,那就得解决,最后的解决方案就是换成Oracle。到这里不得不说一句,当年阿里巴巴的DBA团队是相当牛的,全球Oracle的ACE头衔拥有者,当年只有十几名,而阿里就有4名,所以那你想想,如果超越阿里巴巴或是淘宝,不说钱,你有没有那个技术水准。
换成Oracle之后,问题仍旧存在。由于PHP语言对数据库的访问都是直接的,每一个请求都要一个连接。如果是长连接而且连接数增多,就会把数据库拖垮,反之如果是短连接,频繁地连接断开,性能会大幅降低。后来淘宝的情报部门打探到eBay在使用一个连接池的工具,是BEA卖个他们的,而对当时的淘宝来说BEA的东西太贵买不起,所以搞了一个开源的连接池代理服务SQL Relay,淘宝的架构师进行一番改进后,便开始使用。但是使用了这项技术后,新的问题又出现了,SQL Relay经常会死锁,虽然架构师做了很多修改,但内部处理的逻辑不对,问题很多,死锁仍会频频出现。解决的方法,当时就是重启,淘宝工程师最痛苦的就是晚上也会出现死锁,所以24小时手机开机是常态,一旦收到出现死锁的短信,马上连上机房的网络,重启服务(当时作这事最多的人,现在已经是淘宝网的总裁了)。大概在2003年的10月份左右,淘宝推出了一个新的功能,叫做“安全交易”,也就是支付宝的实验型;在2004年的3月份,淘宝旺旺诞生(淘宝旺旺是由一个工程师做的,据说淘宝旺旺的线数上新高后,淘宝的这帮人请这个工程师吃了一顿鸭脖子)。从中我们不难看到,淘宝早期的创新精神是非常高的,想得快,做的也快。只有这样,才有机会脱颖而出啊。
SQL Relay问题的存在,使得淘宝的工程师觉得不断重启来保证系统的稳定性是不行的,所以在2004年上半年开始,整个淘宝网站就开始了一个脱胎换骨的手术。
在2004年的上半年,淘宝干邑一件什么事呢?淘宝更新了开发语言,从PHP化成了java(不得不说真是精益求精啊,敢干啊)。当时淘宝网站已经颇具规模,要一边更换语言,一边还要维持网站的运营,就好比是做一场非常精密的内科手术,非常难,要技术非常高超才行。当时淘宝请来了Sun公司的人来做这件事,在这个阶段,针对网站存在的问题,淘宝引入了搜索引擎、打造了自己的MVC框架WebX,在2004年底,淘宝上线1年之后,淘宝已经有4百万多种商品了,日均4KW+个PV,注册会员400w+,全网成交额10亿+。
紧接着,围绕性能、容量和成本的进化,淘宝采用分库页表技术对Oracle进行了扩展,当时搞了三个数据库,以此来突破一台Oracle的处理上限。三个库,一个用来存放用户信息和对应的商品信息,一个用来存放用户信息和对应的卖家信息,第三个用来存放商品类目等通用信息(这样做还有容灾的好处,即万一一个数据库挂了,还有一半的商品可以买卖)。但是这样做也有问题,一个买家购买的商品在两个数据库里,那么在查看已购买商品时,应用程序要到两个数据库里去找,这还好说,可如果要按照时间排序怎么办?分页如何处理?关键字查询如何处理?专业一点的说法就是数据的Join没法做了。这是大师出手了,淘宝里有一个人。写了一个数据库路由的框架,叫DBRoute,讲数据库的合并、排序、分页等操作大一统了。并且在当时用Spring替换掉了EJB,给整个系统精简了很多代码。
到了2005年,淘宝的商品数达到1663w个,PV有8931W个注册会员有1390w个。
数据量大,存储压力大,速度就慢,所以淘宝又搞出了缓存和CDN(内容分发网络)。
到了2006年,淘宝网已经有了1.5亿个日均PV,商品数达5kw+,注册用户3kw+,全网叫一个169亿(2012年双十一一天的交易量是191亿)。
为什么我一直在淘宝技术改进过程中要强调淘宝的规模,可以说是规模决定了你所需要的技术。当你成为业内最强的时候,你的问题就成了别人没碰到过的问题,这就意味着你必须要自己解决问题。于是在2006年,淘宝开始走上了自主开发技术的道路。
随着淘宝的发展和成熟,他们当时遇到的问题是增加的,而不是减少的。举一个例子,卖家卖商品时,会进行一些打折促销,也就是说同一件商0品价格会发生改变。那么已经成交的商品信息该如何处理?最好的方式是商品快照,没完成一笔生意,用快照的方式保存下来。这样用户体验爽了,但系统的存储成本大幅度的提升(淘宝2010年后端系统上的图片量达到286亿)。早些时候,淘宝采用NetApp公司的文件存储系统,但随着图片数据量以每年3倍速率的增长,到2006年时,即便NetApp公司最高端的产品也无法满足淘宝的需要,所以从2006年开始,淘宝决定开发一套针对海量小文件存储的文件系统,用于解决自身图片的存储难题。淘宝文件存储系统的构建者是张文嵩博士,2007年淘宝开发出了TFS(TaoBao File System)。同年7月,TFS正式上线。集群规模达到了200台PC Server(146GB*6SAS 15KB Raid5),文件数上亿级别;系统部署存储量140TB,实际使用量50TB;单台支持随机IOPS 200+,流量为3MB/S。
2007年的另外一项重要技术创造,就是淘宝推出了自创的Key—Value缓存系统。
自从2006年踏上自主自助创新之路至今,淘宝有相继搞出了服务化、中间件,session框架,开放平台,分布式电子商务,操作系统等多项尝试,并取得了成功。
上面谈了很多技术方面的问题,我不谈钱,因为有些技术根本就是钱所买不到的,因为在淘宝之前根本就没有相应的技术。我无非是想告诉你,想用花钱的方式是无法打败淘宝的。
下面不谈技术,想谈谈一点别人对淘宝的误解,看看你是不是也这么想的。
淘宝不是电商
你想打败淘宝先要了解它,淘宝是个平台,真正的电商是上面的卖家,淘宝不是卖货的。淘宝是个平台,用马云的话说就是有自己的生态系统,有自己的支付体系,甚至还有快递物流,所以你要打败淘宝,面对的是整个一个生态系统,单纯拼某一个东西也肯定拼不过。只有你比他进化的更好,更完美,你的体系更公平、更快捷,你才有可能最终打败它。
为什么是淘宝?为什么是马云?
因为创造淘宝的那个时代,中国没有很好的商业环境。淘宝不是电商,上面的卖家才是电商,淘宝也是一个商业环境,一个生态圈。有自己的信誉体系、支付体系、物流体系(淘宝在快递上也做了很大的投资)。当年马云搞出了淘宝,结果他发现光有淘宝还不够,银行没有对小商业主的服务,没有一个支付体系,于是马云又搞了支付宝;当搞完了支付宝之后,马云又发现,还不够,物流不行,于是马云又在物流上大手笔投资;等这些都弄好了,进入正轨了,淘宝也就变得立体了,丰满了。当你思索如何打败淘宝的时候,一定要知道,你所面对的,不单单是一个电商那么简单。最终不会是场战斗,而是一场战役。
结
千言万语一句话:别想靠钱打败淘宝,钱买不来足以打败淘宝的智慧和技术。
马云说他自己命苦,一开始什么都没有,什么都要自己去做(当然做成的回报是他赚了很多很多的钱)。世界上一定会有比淘宝更好的模式,可惜,到目前为止还没出现。历史总会发展,淘宝总要死去,任何伟大的公司都无法逃过这个宿命,我们期待有更加伟大的公司出现吧。