《京东技术解密》试读章节共71页,我花了两天时间仔细读完,读了过后感到意犹未尽,非常想一口气把整本读完,然而只能将试读章节反复读了好几遍,收获颇多,遂有此文,借此总结京东十年来的技术变迁和迅速发展。
之所以对这本书感兴趣基于两个原因:一是自己最近刚好在读一本书《不战斗不成功:刘强东和京东商城的“野蛮”奋斗史》,见识到了刘强东本人丰富的创业经历,与当当网拼图书、与淘宝网拼百货、与苏宁易购拼家电,京东真是什么都卖,这份处处竞争的心也值得佩服。二是自己一直对京东印象不错,觉得京东是“正品多、假货少、物流快”,也经常在上面买东西。作为一名技术人员,也就非常想知道支撑京东背后的技术架构是什么。
文中一开头刘强东大哥总结的就很好,直接说明本书的目的所在:
京东可以高速发展到今天的规模的原因,其中最核心的是坚持“倒三角”战略:建立出色的团队;打造财务、物流和技术三大核心系统;降低成本、提升效率;为用户带来最佳体验。在《京东技术解密》一书中,大家会看到技术驱动的力量,这也是京东第一次全面展示自己的技术体系。
从2004年京东刚上线只有一组简单展示IT产品的网页,到如今京东已经是覆盖PC端、移动端,并完整支撑物流、订单、交易、商品、财务系统的巨大电商平台;从当初的四五个人到如今的4000+人;从简单的.Net+SQLServer 系统到主要基于Java 的大规模分布式系统。十年来,京东的技术平台实现了高速成长,渐渐的从业务主导型转为技术驱动型。
京东的系统比较复杂,涵盖电商全流程全价值链,从前端的交易系统到供应链,到仓储、配送、客服以及售后,除了财务报表之外,几乎全部系统都是自己研发的。下面总结京东的技术和管理变迁。
以前的京东其技术团队一直是职能化结构:产品部、研发部、测试部以及运维部门。但当员工越来越多时,这样的技术团队协作、沟通、优先级划分都很困难,因此14年京东对技术团队做了调整:研发体系分为9 大模块4 个平台。
9大模块:提供基础设施的云平台和运维、实现网上营销的营销研发部、针对COO体系的运营研发部、实现内部信息化管理的职能研发部、提供统一的大数据技术平台的大数据部、负责移动客户端研发的移动部、负责全国研究院建设的研究院和主要负责管理体系建设的技术研发管理部。
4个平台:技术平台(打造基于云的技术架构,支撑其上所有的应用)、大数据平台(数据独立、大数据处理)、电商开发API平台(以API 服务的方式进行服务)、应用平台(包括自己的网站、移动客户端、内部的ERP及外部的ISV 开发应用)。
组织结构的调整解救了京东因为团队人多导致组织混乱和管理困难的问题。
2014 年3 月10 日上午,京东集团与腾讯宣布建立战略合作伙伴关系。当时这条消息爆炸在各大IT圈中,我当时也在纳闷:一个卖东西的和一个聊天的怎么能合作的起来。当然,当时了解的信息不多,也没用过QQ网购平台和拍拍。直到看了本书这章后,才彻彻底底明白了两者融合的前因后果和过程的艰辛不易。
这次融合让京东从自营为主的B2C 业务转变成自营B2C+平台B2C+C2C 的完整电商生态系统。且在移动端,腾讯微信的流量优势以及三四线顾客群的覆盖,使得腾讯与京东形成优势互补。
这需要完成技术对接,包括商品、订单和库存的对接。说起来容易,做起来难,双方的体量都很大,易迅的主流系统有十几个,京东的主流系统更有几十个,而易迅在被腾讯收购之后又对系统进行了几次调整,其复杂性可想而知。因此怎样最快解决问题、推出商品,对双方都是很大的考验。
融合目标一旦确定下来,就容不得半点迟疑,北京即刻成立了专门的项目小组,并在京东会议室资源非常紧张的情况下申请了一间专用会议室作为战时指挥部,主要项目组成员随即打点行囊入驻、封闭,还需要北京、深圳两地多个业务、产品、研发团队无数次的沟通、修正和冥思苦想。此次的融合是空前的,不同的文化、不同的地域、独立的系统,要全面打通面临着各种技术、商务、工作方式等方面的不同。需求上的、技术上的以及要平衡各个相关方的利益而产生的各种待确认问题,像一场又一场密集的流星雨,每天在项目指挥部的上空火花带闪电般接踵而至。从项目伊始到项目结尾,这期间经历的艰辛与努力很值得我们细细回味和学习。
京东的加入让拍拍焕然一新,之前臃肿不堪的首页即刻换成了如今的清新大方,商品也丰富了不少,账户系统的打通历经了N条方案和无数群组讨论,期间宁愿延迟项目发布也不牺牲用户体验的做法很值得推崇。
现在没有哪个大公司不关注大数据的,13年初的时候,在京东制定的下一个10 年发展规划中明确提出,大数据战略将成为公司重点战略方向之一。
京东大数据平台从无到有,从集中式到如今的分布式,从Oracle数据仓库到JDW2.0,4 年期间完成了复杂的演变。技术的变迁都是需求驱动的,京东也不例外。
数据多了,就需要成立专门的数据部门(Tiger 团队),其工作重点是数据分析与数据报表,但在没有数据仓库的年代里,分析师们只能依靠DBA 提供的两台查询机排队写SQL 提数,然后再拿回来做分析。遇到业务需求方描述不清或口径不明确时,往往要花大量时间沟通调研,反复提取数据,这个过程耗时费力不说,还会被需求方不断催促,使得效率非常低下。Tiger的解决方案就是:自建数据仓库,这是做到自主数据服务的必由之路。且采用的是基于开源的MySQL,采用集群(Cluster)应用架构,支持大规模数据存储与计算应用,而没有使用有着强大数据处理能力的Oracle BIEE 商业智能平台。据提取与报表展现产品同样采用开源技术自主研发,后台Java 程序,前端采用Ajax 框架Extjs。这种轻量级的数据产品在稳定性及服务能力上与BIEE相比虽然有一定差距,但支持快速迭代及无与伦比的灵活性这些优点也是成熟商业产品所无法替代的。正是自主研发、快速迭代和灵活应用这些适用于互联网企业的特点,使得一系列产品和技术方案在快速成长的京东很好地支持了各种场景的数据需求,也成就了今天的京东大数据平台。这对于其他成长中的互联网企业也具有重要的借鉴意义。
基于Hadoop,以Mapreduce 作为计算引擎的分布式数据仓库开始建设,因为分布式的威力,Oracle渐渐的退出了京东数据仓库。调度平台功能逐渐完善,生产模式也由原来的单节点调度升级到分布式调度。今天的京东企业级数据仓库JDW 便是在这样的历程中演变而来的。
我觉得这一点非常重要,业界对大数据处理的技术方案几乎已经形成一套通用的技术架构,但为什么还有很多公司还是自己研发一套系统架构(典型的如阿里),主要是因为不同的行业及不同的实际业务需求,通用的方案一方面可能很臃肿,有许多不需要的功能,另一方面不够灵活,不能实现特殊需求,因此大数据平台建设所用核心技术依然需要付出一定的研发投入来实现定向的技术突破与应用,即所谓的“定制开发”。京东在通用的开源技术架构基础上进行定制开发和产品化,从技术和产品两个层面实现微创新和突破性创新,打造坚实的平台基础。技术微创新主要体现在平台的基础架构上,产品层面的突破性创新主要体现在大数据管理应用上,其中总结的创新点具有借鉴意义,需要的可以细看。
在需求的驱动下,京东不断研发出了海量数据实时计算平台“汉江”、海量数据实时查询产品“三峡”、基于分布式架构的联机分析处理系统和海量日志数据分析处理平台,文中分别介绍了它们的技术架构。
这些大数据技术最终实现了精准营销(例如通过邮件个性化推荐产品)、电商C2B 定制(例如京东的JDPhone 计划)、用户画像(解决把数据转化为商业价值的问题)、店铺评级系统的搭建。
最后一章是介绍几位京东技术大咖,看了过后除了跪拜还是跪拜,每个公司都有不少的技术大牛,希望自己以后也能成为其中的一员吧。
原文地址:http://blog.csdn.net/lanxuezaipiao/article/details/42506829