《淘宝技术这十年》读后感汇报_第1页
《淘宝技术这十年》读后感汇报_第2页
《淘宝技术这十年》读后感汇报_第3页
《淘宝技术这十年》读后感汇报_第4页
《淘宝技术这十年》读后感汇报_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《淘宝技术这十年》读后感汇报2014年9月一、概要介绍本书围绕着网站业务和系统架构之间的关系,讲述了淘宝十年的技术演进历程。1、技术篇淘宝技术的发展历程(第1章—第5章)本书核心,包含了淘宝2003-2012年技术架构、业务发展的主体内容。2、历程篇笔者自身的经历(第6章)

作者在淘宝的八年主要工作历程。3、人物篇淘宝技术专家的故事(第7章)通过技术专家的访谈的方式,讲述了淘宝8位技术专家的故事。整体包括三部分内容:一、概要介绍——技术架构版本演进V1.02003.05—2004.01LAMPMYSQL读写分离V1.12004.01—2004.05MYSQL迁移至OracleSQLRelay中间件V2.02004.02—2005.03PHP迁移至JavaMVC框架WebX搜索引擎iSearchV2.12004.10—2007.01支持分库的数据访问框架摈弃EJB引入Spring建立缓存建立CDNV2.22006.10—2007.12分布式存储TFS分布式缓存TairV3.02008.10—至今服务化、中间件Session框架开放平台分布式电子商务操作系统二、淘宝技术的发展历程——V1.0个人网站时期2003.05-2004.01(淘宝V1.0)1、快速搭建的网站2003年4月7日-5月10日,一个月上线。当时应用需求:起步阶段、较低成本、支持扩展和二次开发。2、快速搭建的网站采用架构:LAMP(Linux+Apache+MySQL+PHP),包括Linux操作系统、ApacheHTTP服务器,MySQL数据库软件)和PHP超文本预处理器做Web应用开发。LAMP架构特点:相互支持效果好,发布速度快,技术开源免费。技术改造:对MySQL数据库进行了拆分,由一个数据库拆成它拆分成一个主库、两个从库,并且读写分离,存储容量增加了,有了备份,使得安全性增加了,读写分离使得读写效率得以提升。二、淘宝技术的发展历程——V1.0用作者的话说,淘宝是一个买来的网站:淘宝是在2003年5月10日上线的,2003年4月7日到5月10日,这之间只有一个月时间。淘宝采用的方式是——“买一个来”。思考和心得最佳实践、反编译的快速高效,能够解决很多实际的生产问题:资管系统流程管理:学习福建,WLAN热点拓扑立体楼宇虚拟化展现,学习陕西,从能耗管理平台中自动同步动环资源数据;代维管理系统的挑刺行动中对停电、发电调度流程进行了反编译:学习安徽,利用资管系统中扩展续航时长、路途时长、优先级三个字段,有EOMS自动生成发电工单),可以很好地提升管理和生产效率。后续将继续发扬并扩展反编译的范围,从已有需求的实现、问题的改进,到新技术、新成果的引入,通过“反编译”快速提升生产支撑效率。二、淘宝技术的发展历程——V1.1个人网站升级2004.01-2004.05(淘宝V1.1)1、数据库由MySQL换成Oracle背景:MySQL当时是V4版本,存储引擎在写数据的时候会把表锁住,随着业务量的增加,处理能力无法满足需求。技术改进:换成了性能并发能力强大的Oracle数据库,通过开源的SQLRelay连接池代理服务与数据库连接。2、采用SAN磁盘阵列存储扩展一阶段:数据量变大后,本地存储无法满足时,采用NAS(NetworkAttachedStorage,网络附属存储)作为数据库的存储设备,加上OracleRAC(RealApplicationClusters,实时应用集群)来实现负载均衡。扩展二阶段:由于NAS的网络传输的延迟很严重,换成了Dell和EMC合作的SAN磁盘阵列进行存储,为提升RAC的效率,服务器换成了小型机,性能提升了十几倍。二、淘宝技术的发展历程——V1.11、开创之初,做好推广运作、广告宣传,带来的就是迅速上涨的流量和交易量。思考和心得网管支撑在新系统上线、版本升级的时候,做好宣传是关键(通过论坛、微信、飞信等多种平台),避免“热建冷用”是核心,要彻底解决“不知道、不会用、不好用”的问题,才能取得更好的推广效果。2、淘宝打败易趣,第一招是免费、第二招就是“安全支付”(支付宝)、而淘宝的第三招就是“淘宝旺旺”IM即时通讯。思考和心得便捷沟通才是关键,系统的不断改进,需要应用人员能够有快捷的问题和需求的反馈方式,网管的客服是关键。正在考虑通过微信的方式建立网管客服平台,提升沟通的便捷性。二、淘宝技术的发展历程——V2.0-2.1企业级Java网站2004.01-2004.05(淘宝V2.0-2.1)1、开发语言由PHP换成Java(脱胎换骨的升级)背景:SQLRelay代理服务经常会死锁,只能通过重启服务,为了彻底解决这个问题,只有换开发语言。技术选择:Java是当时最成熟的网站开发语言,Java具有良好的企业开发框架,主流的大规模网站普遍采用,后续维护成本低。实施方案:请SUN工程师进行架构改造,为了保证稳定性,通过模块化的方式进行迁移,成熟一个替换一个。二、淘宝技术的发展历程——V2.0-2.1企业级Java网站2004.01-2004.05(淘宝V2.0-2.1)2、采用JavaMVC的框架技术架构简介:JavaMVC:模型model、视图view、控制器controller,其中Model负责在数据库中存取数据,视图负责显示数据,控制器负责从视图读取数据,控制用户输入,并向模型发送数据,来进行业务逻辑、数据、界面显示的代码开发。技术改造:基于MVC框架建立了WebX(在阿里巴巴集团内部广泛使用的,层次化、模块化的一个Web框架),易于扩展,方便组件化开发。控制层技术:先使用了通用的EJB(EnterpriseJavaBean),具有分布式、可扩展、安全性高的特点。搜索引擎:采用isearch技术把数据库里的数据dump(倾倒)成结构化文本文件后,放在硬盘上,提供Web应用以约定的参数和语法来查询这些数据。基础平台:使用了IOE组合配置(IBM小型机+Oracle数据库+EMC存储)。并对Oracle数据库进行了分库分表、容灾备份的基础上,自主开发了DBRoute数据库路由框架,统一处理了数据的合并、排序、分页等操作,让程序员像使用一个数据库一样操作多个数据库里的数据。二、淘宝技术的发展历程——V2.0-2.1企业级Java网站2004.01-2004.05(淘宝V2.0-2.1)3、缓存和CDN(内容分发网络)网络技术背景:2005年,商品数量快速增至1663万个,注册会员1390万个,需要快速提升系统的性能,提高用户访问效率。技术选择:在搜索引擎、分库分表的基础上使用了缓存和CDN内容分发网络技术。首先,将缓用户经常访问的、影响访问速度的商品详情信息放到缓存里,提升页面浏览效率。针对高速增长的访问量,在全国部署了80多个CDN节点(2004年10月—2007年1月),通过分布式的缓存技术,将访问请求指向离用户最近的服务节点上,大幅提升了用户访问速度。二、淘宝技术的发展历程——V2.0-2.1淘宝的用户访问、页面访问分析是架构演进的一个重要的依据。思考和心得“网管的网管”应用效果评估同样是推动网管系统建设的一个重要的参考,是网管系统架构演进的一个重要的依据;用得好的功能、使用频次高的功能,需要对应用性能重点进行保障,包括软件优化、硬件扩容,对于用的不好功能下线处理,“反复抓、抓反复”,通过架构的不断优化调整,提升软硬件资源的利用率和支撑效果。二、淘宝技术的发展历程——V2.2创造技术2006.10-2007.12(淘宝V2.0-2.1)1、淘宝分布式文件存储系统(TFSTaoBaoFileSystem)背景:为了提升交易的便捷性,2006年下半年在业务上将商品和交易拆开管理,买家需要“有图有真相”,所有的商品交易都记录下了快照信息(2010年保存了286亿个图片文件),导致存储成本大幅上升,现有NetApp网络存储平台不能满足日益增长的存储要求。技术创造:为了解决存储难题,从2006年开始,淘宝决定自己开发一套针对海量小文件存储的文件系统,用于解决自身图片存储的难题。淘宝建立了适合自身使用TFS的分布式存储系统(TaoBaoFileSystem,TFS)。二、淘宝技术的发展历程——V2.2创造技术2006.10-2007.12(淘宝V2.0-2.1)1、淘宝分布式文件存储系统(TFSTaoBaoFileSystem)技术特点:淘宝TFS文件系统在核心设计上最大的取巧在于,采用“对象存储”(数据和数据属性的综合体)的方式,突破了数据管理的瓶颈。每个DataServer运行在一台普通的Linux主机上;以Block文件的形式存放数据文件(一个Block的大小一般为64MB);利用ext4(Fourthextendedfilesystem日志式文件系统)存放数据文件;进程管理磁盘;HA(高可用性HighAvailability)机制的中央控制节点,在安全稳定和性能复杂度之间取得平衡;文件名内置元数据信息,将更多的元数据加载入内存,提升访问速度;分布式存储系统:文件比较小;并发量高;读操作远大于写操作;访问随机;没有文件修改的操作;要求存储成本低;能容灾,能备份。二、淘宝技术的发展历程——V2.2创造技术2006.10-2007.12(淘宝V2.0-2.1)1、淘宝分布式文件存储系统(TFSTaoBaoFileSystem)2007年6月,TFS正式上线运营。这标志着淘宝网从使用技术到了创造技术的阶段。应用规模:在生产环境中应用的集群规模达到了440台PC服务器。支持文件数量也扩容至百亿级别;系统部署存储容量为1800TB;当前实际存储容量为995TB;单台DataServer支持随机IOPS(Input/OutputOperationPerSecond每秒读写操作的次数)900+,流量为15MB+。二、淘宝技术的发展历程——V2.2创造技术2006.10-2007.12(淘宝V2.0-2.1)2、

