W e S D
0 1

[书籍分享]0-005.淘宝技术这十年

封面


 

内容简介


任何网站的发展都不是一蹴而就的。它在发展过程中会遇到各种各样的问题和业务带来的压力。正是这些问题和压力推动着技术的进步和发展,而技术的发展反过来又会促进业务的更大提升。如今淘宝网的流量排名已是全球前15名国内前3名,其系统服务器也从一台发展到万台以上。

《淘宝技术这十年》工程师的角度讲述淘宝这个超大规模互联网系统的成长历程,及其所有主动和被动技术变革的前因后果。书中有幕后故事产品经验架构演进技术启蒙,也有大牛成长业内八卦失败案例励志故事。《淘宝技术这十年》文风流畅,有技术人员特有的幽默感;内容积极正面,有现场感,全部是作者亲身经历

 

作者


子柳,本名赵超,2004年加入淘宝网,取花名子柳。历任开发攻城狮项目经理产品经理测试经理,2009年随着淘宝系统的大规模重构和人才的迅速扩张,创办了"淘宝技术大学",培养内外部工 程师众多,人称"校长"。2011年将培训中的内容写成文章发表,遂一发不可收拾,总结了淘宝十年的技术之路,乃成本书。

 

观后感


所有的进步都是不稳定的,一个问题解决了,我们不得不面对又一个新问题。” —— 马丁·路德·金

全书各章都引用这个相同的名言,不断凸显了它的重要性。事实也确实如此,系统如此,人生亦如此。 

淘宝技术十年,是中国互联网崛起的十年,也是互联网技术发展的十年。一个伟大公司的成功,离不开天时地利人和。前辈们也有很多做电子商务,可惜都死在了沙滩上。不是他们不厉害,只是出生的时间不对,各方面条件不成熟。

淘宝的成功,有它的机缘,也有马云的聪明才智和努力。这本书的内容,从淘宝的创立开始, 一直讲到最近的双十一。淘宝也是一个很网站开始,而且还是买的程序搭建的,慢慢的经过改进完善,最终成为这么的一个平台。从技术上讲,淘宝遇到了很多技术先河问题,这些问题没有前车之鉴,只能靠自己去摸索解决。 这得益于淘宝有这么多人才,其实主要还是有强大的资金支持。

从这本书中可以了解到很多互联网平台的技术,CDN、负载均衡、缓存、大文件系统、消息中间件机制、服务器架构等等。这些技术会给你一个概念及应用场景,当然不可能讲的很深入,这本书不是一本讲技术专业的书,只是讲随着淘宝的发展, 淘宝网以及阿里巴巴集团技术的成长。看完后,你的感触是,淘宝真有钱,淘宝人才真多。这么大的平台,没有人才真多办不起了,人才太重要了。

下面是书籍的目录,及章节索引,穿插着SuperDo的一些小注解。

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

淘宝网不就是一个网站吗?是的,但淘宝网不是一个简单的网站,它的规模排在全球前十几名,顶尖的网站需要顶尖的技术作为支撑。在用户享受淘宝的乐趣的背后,有哪些神秘的技术在支撑它呢?

第1章 个人网站

创建一个小小的网站需要什么技术?在群敌环伺的状况下怎么走出网站的第一步,下一步......?淘宝网独特的文化和价值观又是怎么形成的?本章试图给你一个解读。

  • LAMP架构的网站 
  • 武侠倒立文化的起源

再补:淘宝是从一个个人网站逐渐发展成一个巨大的电子商务平台。万物衍于小,淘宝这个超级电商平台,出身也是个人网站,然而在淘宝开创元勋和远见卓识的马云的带领下,从最初的LAMP简单架构出发,一步步建立起淘宝网独特的文化和价值观。

第2章 个人网站的升级

小网站都想变大,变大总会遇到成长的烦恼,淘宝网的青春期有哪些烦心事?淘宝网的工程师用什么思路来解决遇到的问题?在解决问题之余,他们又用了哪些创新的手段来超越竞争对手

  • 数据库从MySQLOracle
  • 支付手段的创新 —— 支付宝
  • 交流方式的创新 —— 淘宝旺旺

再补:从创立之初的”个人网站”,淘宝在业务量剧增的同时要想再谋高更高层次的发展就必然要提高网站的流量业务承载量,这就必须对网站进行全面的改进。最初个人网站是用MySQL,后来承载不了业务需求更换成了Oracle。另外淘宝的一个创新就是使用新的支付手段——支付宝,首创国内电商的B2B沟通模式——淘宝旺旺,这些都为淘宝的迅速发展奠定了坚实的基础。

第3章 企业级Java网站

