《京东技术揭底》读书笔记

《京东技术揭秘》读书笔记
这几天看完了《京东技术揭秘》(下文简称《京东》),有些收获,通过博客记录一下。这本书不是专门讲解技术的书,而是一本记录京东技术演进历程的书。内容上类似之前看过《淘宝技术这十年》(下文简称《淘宝》),一本讲解淘宝技术演进历程的书。《淘宝》成书于2013年(出版日期,之前书中的内容已经以博文的形式发布于网上),《京东》成书于2014年。个人觉得《京东》应该是针对《淘宝》出版的,阿里和京东的竞争非常激烈,在技术圈子也不例外,都要宣传自己,塑造形象。阿里的同学已经出版了不少技术图书,有些质量很好,希望京东继续跟进,给广大技术人员贡献更多的优秀书籍。


《京东》一书的缺点(纯属个人观点):是由若干篇不同作者写的文章组合而成,每篇文章涉及一个主题,但由于是不同人写成,整理的系统性、条理性欠缺。每篇文章的写作风格,内容侧重不统一,技术描述不够深入,缺少背景介绍,文章之间缺少前后传承。《淘宝》在这方面要好,毕竟由一个作者写成。《京东》内容覆盖面比较全,除了交易系统(就是我们普通用户直接使用的系统,可以浏览商品,购物下单等),还涉及了订单处理,仓储物流,开放平台,大数据,云计算等其他内容。《淘宝》主要介绍了交易系统的演进。


京东交易系统的演进历程,大致经历了三代变化,淘宝系统也是经历了三代演进。

第一代系统
第一代系统于2004年年初上线。这套系统是从外部购买,基于ASP技术。这套系统的具体架构书中并没有详细介绍,不过应该是IIS + ASP + sql server的模式。当时只有4,5个程序员负责维护。

我们看下淘宝的第一代系统。第一代淘宝于2003年5月10日正式上线,也是从外部购买(PHPAuction)。网站架构采用LAMP(linux + apache + mysql + php),mysql采用了主备模式。开始也只有3,4个程序员进行维护。2003年底,用oracle替换了mysql。

京东第一代系统一直运行到2008年10月,将近5年的时间。淘宝第一代架构运行到了2004年底,一年半左右时间。通过技术反推,可以看出这段时间淘宝发展迅速,京东发展比较缓慢。淘宝是C2C模式,主打小商品;京东是B2C模式,主打3C产品。这个阶段应该是电商开始逐渐发展阶段,淘宝的模式可能更适合发展初期的电商——价格低廉,种类繁多的小商品。

第二代系统
京东第二代系统于2008年10月正式上线。这套系统由京东自主研发,2008年7月开始,历时3个月,封闭开发,程序员大概8个左右,由李大学(现京东副总裁)领导开发。系统采用.net技术,具体架构书中没有提及。

再看淘宝的第二代系统。二代架构研发始于2004年年中,聘请Sun的工程师做架构,全面采用Java技术。采用了MVC,EJB等技术,重要的是采用IOE系统。这套系统于2004年底,全面上线。在后续的几年中,淘宝二代系统不断完善,引入新的技术提升性能,如分库分表,缓存,CDN,TFS(淘宝文件系统),Tair(分布式缓存)等,这些都是高新能网站的大杀器。

第三代系统
京东第三代系统开始于2011年,在202年开始陆续上线。这一代架构开始采用java技术,基于SOA思想设计,由王晓钟领导开发。系统中大量采用了缓存,JFS等系统。服务间的调用采用SAF(service architecture framework基于dubbo)开发,书中对具体技术介绍不多。

淘宝第三代架构开始于2008年,主要变化也是基于SOA思想设计,服务之间通过
HSF(hight speed service framework,阿里另外有dubbo,功能类似)框架实现,采用异步处理模式(tb notify)等。构建开放平台等。三代系统的核心是SOA,是业务治理,是设计上的提升。

从这三代平台看,京东一直落后于淘宝,不过到现在为止,大家应该趋同,技术能力相当。应该是B2C模式相对C2C模式已经有了很大的优势,业务的发展必然导致技术的提升。现在阿里和京东都在发力大数据和云计算,希望他们能够再次改变人们的生活方式,当然是变得更好!