首页 > 代码库 > 读书笔记之《淘宝技术这十年》

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


这是一本怎样的书?

这本书很有趣,故事叙述好玩,且价值颇高;
它让更多人了解并熟悉淘宝,让我们近距离观察大公司成长过程中遇到的问题;

我将从三个方面来做这个概要版的读书笔记;

淘宝的升级路线叙述了淘宝的成长路线,如果能引起大家的兴趣,那最好,书中有详实有味的数据供人品味;

淘宝创新的技术一节总结淘宝在壮大的道路中所创造的技术,其实很多在我们的日常应用中都能找到影子,所不同的是能够支撑的规模;

最后一节出自这本书的最后一章,牛P列传;本书的作者采访了淘宝中的牛人,道出他们的成长经历,同时也能看到这些高人对新人的建议;

豆瓣评分7.4分,我给4星;

 

淘宝的升级路线

2003 年 4 月 7 日,马云,在杭州,成立了一个神秘的组织。
为了在最短的时间做出一个网站来,为了和时间赛跑,淘宝的第一版源代码直接从国外买来,架构为LAMP(Linux+Apache+MySQL+PHP);买来之后做了些本地化的修改,对数据库进行读写分离,一个月之后上线,兵贵神速。

最初上线的淘宝只有一台服务器,随着访问量的增加,将数据库服务器独立出来,同时,增加一台Email服务器;商品检索功能最初的实现就是使用sql中的like搜索,对数据库资源消耗严重,最快的改进招数就是找老爹要,使用阿里巴巴的iSearch模块替换like方式;

在 2003 年底,MySQL 已经撑不住了,技术的替代方案非常简单,就是换成 Oracle。换 Oracle 的原因除了它容量大、稳定、安全、性能高之外,还有人才方面的原因。在 2003 年的时候,阿里巴巴已经有一支很强大的 DBA 团队。其中,ACE人才就有4名;

到 2004 年上半年,淘宝决定更换开发语言,将PHP更改为JAVA;

到07年,淘宝已经用上了 IBM 的小型机、Oracle 的数据库、EMC 的存储,这些东西都是很贵的,那些年可以说是花钱如流水。有人说过“钱能解决的问题,就不是问题”,但随着淘宝网的发展,不久以后,钱已经解决不了问题。

07年之后,淘宝就开始了真正的壮大之路,走上了创造技术的大道;
07年之前,图片存储使用的是NetAPP的文件存储系统,但未对小文件存储进行有针对的优化 ,且扩容成本高昂,网络连接数经常达到极限;在这种背景下,淘宝研发了TFS(淘宝文件系统);2007 年 6 月,TFS 正式上线运营。在生产环境中应用的集群规模达到了 200 台 PC Server(146G*6 SAS 15K Raid5),文件数量达到上亿级别;系统部署存储容量:140TB;实际使用存储容量: 50TB;单台支持随机IOPS200+,流量 3MBps。

淘宝创新的技术

简单总结下淘宝创造了哪些技术:

TFS

淘宝文件系统,上述已说明;

Tair:淘宝KV缓存系统

04年多隆基于BerkeleyDB开发了TBstore,一个key-value的缓存系统;
07年,多隆参考memcache内存结构,为UIC开发了TDBM,另一个缓存系统;
之后合并这两个缓存,并在此基础上进一步扩展,开发出Tair,底层支持5种存储引擎(BerkeleyDB、Redis,TT、fDB、memcache)
目前,Tair已开源;

HSF:高性能服务框架

一个分布式PRC框架,用于系统间调用
service定于基于OSGI方式,通讯层采用TCP/IP协议

Notify:消息中间件

分布式消息中间件,用于替代MQ
支持消息订阅、发布和消费

TDDL:淘宝分布式数据访问层

数据访问路由,使得数据访问对应用层的开发透明,一个表的数据可以分布在多台结点上,而应用的编码同操作单节点DB一样;
支持一次写入,多点读取
数据存储的自由扩展, 不再受限单机容量和速度瓶颈

TbSession框架

Session客户端存储,session存到cookie中
实现分布式环境下的session服务器端存储
session配置统一管理
支持动态更新

从牛人身上看到的

(以下均是花名,淘宝特色)

正明

博士期间开发了开源LVS,2000~2006年在国防科大教书;多次创业,做出来的产品可圈可点,但终究无法得到市场的认可;能做出好的产品并一定就能成功,市场推广是门大学问;
08年进淘宝,做LVS+HAproxy的普及,现在负责CDN系统的改良工作 ;
纯粹的技术人才,如果找不到互补的伙伴,加入一个大公司,也不失为一个好的选择;

毕玄

06年加入淘宝,负责淘宝的高性能服务框架,著作《OSGi原理与最佳实践》,推广OSGi在中国的应用;
看看他的每日时间分配:代码3小时、剩下来很多时间看技术文章或图书,每隔一段时间跳出来想想将来干什么好;
作为淘宝晋升委员会的评委,他给同事们的建议是:
跳出你的位置,想想公司到底面临什么问题,用什么方法来解决?
晋升是看你对公司有哪些贡献,而不是看你的技术有多么牛;

放翁

淘宝开放平台项目负责人
职业经历
在国企东方通做了4年,之后转入阿里巴巴;
放翁的入职经历值得新人学习;在入职阿里巴巴后的初期,他干的是琐事,负责开发web页面之类的活;期间主动学习不归他负责的WEB框架,并多次修改框架bug,最终被上层发现并赏识,从而风生水起;
他新人的建议:
做事要先思考再问人,不断打破自己的一些想法 ;
任何一个公司,都无法做到绝对公平,最终只会有一小部分人得到机会; 抱怨无用,只有不断努力,争取机会;

多隆

淘宝创始人之一
多隆沉浸在程序世界,不受干扰;
公司郊游回来的火车上,他在写代码
给工程师的建议
发现问题,解决问题,不要绕开问题本身
多做事情,不会吃亏,即使不是你的事情
把工作当事业,多隆的程序世界



最后上一张图,思维导图

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