给一个网站更换开发语言,这种事情想想都恐怖,淘宝网在2004年就从PHP语言换成了Java语言,这是怎么做到的?一个企业级的Java系统应该采用什么样的架构?归纳网站遇到的问题,主要是对性能、容量和成本的控制,这有哪些通用的解决方案?在技术实力得到提升之后,淘宝网的哪些业务有了突飞猛进的发展?哪些业务又会遇到技术的障碍?

  • 脱胎换骨的升级 —— 更换开发语言
  • 坚若磐石 —— 围绕性能容量成本进化

再补:由于数据库的问题,淘宝不得不更换数据库语言(oracle),更换网站的开发语言变成了淘宝更改网站的切入点,机智的淘宝开创元勋们选择了雇佣sun公司的攻城狮们用Java语言来开展全新的淘宝网站,因为没人比他们更懂Java,而且,他们更懂eBay(在此之前他们用Java为eBay重建过系统)。淘宝系统脱胎换骨,攻城狮们围绕性能、容量和成本的优化进行了大刀阔斧的改进

第4章 创造技术

用钱能解决的问题都不是问题,我们花钱可以购买更好的机器和更好的服务。但当你变成业内最强之后,你的问题就会独特到没有人碰到过,这就意味着你必须自己动手解决问题。幸运的是,淘宝网的发展很快,不幸的是,淘宝网遇到了前所未有的问题。于是,淘宝网被迫开始走向了技术创新的道路。而技术的创新和业务的创新到底又是谁推动了谁?

  • 淘宝文件系统 —— TFS
  • 淘宝KV缓存系统 —— Tair

再补:“用钱能解决的问题都不是问题”用在那时已成为国内最大电商平台的淘宝再合适不过了,那时的商用服务器和流量业务解决方案已经不能满足淘宝发展的需要了。淘宝文件系统TFS(Taobao File System)以及淘宝KV缓存系统Tair(Taobao Pair)便是淘宝在这个成长期的创新技术,这为淘宝解决了巨大的图片内容存储的难题以及网页内容快速加载的难题。

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

在飞速发展的背后,隐患已经埋下。在技术架构的制约下,团队协作越来越艰难代码越来越臃肿开发的效率越来越低新业务的需求越来越多老业务的压力眼看就要超过系统的容量了。这时候,架构该做怎样的调整?又一次的脱胎换骨欲火重生。重生后,在分布式的电子商务操作系统下,我们才敢举办一次又一次的“双十一”活动。

  • 服务化
  • 中间件
  • 高性能服务框架HSF
  • 消息中间件Notify
  • 分布式数据访问层TDDL
  • Session框架
  • 开放平台

再补:在飞速发展的背后,隐患也已埋下,系统代码的可扩展性可维护性简洁性承载量能否满足新老业务的需求等一系列问题,系统架构需要怎么样改进和调整才能脱胎换骨,淘宝元勋们开创了分布式的电子商务操作系统。拆分业务,使用中间件HSF(高性能床架)、Notify(消息中间件)、TDDL(分布式数据访 问层),Session框架,开放淘宝自己的开发平台。2011年时,淘宝的Hadoop分布式计算机群拥有2000多个节点,CPU24000core,Memory:48000G,Disk:24000块2,日承载PV量16-25亿

第6章 我在淘宝这八年

作为淘宝技术的亲历者,我不经意间见证了一段伟大的历史,这段历史,从高层看波澜壮阔从底层看妙趣横生。我不是高层,这里记录的是发生在底层的一些事。

再补:这是作者以自己角度叙写的他在淘宝的八年工作生涯,工作等级从P1-P5(初中高等级),再到M1,M2(管理层),然后继续转为P7(专家教授级),他以一个亲历者的角度去叙写淘宝伟大发展史的底层所发生的事情,用作者自己的说法,这段历史非常“妙趣横生”。

第7章 牛P列传

前面讲述了技术和业务是怎么互相促进、共生发展的。与此类似,企业和个人也是这样一个关系一个水平很高的人,找不到合适的平台,就难以发挥自己的价值一个蓬勃发展的企业,找不到合适的人才,其前景也会堪忧。幸运的是,在淘宝网蓬勃发展的过程中,出现了一大批业内顶尖的高手,他们推动了淘宝的发展,淘宝也让他们实现了个人的价值。接下来让我们一起看看那些人、那些事。

  • 正明 —— 集团核心系统高级研究员
  • 正祥 —— 淘宝高级研究员,OceanBase项目负责人
  • 毕玄 —— 集团核心系统资深技术专家
  • 放翁 —— 淘宝开放平台项目负责人
  • 吴翰清 —— 阿里云集团信息安全中心高级安全专家
  • 云铮 —— 数据平台与产品部资深技术专家