淘宝分布式缓存方案(Tair)背景:在“招财进宝”项目(淘宝针对卖家按成交量进行付费的项目)中,添加了商品浏览次数字段,由于需要实时更新,而交易量巨大,在数据库直接更新数据会宕掉,为了解决库网页异步快速动态更新的问题,需要建立缓存系统。前传1:首先,自主研发了名称TBstore的缓存系统(一个分布式的基于开源的BerkeleyDB的缓存系统),缺点是在数据量超过内存的时候,开始将数据写到磁盘上,缓存的性能会大幅下降。前传2:2007年,淘宝将用户信息独立出来,建立了一个UIC(UserInformationCenter)用户信息中心,用户信息是所有功能都要依赖的信息,调用频次很高(每天要取几十亿条的用户信息)。如果直接查询数据库,会导致数据库崩溃,需要建立缓存系统。建立了TDBM(淘宝数据库缓存系统)系统,抛弃了BerkeleyDB的持久功能,数据全部存放在内存中。在内存利用率和吞吐量方面得到了大幅提升。二、淘宝技术的发展历程——V2.2创造技术2006.10-2007.12(淘宝V2.0-2.1)2、

淘宝分布式缓存方案(Tair)建立Tair:由于TDBM、TBstore的数据接口和用途都很相似,开发团队把二者合并,推出了淘宝自创的Key-Value缓存系统——Tair(TaoBaoPair,基于Key-Value数据对),Tair包括缓存和持久化两种存储功能。技术特点:Tair作为一个分布式系统,由一个中心控制节点和一系列的服务节点组成。中心控制节点为ConfigServer,服务节点是DataServer。ConfigServer负责管理所有的DataServer,维护DataServer的状态信息。DataServer对外提供各种数据服务,并以心跳的形式将自身的状况汇报给ConfigServer。ConfigServer是控制点,采用一主一备的形式来保证其可靠性。二、淘宝技术的发展历程——V2.2创造技术2006.10-2007.12(淘宝V2.0-2.1)2、

