淘宝系统的成功和经验教训
班级:2012211314 姓名:黎佳雨学号:2012211501
淘宝网,现已是中国最大的网购零售平台,目前拥有近5亿的注册用户数,每天有超过6000万的固定访客,同时每天的在线商品数已经超过了8亿件,平均每分钟售出4.8万件商品。
随着淘宝网规模的扩大和用户数量的增加,淘宝也从单一的C2C网络集市变成了包括C2C、团购、分销、拍卖等多种电子商务模式在内的综合性零售商圈。
目前已经成为世界范围的电子商务交易平台之一。
综合看来,淘宝的成功有如下几大因素:
1.安全的支付系统——支付宝。
支付宝系统的引进在更深层次上为交易安全提供了保障。
在淘宝网的交易过程中,买家看好货物后,可以选择通过支付宝先将钱交给淘宝网,得到淘宝网确认到款后,卖家放心的向买家发货。
而淘宝网亦在买家确认商品满足度后将钱款打进卖家的帐号。
支付宝功能为监视买家和卖家的信用提供了完整的解决方案。
2.方便的网上买卖系统。
通过电子商务平台为买卖双方提供了一个在线交易平台,卖方可以主动提供商品上网销售和拍卖,而买方可以自行选择商品进行竞价和购买,不再受时间和空间的限制,广泛方便的比价、议价、竞价过程节约了大量的市场沟通本钱。
另一方面参与的群体庞大,选择的范围更广。
3.有效的多种商品分类治理系统目前淘宝网对商品进行了有效的分类治理,不仅有高档的品牌商品,还有普通的二手商品。
根据不同的消费者有不同的购物需求,对市场做了区分。
商城、集市、“二手闲置”市场、“团购市场”、海外代购市场,无论买家还是卖家都有不同的选择淘宝开店流程。
4.人性化的聊天交流工具——阿里旺旺。
阿里旺旺(淘宝版),是阿里巴巴为商人量身定做的免费网上商务沟通软件。
它能轻松找客户,发布和治理贸易信息,及时把握商机,随时洽商做生意。
然而,对这些功能的支持以及每天庞大的点击量与浏览量对淘宝系统也是很大的挑战。
页面的访问速度,图片的刷新速度,庞大数据的储存等等,都是对系统的巨大考验。
为了保证存储系统的可靠性,需要将数据复制为多份。
当数据规模增加时,我们可能会对传统的数据库分库分表以水平扩展,很多企业还开发了各自的数据库中间层以屏蔽分库分表规则。
然而,在传统的分库/分表架构下,每一份数据只能为一组Master-Slave节点服务,这就导致同一组机器节点存放了完全相同的数据,当其中某个节点发生故障时,只能通过所在机器组中的节点进行故障恢复,这样的系统称为同构系统。
而云存储系统一般指异构系统,每份数据可以被动态分配到集群中的任意一个节点,当某个节点发生故障时,可以将故障节点原有服务动态迁移到集群中的任何一台机器。
只有实现系统异构才能发挥分布式集群的规模优势,减少集群运维成本,适应云存储系统数据量快速增长的需求。
数据结构决定了云存储系统的功能,云存储系统的数据结构主要有两种:分布式Hash 表和分布式B+树,如图1所示。
分布式Hash表通过比如一致性Hash的方式将数据分布到集群中的不同节点,数据随机分布,不支持范围查询;而分布式B+树的数据连续存放,支持范围查询,但是需要支持分裂和合并,实现相对较为复杂。
常见的Key-Value系统的数据结构一般为分布式Hash表,只支持基本的Put、Get和Delete操作,比如Amazon的Dynamo和S3系统。
而Amazon Simpledb按照domain进行数据划分,规定同一个domain数据量不能超过10GB,从而可以存放到一个数据节点,用户只允许在同一个domain内部执行范围查询操作。
Amazon的云存储系统看起来不完美,
但相当实用。
Google的系统设计之初就强调可扩展性。
从最初的GFS到BigTable,再到后来的Megastore、Percolator,Google先将系统的可扩展性发挥到极致,以后再逐步加入分布式事务、SQL支持等功能。
这样的设计得益于Google强大的工程师团队和公司一直以来崇尚通用系统的文化。
Google的云存储分为两层:分布式文件系统GFS和分布式数据库系统BigTable,GFS是一个带有追加功能的分布式文件系统,BigT able将事务的提交日志追加到GFS中做持久化。
数据在BigT able内连续存储,逻辑上构成一棵分布式B+树,Megastore、Percolator又在BigT able的基础上加入分布式事务、索引、SQL支持等功能。
Google的系统设计比较贵族化,可以远观,但模仿前请三思,比如将系统分成多层可能会增加用户操作的延时,对工程师的设计编码能力提出了更高的要求。
Microsoft SQL Azure则是一个传统数据库厂商在云存储系统设计上给出的答案。
当数据量增长时,必然要求牺牲部分功能来换取可扩展性,这对于Microsoft是不愿意看到的。
Microsoft直接在原有的关系型数据库SQL Server上进行分布式扩展,尽可能多地支持SQL 功能,其功能非常丰富,但系统内部不支持SQL Azure实例的分裂和合并。
因此,SQL Azure 内部也限制了单个SQL Azure实例允许的最大数据量,如Business Edition的最大数据量不超过50GB。
相比Google的系统,Microsoft系统的扩展性较弱,但功能较强。
云存储系统的难点在于状态数据的迁移和持久化,状态数据也就是系统的事务提交日志。
Google BigT able通过分布式文件系统GFS持久化提交日志,Microsoft SQL Azure直接将提交日志通过网络复制到数据的多个副本,而PNUTS通过Yahoo!内部的分布式消息中间件Yahoo! Message Broker持久化提交日志。
Yahoo!没有对外提供云存储服务,但这样的设计可扩展性也是相当不错的。
淘宝便是从2010年5月开始研发OceanBase云储存系统,其定位是解决淘宝内部在线业务的云存储问题。
目前OceanBase已经应用于淘宝收藏夹,用于存储淘宝用户收藏条目和具体的商品、店铺信息,每天支持4~5千万的更新操作。
等待上线的应用还包括CTU、SNS等,每天更新超过20亿,更新数据量超过2.5TB,并会逐步在淘宝内部推广。
淘宝收藏夹最初采用MySQL分库/分表的方式实现,通过使用Oceanbase,机器数由原来的16台主加上16台备共32台减少到12台静态数据服务器加上2台动态数据服务器,大大节省了机器资源。
何谓云存储?其实云存储是在云计算概念上延伸和衍生发展出来的一个新的概念。
云计算是分布式处理、并行处理和网格计算的发展,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多部服务器所组成的庞大系统经计算分析之后将处理结果回传给用户。
通过云计算技术,网络服务提供者可以在数秒之内,处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大的网络服务。
云存储是一种服务,和云计算相似,通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一整套系统。
2010年11月,淘宝客户满意中心推出极具互联网特色的新服务模式——云服务,云服务把社会上懂淘宝且乐意帮助人的淘宝人聚集在一起,汇聚众人的零散时间,利用无处不在的网络,以及时下流行的实时在线沟通工具为淘宝的客户提供服务。
云服务。
其核心是让服务和运营能力像电一样能够长距离传输,随需索取。
借助互联网,“云计算”实现了IT能力的远距离传输。
我们在Google上搜索,并不需要下载Google的软件到电脑上;我们在Gmail里的邮件,并不需要存储到本地的硬盘。
这些计算能力和存储能力,都在Google位于美国硅谷的服务器上运行,但却能被远在地球这一端的我们“随需索取”。
我们不再需要把英特尔处理器、微软软件以及一个庞大的硬盘
买回家,只需要一个能连上互联网的终端即可。
2013年9月22日,安徽电信公司与阿里巴巴正式签约淘宝“云服务加速”项目合作协议,双方将共同建设安徽区域CDN加速节点,为安徽淘宝用户提供更为高速、快捷的互联网访问。
足见了云技术对现代电商的影响。
淘宝云服务的经验还可以用到很多方面。
例如,遇上节假日就面临瘫痪的12306网上购票系统,在节假日期间,登不上平台,抢票失败已是家常便饭,用户们更是责骂声不减。
其实铁道部完全可以通过公开招标,来招募符合标准的互联网大公司或传统渠道巨头加入到订票服务中。
铁道部的诉求是服务而不是赚钱,所以唯一需要做的是提供的是强壮而稳定的API,所有加入的订票服务商都可以通过API来完成查询、订票、退票的流程。
这样的好处是显而易见的,铁道部可以抛开自己不擅长的纯WEB业务,专注在为消费者提供后端服务支持,也可以不用为额外的WEB流量买单。
同时开放订票服务API,也是能够带动相关行业提升的,引入市场化竞争,有利于消费者的购票体验提升。
-尽管国内目前尚没有面向大型服务的成熟云服务,不过阿里云、盛大云,腾讯已经在做一些尝试,将自己大量的计算资源开放给大家。
借助于云计算服务,铁道部能够支撑更强壮的API服务,支持弹性扩展不用购买昂贵的硬件设备,借助阿里、腾讯这些互联网大公司的资源承载大量突发性访问,确保服务不会宕机。