这本书断断续续,竟然读过了一个新年的时间跨度。并非是要找借口,但自己的感觉:这种书其实读起来蛮累的,碎片化的时间加上作者东一耙,西一铲的叙述,还有以下两点:
- 首先如果你把它当一本励志故事书来看的话,这本书可没那么轻松,间或夹杂着马云爸爸、淘宝初创人员的励志与猎奇的故事,但是还没等你那碗鸡汤入口,一个不小心,就是技术细节了。
- 而如果你把它当一本技术书来看的话,这本书更不轻松。淘宝技术的十年发展,从一个人的眼中望去,就像多汁但难以消化的顶级牛排,很多地方浅尝辄止,一口咬下去,得消化半天。观者一方面是开了眼界,觉得这些技术简直不是一般的牛,细节都不敢想。另一方面,想再深入了解一些的时候,却发现少了一些深度,留下了太多的开放式问题,让你觉得不知道简直不好意思。双重折磨之下,只好抓嘴挠腮,只恨自己在技术上的积累太少。
所以说,如果你既想要看故事,又想要了解细节。《阿里巴巴神话》http://book.douban.com/subject/2343878/ 和《大型网站技术架构》http://book.douban.com/subject/25723064/ 是两道非常不错的佐料。想看故事的人,搭配第一本,这样高层和底层都看到了。想看技术的人,把《架构》这本书当做工具书,不懂翻一下,收益也是颇多。
淘宝网从买来的网站框架起步,到如今这样的一个复杂的架构。经历了好几轮的重构和优化。对于想了解其中波折的人来说,值得一看。但对技术同学来说,对其过往需要的是理顺,知其所以然,但更应该把重心放在现有的淘宝比较成熟的架构的研究上面来,考虑如何取其精华,为我所用。
纵观整个淘宝的发展历程,启示颇多:
首先技术上不要想着一口吃个胖子,最适应现有业务发展的技术才是好技术。
淘宝网也不是一天建成的,架构在最初也无法做到最合理,技术应该以满足业务为第一要务,以适应业务发展为加分项,以盲目追求技术为大忌。
03年,刚开始做淘宝的时候,考虑的一个因素就是快。所以网站的第一版是买来的“php auction”。那些参与第一版的开发人员,每个人都是技术牛人,从实力上来说,都可以独立写出php auction,但不这么做的原因,是这样只会拖累业务发展的后腿。我个人感觉这是淘宝技术的第一阶段,叫做业务撵着技术走。技术可以说是疲于奔命,速度第一,埋下不少坑是肯定的,但是关键顶住了。
这个阶段同时也包括淘宝的硬件升级,从mysql到oracle,硬盘和小型机,各种商用,怎么贵怎么来。这个阶段,兵来将挡水来土掩,技术上算是顶住了。
但是随着业务的发展,单纯的累加已经不起作用了,必须从底层改造。这才触及了第一次到Java网站的升级。这次升级更多是语言层面的,复用了非常多优秀的java组件。技术在业务的压力下被迫忍痛切换,但是这却为之后的扩展打下了坚实的基础。这个阶段,技术不再那么滞后于业务,而是迎头赶上了。优秀的DBA,优秀的MVC架构,都是在这个阶段打下的,逻辑层可以说已经能够完全支持到业务了。
而现行的阶段,则是技术不断突破,创造自己的技术,并且在很多方面走到了业务的前面。这个阶段我们看到大量优秀的技术创新组件出现了。如淘宝文件系统TFS,淘宝KV缓存系统Tair。同时,分布式电子商务操作系统的理念也被提出。通过服务化的设计,辅以高性能中间件的支撑,开始给业务发展提供动力。
从这几个阶段可以看出,不断发展的业务和技术必须相辅相成,很难说是哪一方造就了哪一方。但是对我们来说,从中汲取的更应该是在技术选型和架构时的思考和审慎。好的架构不应拖业务后腿,而应不断提供向前的助力。
其次都说外来的和尚会念经,淘宝几次牛人的引入,新的思想完全起到了给业务助力的作用。
比如开发和引入了LVS的章文蒿博士,他的贡献在于对高性能、高扩展性、高可用和低成本的基础平台的打造。尤其是他提出的GreenCompute项目,以节省能源为目的来不断的提升整个系统方方面面的性能,从CDN到低功耗到高性能,不得不说令人耳目一新。
而提出了开放平台的淘宝首席架构师王文彬,为淘宝的针对B侧市场的开发助力很多。他并发第一个提出,但却践行的非常好。一个开放平台,脏活累活很多。一方面需要对接大量的内部业务,说服、推动他们开放,有时候甚至要思考让他们如何开放。另一方面,则是开放到外部之后,稳定性和安全性比其他任何的业务都要更加保证。面对流水般的api调用,一旦稳定性不好,大量第三方应用都会挂掉。一旦安全性没保障,大量用户数据可能泄露。这都对开放的决心和技术提出了很高的挑战。进来风头比较劲的微信开放平台,也是如走钢丝一般,逐步开放自己的体系。可以说开放共赢创建生态是大势,而技术必须要为之保驾护航。
不得不提的还有顶住压力引入规范研发流程的空闻大师。从硅谷空降而来的他践行了持续集成、自动化测试和回归的研发流程。很多时候在业务的催促之下,会产生很多烂代码。但与其让不稳定的代码污染线上,造成往复的开发,还不如从一开始就杜绝。能够承担这种业务的压力,并做到这么果断的,确实值得佩服。看似业务的上线时间在短期因此而被延长了,但可靠性却大大提高了。这是个典型的,“长痛不如短痛”的例子。
这也说明了不断吸取新的思想多么重要,固守老的流程往往会拖业务的后腿。不敢尝试新的技术也会让技术停滞不前。
从产品的创新性上来看,淘宝更多是顺应时势。
2004年,成功的阿里巴巴,马云产生了做淘宝的想法。而在ebay和易趣激战正酣的时候通过技术人员封闭开发推出淘宝网,足以显示其快准狠的特性。尽管大网站被ebay封杀,但中小网站投放的广告策略、灵活的决策和与ebay的重重审批流程相比而言高效的执行效率,最终杀出了淘宝这么一匹黑马。从创新上而言,淘宝做了一些适应国内情况的优化,比如商家不收费,允许买卖双方沟通、交易,这些都是煽风点火,促使淘宝网不断发展壮大。
而在salesforce风头正劲的时候提出“work at Alibaba”的工作平台。并且一旦认准了之后,大力投入。现在淘宝的生态体系中,B侧开发的商家和企业非常之多,他们利用了淘宝提供的各种各样的数据,组合出用户需要的各式功能,充分丰富了整个生态,这也是淘宝让人感觉无可撼动的重要原因之一。
总体而言,淘宝发展亦步亦趋,始终不离大势,不犯大错,在牛掰技术的支撑下最终形成现在这样的一个庞大、复杂、但流转顺畅的生态系统。