《淘宝技术这十年》读书摘记

淘宝技术这十年
子柳

◆ 第0章 引言:光棍节的狂欢

UV(Unique Visitor,用户访问

其中最关键的便是LVS(Linux Virtual Server,世界上最流行的负载均衡系统之一,

却很少发现淘宝网访问缓慢,这便是CDN (Content Delivery Network,即内容分发网络的作

分布式文件系统TFS(TaoBao File System)来处理这类问题

对于每年数十亿甚至上百亿笔交易的商品详情快照进行保存和快速调用不是一件简单的事情。

Tair(淘宝自行研发的分布式KV存储方案)

ODPS系统的数据系统,不断地进行分析和挖掘。

通常是在什么阶段采用什么技术。在发展的过程中,网站会遇到各种各样的问题,正是这些原因才推动着技术的进步和发展

◆ LAMP架构的网站

LAMP(Linux+Apache+MySQL+PHP),这

eBay基本上只在发达国家展开业务,制造业外包后,电子商务的基本群体大多只能表现为零散的个体间交易

美女阿珂提供了一个很好听的名字“淘宝”。

◆ 武侠和倒立文化的起源

高挑美女阿珂提议大家练习提臀操,这样有助于保持身材,这个建议遭到男士的一致反对,后来虚竹就教大家练习倒立,这个大家都能接受。

◆ 支付手段的创新——支付宝

好的架构是进化来的,不是设计来的”。的确如此,其实还可以再加上一句“好的功能也是进化来的,不是设计来的”。

◆ 第3章 企业级Java网站

“好的架构图充满美感”。一个架构好不好,从审美的角度就能看出来

◆ 脱胎换骨的升级——更换开发语言

个架构师周悦虹,他在Jakarta Turbine的基础上做了很多扩展,打造了一个阿里巴巴自己用的MVC框架WebX

MVC框架是阿里的WebX,控制层用了EJB,持久层是ibatis。另外,为了缓解数据库的压力,商品查询和店铺查询放在搜索引擎中

业务带来的压力更多的存在于数据和存储方面

步一步地把IOE(IBM小型机、Oracle、EMC存储)这几个“神器”都去掉了。

◆ 坚若磐石——围绕性能、容量和成本的进化

于是行癫出手了,他写了一个数据库路由的框架DBRoute

这就是缓存和CDN(内容分发网络)。

数据分库、放弃EJB、引入Spring、加入缓存、加入CDN等工作

提高容量、提高性能、节约成本来做的,由于

◆ 第4章 创造技术

技术的创新和业务的创新到底又是谁推动了谁?

一个商家的一种商品有一个唯一的ID,上下架都是同一个商品

◆ 淘宝文件系统——TFS

到在商用系统和自主研发之间的经

文件比较小;并发量高;读操作远大于写操作;访问随机

因此,TFS在设计规划上考虑在图片的保存文件名上暗藏了 一些元数据信息,例如,图片的大小、时间、访问频次等信息,

技术和业务就是这么互相借力推动着的,业务满足不了的时候,技术必须创新,技术创新之后,业务有了更大的发展空间。

目前淘宝网在各个运营商的中心点设有二级缓存,整体系统中心店设有一级缓存,加上全局负载均衡,传递到后端TFS的流量就已经非常均衡和分散了

淘宝的缓存策略,大部分图片都尽量在缓存中命中,如果缓存中无法命中,则会在本地服务器上查找是否存有原图,并根据原图生成缩略图,如果都没有命中,则会考虑去后台TFS集群文件存储系统上调

◆ 淘宝KV缓存系统——Tair

最初的设想是让买家在社区发起团购,“团长”找到足够的人之后,去跟卖家砍价,这类似于现在蘑菇街的“自由团

是这个项目的项目经理,一灯是产品经理,我们再拉上万剑和一伙工程师就开始行动了

新技术对用户操作习惯的改变,一定要慎之又

招财进宝

就是按成交付费

整个商品详情的页面都在缓存中了,把缓存用到了极致

根据保存的Key(关键字),对key进行Hash算法,取得Hash值,再对Hash值与总Cache服务器数据取模。然后根据取模后的值,找到服务器列表中下标为此值的Cache服务器。由Java Client API封装实现,应用无须关心。

我们把淘宝的用户信息独立出来,形成一个中心系统UIC(User Information Center

推出了淘宝自创的Key-Value缓存系统——Tair (TaoBao Pair的意思,Pair即Key-Value数据对

Tair作为一个分布式系统,由一个中心控制节点和一系列的服务节点组成,我们称中心控制节点为Config Server,服务节点是Data Server

◆ 第5章 分布式电子商务操作系统

作为程序员,只要把功能实现即可,但作为架构师,要考虑系统的扩展性、重用性,

◆ 服务化

运营主要就是类目的运营,什么季节推什么商品,都要在类目属性上做调整,让买家更容易找到。

这样类目和属性要经常调整

Forest(森林,与类目属性有点神似。Catserver还用于提供卖家授权、品牌服务、关键词等相关的服务)。类目属性的服务化是淘宝在系统服务化方面做的第一个探索。

火车模型”,即任何一个乘客没有上车,都不许

叫交易中心(Trade Center,TC),所谓底层业务,就如创建订单、减库存、修改订单状态等原子型的操作;交易的上层业务叫交易管理(Trade Manager,TM),

、IC、SC分别是交易中心(Trade Center)、商品中心(Item Center)、店铺中心(Shop Center),这些中心级别的服务只提供

种是实时调用的中间件(淘宝的HSF,高性能服务框架),一种是异步消息通知的中间件(淘宝的Noti

◆ 中间件

是设立专门的10件以下的通道,这样买东西比较少的顾客就不用排太长的队了,这一招施展后,

有集群、分工、负载均衡、根据QoS分配资源等。

服务的提供者启动时通过HSF框架向ConfigServer(类似超市的电视机)注册服务信息(

HSF框架会根据负载状况来选择具体的服务器,返回结果给调用者,这不仅统一了服务调用的方式,也实现了“软负载均衡”

HSF框架以SAR包的方式部署到Jboss、Jetty或Tomcat下

。Notify是一个分布式的消息中间件系统,支持消息的订阅、发送和消费,其架构图如下所示。

BASE(基本可用(Basically Available)、软状态(Soft State)、最终一致(Eventually Consistent))。

数据访问路由

数据的多向非对称复制

Taobao Distributed Data layer(TDDL

功能可以做得不那么“漂亮”,但必须减少中间环节,真正做到了实用、干净、简洁。我们在向他们介绍产品的时候,

◆ Session框架

因为HTTP协议本身是无状态的,所以经常需要通过Session来解决服务端和浏览器的保持状态的解决方案

就是要么用客户端Cookie来解决问题,要不用服务端的集中缓存区(Tair)的Session来解决登录问题

,应用服务切分了(TM、IM)、核心服务切分了(TC、IC)、基础服务切分了(UIC、Forest)、数据存储切分了(DB、TFS、Tair),通过高性能服务框架(HSF)、分布式数据层(TDDL)、消息中间件(Notify)和Session框架支持了这些切分。一个美好的时代到

◆ 开放平台

当时火热的Salesforce给了阿里人一些启示,那就是做一个支持二次开发的工作平台,半开放式地满足各种卖家的长尾管理需求。

服务单元Bundle的粒度控制,服务之间依赖管理,性能与规范的冲突,调试与隔离的平衡。

路由、数据规范和授权),

LazyParser,主要的实现重点就是最小化数据缓存来进行并行业务和数据解析操作,上线后效果不错,整个系统平均处理时间从10ms降低到了4ms

震子开心地和我说:开放平台稳定性的KPI可以随便大胆地写几个9了

ISV(独立软件开发商)的模式引起了我们的注意

轻电商(XTao)项

用户授权更细化了授权操作范围(细粒度到了数据范畴)

集市(C2C)、天猫(B2C)、一淘(电商搜索返利入口)、无线、新业务、O2O(本地生活)、团购平台(聚划算),

◆ 第6章 我在淘宝这八年

谋事在人,成事在天”。

于是我们就从底层的IC、TC、UIC开始测试

普通工程师跟着业务跑,来啥需求做啥事;文艺工程师专注于自己的领域,研究得非常精深;2B工程师跳来跳去,啥都干,啥都浅尝辄止;还有一种工程师叫牛B工程师,啥都能干,啥都精通(这种人在工程师心中叫“神”

究细节了,研究桌椅怎么摆放比较合理、学员怎么邀约会有比较高的出席率、讲师在课堂上容易出现哪几类问题、PPT的字号多

经过老板提点,我们认为培训的本质是:“通过知识的流转,促进员工的成长,进而推动公司业绩的提升。

宝网一拆为四,变成了淘宝、天猫、一淘和聚划算,

视频、文档、直播、问答。视

在线文档的难度不在于产生内容,而在于内容的吸引力,PPT很难承载有实质内容的东西,PDF太长的话又没有人看。

认为互联网行业的知识不是要去管理的,而是要让隐性的知识显性化,在它的生命周期里迅速传播出去。

苏苏(就是《人人都是产品经理》的作者苏杰)任“大三通”项目的PM。

◆ 正明——集团核心系统高级研究员

我们主要的职责是申请到更多的资源和大家一起设立好的激励机制,让分会有更多创新的想法,更自主、自发地开展工

性能、高可扩展、高可用、低成本的基础平台

宝的社会价值是显而易见的,系统的规模和挑战摆在那里,技术问题很快就能给用户带来价

hear and I forget.I see and I remember. I do and I understand”,

不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之

◆ 正祥——淘宝高级研究员,OceanBase项目负责人

系数据库的数据规模受限的根本原因是目前的关系数据库尽管有各种方式的扩展,但本质上是单机系统

是具备事务,数据一致性很好。HBase在数据容量上会有优势,几千万亿字节都有可能,但它没有解决事务的问题

他们聪明、刻苦、有闯劲、愿意接受新事物

做事、做成事作为主要目标,该他得到的东西,一定会顺理成章的、水到渠成地得到,但是,如果把上升作为主要目标,做同样的事,结果就会完全不一样。

我觉得百度其实不如淘宝重视技术,KPI导向的文化很重,各部门之间的协作和配合比较难(这一点淘宝要好不少),不同部门、不同项目的开发人员做了不少有差别但其实比较类似的东西,看起来个体效率高,但整体效率未必高,这可能是百度加班很严重的原因之一。

◆ 毕玄——集团核心系统资深技术专家

玄:现在如果没有什么特殊情况的话,我会花很多时间看技术方面的文章或者图书,写代码的时间可能每天只有两三个小时。每隔一段时间会去想一想将来干什么比较好,因为写代码时间会过得很快,要经常跳出来想

你回顾了你一年做了什么事情,对公司有什么贡献,技术上有哪

。我经常会问他们,你有没有利用业余时间出于自己的技术兴趣做的一些小东西。这样的学生我们通常会比较感兴趣,我认为这样的学生是真正喜欢技术。聪明程度一般就可以的,他能够进入这些不错的学校,智商是不会有什么问题的。

◆ 放翁——淘宝开放平台项目负责人

有些业务会要求开一些白名单、黑名单、特殊通道之类的东西,而作为基础服务,我又要保持它的完整性和统一性。这时就需要一些协调和沟通的技能。作为一个架构师,经常会有一种失落感,有时候会发现我们做出来的东西有可能没有办法实施

有两点,技术人员首先会关心技术好不好,若技术不好,讲得再好都会感觉有些浮,所以每次我都会讲些技术方面的内容,不是具体的实现细节的技术,而是通用的一些思想和方法。另外一点就是我对开放平台的一种信仰和思想,我能通过开放平台为淘宝做什么。这样其他人会感受到听这个课是有帮助的。

第一个是做事要自己思考后再去问别人,而不是一遇到问题就找人求助。第二个是不断地打破自己的一些想法,你不要担心自己今天已经做了50%的工作,要是推倒重来,前面的事情都白干了。

推荐大家去走走云栖竹径、虎跑后山、江洋畈,这些地方的人比较少,很安静,能够让你放松身心。长一点的路线是从古荡上去到北高峰,然后到宋城。

◆ 云铮——数据平台与产品部资深技术专家

兴趣是最好的老师,坚持是达到梦想的唯一途径,当然,在个人发展的不同阶段寻找到合适的导

◆ 小马——淘宝UED前端通用平台高级技术专家

性能更应该是功能……”,这让我想到很多项目其实一开始都很关注功能,当功能通过后,先草草上线,而后再逐步完善性能上的问

,很多人知道“墙”阻碍了信息的交流,却不知道“墙”对技术的发展影响很大,“翻墙”是技术人员必备的技能。

所以说创业其实是一种心态,你用旺盛的精力、饱满的热情和坚定的信念去克服一个又一个的困难,这就是创业

到外面去创业和在一个大公司里创业,我个人觉得并没有本质的区别

◆ 淘宝传奇工程师多隆的程序世界

发现问题,解决问题,不要绕开问题的本身;多做事情,不会吃亏,即使不是你的事情。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值