再补:这是作者以采访形式介绍淘宝牛B人物的一章,被采访者都是在淘宝技术上有巨大贡献的人。子柳先生喜欢说一句话“每一个牛P的人都有一段苦逼的历史”,果然牛P的人都是练出来的,实干才是硬道理

技术关键词

  • PD, ERP, Hadoop, LVS, Haproxy, CDN节点, 连接池, HBase, 均衡负载。

脑洞

  • 这个岁数的人,只要不杀人、不放火、不触犯法律,他做什么就都是对的

 

书中话题


对于Java和C++哪个更好?

我觉得争论没有意义,各有利弊吧。Java开发效率见长,C++执行效率较高。加上众多的编程语言,其实只要精通一种即 可。就像《天龙八部》里,大理天龙寺在天竺和尚鸠摩智计划用《少林七十二绝技》交换天龙寺秘笈《六脉神剑》时,枯荣禅师对弟子的训诫言犹在耳。其实各种武 功练好了都是绝世武功,所以不管Java还是C++,抑或其他语言,真正融会贯通后,就靠内功来比高下了。用过三年的Java,三年的Python,三年 的Matlab,六年的C++,半年的Golang下来,我觉得C++配上Golang算是一种很合乎我的一种配置。 

同事想赚钱,想提升自己的职称,怎么看待?

做公司要赚钱,但阿里从不把赚钱作为第一目标,我们服务好了客户,客户赚了钱,我们一定会得到自己应得的一份。在个人成长问题上也是类似的道理,这就是,一个人如果把做事、做成事作为主要目标,该他得到的东西,一定会顺理成章的、水到渠成地得到,但是,如果把上升作为主要目标,做同样的事,结果就会完全不一样。一句话,你的心态会最终决定你的成就。 

心态决定一切。放宽心做事就好。 

KPI如何看待?

微软的研发模式比较重,流程和审核机制非常严格,每一行代码都要审核很多遍,做事很稳,但很慢,我想这也是它在互联网市场很难施展的一个原因。我觉得百度其实不如淘宝重视技术,KPI导向的文化很重,各部门之间的协作和配合比较难(这一点淘宝要好不少),不同部门、不同项目的开发人员做了不少有差别但其实比较类似的东西,看起来个体效率高,但整体效率未必高,这可能是百度加班很严重的原因之一。 

读书,代码,其他时间分配?

每天读技术方面的文章或者图书,写代码的时间可能每天只有两三个小时。每隔一段时间会去想一想将来干什么比较好,因为写代码时间会过得很快,要经常跳出来想一想。 

人应该在不断低头走路的时候时常抬头看路。 

技术人员的发展,如何看待?

 引用毕玄的话:如果你是向技术方向发展的人员,我们要看技术方面的专业性;然后看你的技术对公司的业务发展有多少贡献。还有一点,我比较看重的是,也许你不在其 位,但能够跳出自己的范围,想到公司未来到底会面临什么问题,用什么方法来解决。当然,仅想是不够的,如果你能够落实就最好了,我们不管你落实的技术含量有多高,关键是你解决了什么样的问题。如果你能够做到这些,你这个人对公司就非常重要。 

职位等级要不要做,如何看破?

放翁:其实从P7级开始,就没有人帮我做规划了。技术委员会在级别P7P9的定义中,要求P7级的人员要对一个小的产品或团队有方向性的指导,P8级就要求在一个大部门或公司级的产品上有方向性的指导,P9级要求除了考虑自身的产品之外,还要站在公司的角度考虑自身的产品对公司的发展有什么帮助。

一个计算机工程师该以怎样的态度和方式来工作和学习?

多隆的一条朴素的建议或许可以很好的解答:“发现问题,解决问题,不要绕开问题的本身;多做事情,不会吃亏,即使不是你的事情这大概也是多隆最大的成功秘诀吧。看似容易的原则,却不是每个人都能做到的。做到了,你也有希望成为“多隆”。 始终保持对代码的那份单纯的热爱,保持对技术的专注和钻研;别人把工作当工作,他把工作当事业——这就是多隆的程序世界。 

多隆是淘宝的第一位程序员,十分乐于帮助别人,十分热爱编程。有机会要好好拜会一下。 

 

人物详介


1.正明

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

2.毕玄

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

3.放翁

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

4.多隆

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

 

书中链接


 

其他博友读后感


 

 

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4495484.html

 

 

posted @ 2015-05-11 20:14  SD.Team  阅读(892)  评论(0编辑  收藏  举报