淘宝技术这十年

淘宝技术这十年

7.32418 评价豆瓣读书
免费试读

作品简介

有熠熠生辉的技术变迁 ,有饱含智慧的产品演进,有叱咤风云的牛人生涯,有令人捧腹的圈内趣事。

无论你是程序员、架构师、产品经理还是运维人员,甚至只要你身处IT圈,这本书都有无穷无尽的看点,让你大呼过瘾之余,深受启发,进而陷入沉思,不由开始细数自己所在公司的技术发展历程……

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

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

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

作品目录

载入中

热门划线

  1. 好的架构是进化来的,不是设计来的26 人
  2. 其实在任何时候,开发语言本身都不是系统的瓶颈,业务带来的压力更多的存在于数据和存储方面。15 人
  3. 发现问题,解决问题,不要绕开问题的本身;多做事情,不会吃亏,即使不是你的事情。15 人
  4. 淘宝网将图片处理与缓存编写成基于Nginx的模块,我们认为,Nginx是目前性能最高的HTTP服务器,代码清晰,模块化非常好。淘宝网使用GraphicsMagick进行图片处理,采用了面向小对象的缓存文件系统,前端有LVS+Haproxy将原图和其所有的缩略图请求都调度到同一台Image Server(图片服务器)。14 人
  5. 好的功能也是进化来的,不是设计来的13 人
  6. 应用服务切分了(TM、IM)、核心服务切分了(TC、IC)、基础服务切分了(UIC、Forest)、数据存储切分了(DB、TFS、Tair),通过高性能服务框架(HSF)、分布式数据层(TDDL)、消息中间件(Notify)和Session框架支持了这些切分。12 人
  7. 在系统发展的过程中,架构师的眼光至关重要,作为程序员,只要把功能实现即可,但作为架构师,要考虑系统的扩展性、重用性,对于这种敏锐的感觉,有人说是一种“代码洁癖”。11 人
  8. Tair10 人
  9. 淘宝上拥有海量的宝贝图片等静态文件,这些文件的总容量也达到了数PB(1PB=1024TB=1048576GB),为了快速存取这些文件,淘宝开发了分布式文件系统TFS(TaoBao File System)来处理这类问题。9 人
  10. TimeTunnel9 人
  11. 好的架构图充满美感8 人
  12. 至2011年年底,淘宝网拥有全国最大的Hadoop分布式计算集群之一(2000多个节点,CPU:24000 core,Memory:48000GB,Disk:24000块),日新增数据50TB,有40PB海量数据存储,分布在全国各地80多个节点的CDN网络,支撑的流量超过800Gbps。7 人
  13. CDN(Content Delivery Network,即内容分发网络的作用)7 人
  14. LAMP(Linux+Apache+MySQL+PHP)7 人
  15. 值得一提的是,根据淘宝网的缩略图生成规则,缩略图都是实时生成的。这样做的好处有两点:一是为了避免后端图片服务器上存储的图片数量过多,大大节约后台存储空间的需求,我们计算过,采用实时生成缩略图的模式比提前全部生成好缩略图的模式节约90%的存储空间。也就是说,存储空间只需要后一种模式的10%。二是,缩略图可根据需要实时生成,这样更加灵活。7 人
  16. 这样卖家发布商品选择的是自然类目和属性,淘宝前台展示的是根据运营需要摆放商品的类目和属性。7 人
  17. 你写一段代码,编译一下能通过,半个小时就过去了;编译一下没通过,半天就过去了。7 人
  18. LVS(Linux Virtual Server,世界上最流行的负载均衡系统之一6 人
  19. 他们的大致方案是给业务分模块,一个模块一个模块地渐进式替换。如用户模块,老的member.taobao.com继续维护,不添加新功能,新功能在新的模块上开发,跟老的模块共用一个数据库,开发完毕之后放到不同的应用集群上,另开一个域名member1.taobao.com,同时再替换老的功能,替换一个,就把老的模块上的功能关闭一个,逐渐把用户引导到member1.taobao.com,等所有的功能都替换完之后,关闭member.taobao.com。6 人
  20. 除了搜索引擎、分库分表,还有什么办法能提升系统的性能?一定还有招数可以用,这就是缓存和CDN(内容分发网络)。6 人
  21. 淘宝上产生一个交易,消耗的电量足以煮熟4个鸡蛋6 人
  22. 在淘宝网整体流量中,图片的访问流量要占到90%以上,而且这些图片平均大小为17.45KB,小于8KB的图片占整体图片数量的61%,占整体系统容量的11%。6 人
  23. 应用系统通过Notify可以实现分布式事务——BASE(基本可用(Basically Available)、软状态(Soft State)、最终一致(Eventually Consistent))6 人
  24. 一个人如果把做事、做成事作为主要目标,该他得到的东西,一定会顺理成章的、水到渠成地得到,但是,如果把上升作为主要目标,做同样的事,结果就会完全不一样。一句话,你的心态会最终决定你的成就。6 人
  25. 负载均衡5 人
  26. 你的浏览器在同一个域名下并发加载的资源数量是有限的5 人
  27. 大量的内容分发与同步的相关技术5 人
  28. PHPAuction5 人
  29. 当年全球只有十几名,而阿里巴巴就有4名5 人
  30. MySQL撑不住之后换为Oracle,Oracle的存储一开始在本机上,后来在NAS上,NAS撑不住了用EMC的SAN存储,再后来,Oracle的RAC撑不住了,数据的存储方面就不得不考虑使用小型机。5 人
  31. 到2004年底,淘宝网已经有4百多万种商品了,日均4千多万个PV,注册会员达400万个,全网成交额达10亿元。5 人
  32. 回顾一下上面几个版本,1.0版的PHP系统运行了将近一年的时间(2003年5月——2004年1月),服务器由一台发展到多台;后来数据库撑不住了,将MySQL换成了Oracle,引入了搜索引擎(2004年1月——2004年5月,叫1.1版本);然后不到半年的时间又把开发语言换成了Java(2004年2月——2005年3月,叫2.0版本),数据服务逐步采用了IOE;随着数据量和访问量的增长,我们进行数据分库、加入缓存、使用CDN(2004年10月——2007年1月,叫2.1版本)。这几个版本中间有些时间上的重合,因为很多架构的演化并没有明显的时间点,它是逐步进化而来的。5 人
  33. 技术和业务就是这么互相借力推动着的,业务满足不了的时候,技术必须创新,技术创新之后,业务有了更大的发展空间。5 人
  34. 目前淘宝网的TFS已经开源(见code.taobao.org),业界的同仁可以一起使用和完善这个系统。5 人
  35. 到2007年,淘宝网日均PV达到2.5亿个,商品数超过1亿个,注册会员数达5千多万个,全网成交额达433亿元。5 人
  36. TDDL实现了下面三个主要的特性:●数据访问路由——将针对数据的读写请求发送到最合适的地方;●数据的多向非对称复制——一次写入,多点读取;●数据存储的自由扩展——不再受限于单台机器的容量瓶颈与速度瓶颈,平滑迁移。5 人
  37. 触动人心5 人
  38. 第一个是做事要自己思考后再去问别人,而不是一遇到问题就找人求助。第二个是不断地打破自己的一些想法,你不要担心自己今天已经做了50%的工作,要是推倒重来,前面的事情都白干了。5 人
  39. 任何一个公司,不管用什么手段,都做不到绝对公平,最终只会有小部分人得到机会。这个时候去抱怨、愤怒都没有用的,只有自己不断地努力争取机会才行。5 人
  40. 从基本功做起,研究常见的漏洞,把它查出来,并去分析它,不要用它来做坏事。另外,去看看公开的漏洞,研究一下漏洞的利用技巧。5 人
  41. 把支付宝从淘宝分出去的人,就是Sun公司的这几个人。4 人
  42. 业务带来的压力更多的存在于数据和存储方面4 人

喜欢「淘宝技术这十年」的人也喜欢