淘宝分布式缓存方案(Tair)应用效果:Tair支撑了淘宝几乎所有系统的缓存信息。之前的搜索引擎是把数据分到多台机器上,但是每份数据只有一份,现在是每份数据变成多份,整个系统从一个单行的部署变成了矩阵,支撑更大的访问量,并且做到了很高的可用性。到2007年,淘宝网日均PV达到2.5亿个,商品数超过1亿个,注册会员数达5千多万个,全网成交额达433亿元。二、淘宝技术的发展历程——V2.2技术和业务就是这么互相借力推动着的,业务满足不了的时候,技术必须创新,技术创新之后,业务有了更大的发展空间。思考和心得随着网络规模的扩大和网络技术的发展,系统支撑工作必须同步创新、并适当提前做好准备,才能在实际应用中更好满足网络生产需要。

做好微创新,一个微创新提升一项工作效率,“不积跬步,无以至千里”,长效的微创新能够改变生产维护的方式,形成真正的生产力。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)1、服务化背景:业务发展速度快速增长,但在技术架构的制约下,团队协作越来越艰难,代码越来越臃肿,开发效率越来越低,新业务需求越来越多,架构亟需调整。服务拆分:2008年初,Oracle的连接池数量都不够用了,数据库的容量到了极限,即使上层系统加机器也无法继续扩容,只有把底层的基础服务继续拆分,从底层开始扩容,上层才能扩展,这才能容纳以后三五年的增长。业务拆分:把交易这个核心业务模块拆分出来。交易中心(TradeCenter,TC),所谓底层业务,就如创建订单、减库存、修改订单状态等原子型的操作;交易的上层业务叫交易管理(TradeManager,TM),这个时候还有一个淘宝商城的项目在做,拆分出来的那些基础服务给商城的快速构建提供了良好的基础。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)1、服务化业务模块化:到2008年年底就做了一个更大的项目,把淘宝所有的业务都模块化,这是继2004年从LAMP架构到Java架构之后的第二次脱胎换骨。拆分的业务架构包括TC、IC、SC分别是交易中心(TradeCenter)、商品中心(ItemCenter)、店铺中心(ShopCenter),这些中心级别的服务只提供原子级的业务逻辑,如根据ID查找商品、创建交易、减少库存等操作。再往上一层是业务系统TM(TradeManager,交易业务)、IM(ItemManager,商品业务)、SM(ShopManager,后来改名叫SS,即ShopSystem,店铺业务)、Detail(商品详情)。应用效果:系统这么拆分的好处显而易见。拆分之后的每个系统可以单独部署,业务简单,方便扩容;有大量可重用的模块便于开发新的业务;能够做到专人专事,让技术人员更加专注于某一个领域。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)2、中间件背景:模块拆分之后,系统之间还是必须要打交道的,越往底层的系统,调用它的应用越多,需要解决拆分之后的系统通信问题,同时要求底层的系统必须具有超大规模的容量和非常高的可用性。建立中间件系统:对此,淘宝增加了2个中间件系统。一种是实时调用的中间件(淘宝的HSF,high-speedserviceframework高性能服务框架),一种是异步消息通知的中间件(淘宝的Notify),以及淘宝数据查询中间件TDDL。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)2、中间件(一)HSF淘宝服务框架(high-speedserviceframework):应用之间以sevice的方式进行交互。服务的提供者启动时通过HSF框架向ConfigServer注册服务信息(接口、版本、超时时间、序列化方式等),这样ConfigServer上面就定义了所有可供调用的服务。服务调用者启动的时候向ConfigServer注册对哪些服务感兴趣(接口、版本),当服务提供者的信息变化时,ConfigServer向相应的感兴趣的服务调用者推送新的服务信息列表;调用者在调用时则根据服务信息的列表直接访问相应的服务提供者,而无须经过ConfigServer。ConfigServer并不会把服务提供者的IP地址推送给服务的调用者,HSF框架会根据负载状况来选择具体的服务器,返回结果给调用者,这不仅统一了服务调用的方式,也实现了“软负载均衡”。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)2、中间件(二)Notify分布式消息中间件系统:用户的一次请求,在底层系统可能产生10次的消息通知。这些消息通知需要一个强大的系统提供支持,淘宝建立了Notify分布式消息中间件系统。NotifyServer在ConfigServer上面注册消息服务,消息的客户端通过ConfigServer订阅消息服务;某个客户端调用NotifyServer发送一条消息,NotifyServer负责把消息发送到所有订阅这个消息的客户端,为了保证消息一定能发出,且对方也一定能收到,消息数据本身就需要记录下来,这些信息存放在数据库中。NotifyServer可以水平扩展,NotifyClient也可以水平扩展,数据库也可以水平扩展,因此,这个消息系统的吞吐量是没有上限的,现在Notify系统每天承载了淘宝10亿次以上的消息通知。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)2、中间件(三)数据查询中间件TDDL(taobaodistributeddatalayer淘宝分布式数据访问层):有了HSF和Notify的支持,还有一个制约系统规模的更重要的因素,就是数据库,也必须拆分。数据库拆分之后,需要大幅提升数据查询速度,淘宝建立了TDDL数据查询中间件。查询基础上,包括数据的备份、复制、主备切换等功能,这一套系统都在TDDL中完成;数据访问路由,将针对数据的读写请求发送到最合适的地方。一次写入,多点读取。数据存储的自由扩展,不再受限于单台机器的容量瓶颈与速度瓶颈,平滑迁移。TDDL在建成后的4年时间里,满足了近700个业务应用的使用需求。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)3、Session框架(客户端与服务系统之间交互架构)背景:为了解决上亿个访问用户的Session信息存储、检索管理和集群Session共享的问题,淘宝建立了自己Tbsession框架。处理过程:用户向服务器发送第一个请求时,服务器为其建立一个Session,并为此Session创建一个标识,用户随后的所有请求都应包括这个标识号。服务器会校对这个标识号以判断请求属于哪个Session。会话保持有效,默认状况下,直到浏览器关闭,会话才结束。技术特点:Session中存储的内容包括昵称、用户ID、登录状态等用户信息,采用了集中式缓存区的Session方式,实现服务端存储,减少Cookie使用,增强用户信息的安全性,避免浏览器对Cookie数量和大小的限制,支持动态更新,Session的配置动态更新。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)4、开放平台淘宝进入3.0时代:至此,通过高性能服务框架(HSF)、分布式数据层(TDDL)、消息中间件(Notify)和Session框架支持了架构改造的切分。应用服务切分了(TM交易中心、IM交易管理)、核心服务切分了(TC交易中心、IC商品中心)、基础服务切分了(UIC用户信息中心、Forest商品类目属性)、数据存储切分了(DB、TFS、Tair)。一个美好的时代到来了,高度稳定、可扩展、低成本、快速迭代、产品化管理,淘宝的3.0系统走上了历史的舞台。业务推动平台开放:淘宝已经变成了包含C2C、B2C、导购、团购、社区等各种电子商务相关的业务的一个生态体系,既然说是一种“生态体系”,那就不能把所有的业务把控在自己的手中,需要把数据、应用通过接口的方式进行开放,让更多的开发者ISV(IndependentSoftwareVendors独立软件开发商)调用,他们可以开发出形形色色的产品。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0)4、开放平台2007年:萌芽。SOA盛行的年代,内部架构服务化成为开放的第一步,内部服务不做好隔离,开放就意味着风险不可控。建立了支付宝服务框架SOFA(service-orientedframeworkarchitecture面向服务框架)、淘宝的HSF(高性能服务框架)、阿里软件的ASF(advancedserviceframeworkSCA面向服务应用组件架构)。为开放平台奠定了基础。2008年:雏形。增加了服务路由,外部调用可以快速获取内部信息。服务接口标准化,统一方式的获得各种标准化信息。授权,使外部合法的获取内部信息。开始正式对外应用,日均调用1000次。二、淘宝技术的发展历程——V3.0分布式电子商务操作系统2008.01-至今

(淘宝V3.0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论