活动地址:http://blog.csdn.net/blogdevteam/article/details/41842837
一、网站开发技术的选择
从《京东技术解密》这本书我了解到,京东商城网站经历了ASP、.NET、Java三个阶段。但是我不清楚京东为什么没有选择PHP这个网站开发的首选语言,而是选择了ASP。我想过程可能是这个样子的。
首先在京东商城刚成立不久的那个时期,非常流行ASP技术(事实上前两年还有不少网站是基于ASP的),而PHP在国内还不是非常流行,掌握PHP的高手不是很多。.NET这边也是刚刚起步不久,还在快速发展时期。Java的开发成本又比较高。而当时的京东商城也不像现在这样的规模,也只是刚刚起步。因此从招聘开发人员、开发成本等等各个方面来讲,京东商城一开始选择ASP技术是明智的选择。但是随着网站用户规模的不断扩大,对网站的功能要求越来越多,单纯的ASP开发已经力不从心。这时候必须要引入更先进的技术,用模块化的方法进行开发,这时候摆在面前的选择就只有.NET和Java了。相对于Java,.NET的开发效率不是一般的高,同样的,Java开发成本又高,在.NET技术够用的情况下,还是优先选择.NET。于是乎在网站开发技术上面进行了第一次升级,由ASP转向了.NET。
由于.NET只能在Windows操作系统上面跑,随着用户规模的指数级上升,特别是在大数据的背景之下,原先的技术架构已经不能够适应发展的需要。特别是Windows的商业授权的费用,是一笔非常大的开销,使用开源技术会省掉很多money。更重要的是开源技术有一整套的成熟的解决方案,而且彼此间互相兼容。于是乎京东进行了第二次升级,由.NET转向了Java。
二、从组织架构看企业管理
从试读部分,我注意到了打造最有影响力的技术团队的序。目前京东团队有4000多人,京东是如何对这4000人进行管理的呢?李大学给了我们答案。
目前研发体系分为9大模块和4个平台。
9大模块:
1、云平台:解决顶层的技术架构和提供基础设施
2、运维:提供技术支持的平台
3、营销研发部:网上营销
4、运营研发部:针对订单生产体系研发系统
5、职能研发部:内部信息化管理
6、大数据部:提供统一的大数据技术平台,数据平台基于Hadoop
7、移动部:负责移动客户端的研发
8、研究院:负责全国京东的5大研究院的建设
9、技术研发管理部:主要负责管理体系的建设
4个平台:
1、技术平台:基础云平台,支撑所有的应用
2、大数据平台:大数据处理
3、电商开发API平台:提供API服务,连接各个系统
4、应用平台:位网站、移动客户端等应用提供支撑
从上面这些内容,可以看出京东为应对市场激烈的竞争而在管理上面所做出的调整。
三、京东是如何应对大数据时代挑战的
首先他们用基于Hadoop的大数据标配技术来升级原先的Oracle小型机方案,“由40台机器搭建的第一版集群,相较于Oracle小型机,性能明显提升,让我们第一次体会到分布式的威力”。经过不断的探索和实践,从MySQL数据仓库完成迁移到Oracle数据仓库迁移再最终迁移到京东自主研发的JDW2.0数据仓库,京东大数据平台逐步走向成熟。
一般公司在引入新技术的时候,都会先直接使用开源的方案,等到成熟再基于它做二次开发,甚至是完全自主开发。京东也是这样,他们在使用基于Google的Hadoop分布式技术之后,通过深入学习,在本地化部署过程中实现了技术微创新:
1、定向开发,支持基于HDFS创建索引;
2、定向改造,在Map层面合并小文件,节省资源消耗;
3、支持动态调配资源队列;
4、对任务运行时间和HDFS的读写量支持通过参数进行控制;
5、自主开发适用于京东大数据服务平台的计算函数;
6、优化并提升Hadoop存储性能,支持更多类型的数据存储格式;
京东大数据产品:
1、调度平台
2、数据集成开发平台
3、数据知识管理平台
4、京东分析师
5、数据挖掘平台
6、数据质量监控平台
海量数据实时查询技术框架:
整个技术框架中攘括的技术点包括:Socket通信、SQL语法解析、Cache集群、并行计算集群、索引、列存储、元数据。
1、Client:是一个基于命令行的客户端,用于接收用户输入、执行SQL、查看返回结果,了解执行状况的窗口;
2、瞿塘:负责解析SQL、生产查询计划、执行数据计算,计算结果合并;
3、巫峡:负责索引构建、查询、删除和优化;
4、西陵:负责数据存储、备份;
5、MetaStore:负责元数据管理。
基于分布式架构的联机分析处理(OLAP)技术:
Visualization是一套适合京东业务使用方式的前端可视化框架。
乌江是指标维度映射管理、权限管理、CUBE创建以及数据汇总和缓存的服务系统。其中Parser是逻辑语句的解析模块,Configure负责指标维度的管理、权限管理、逻辑CUBE的管理,用户可以灵活的调整,使适应业务灵活多变性。Aggregate Manager是聚合逻辑处理模块。
三峡是一个基于分布式的,支持以SQL的形式提供数据查询、针对亿级数据支持秒级响应,资源占用率较低的海量数据实时查询技术框架。
分布式数据存储集群是具有可以任意修改和扩展指标和维度的数据存储格式的数据集群。
海量日志数据分析处理技术:
HA Proxy保证了在大数据量的情况下,采用负载均衡的分发机制,将日志的写请求对应到不同的日志服务器。在数据收集层面,采用了专用的日志服务器,将日志写请求转换为标准的文件写请求。
数据收集完成后,将这些日志文件同步到分布式数据处理平台。在分布式数据处理平台上,完成数据清洗,将日志加载成标准的范式定义的数据。
———————————————————————————————————————————————————————————————
《京东技术解密》并不是一本技术书,这本书的定位是“电商网站/技术人文”,即讲述了京东商城从起步到发展壮大,从30人技术团队到如今4000人技术团队规模的发展历程。通过这本书我们也可以看到,京东人在建设系统的过程中经历了一些挫折,但是他们从一点一滴做起,不断的坚持才走到了今天。这种契而不舍的精神,着实让我深受感动。