从京东技术演进看互联网企业的成长历程

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 活动地址:http://blog.csdn.net/blogdevteam/article/details/41842837一、网站开发技术的选择从《京东技术解密》这本书我了解到,京东商城网站经历了ASP、.NET、Java三个阶段。

活动地址: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人技术团队规模的发展历程。通过这本书我们也可以看到,京东人在建设系统的过程中经历了一些挫折,但是他们从一点一滴做起,不断的坚持才走到了今天。这种契而不舍的精神,着实让我深受感动。


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
缓存 前端开发 JavaScript
【第22期】 一文读懂前端调试利器whistle
【第22期】 一文读懂前端调试利器whistle
314 0
|
9月前
|
JSON 搜索推荐 API
京东店铺所有商品接口系列(京东 API)
本文介绍如何使用Python调用京东API获取店铺商品信息。前期需搭建Python环境,安装`requests`库并熟悉`json`库的使用。接口采用POST请求,参数包括`app_key`、`method`、`timestamp`、`v`、`sign`和业务参数`360buy_param_json`。通过示例代码展示如何生成签名并发送请求。应用场景涵盖店铺管理、竞品分析、数据统计及商品推荐系统,帮助商家优化运营和提升竞争力。
346 23
|
8月前
|
人工智能 Devops 虚拟化
VMware vSphere 8.0 Update 3d 下载 - 企业级工作负载平台
VMware vSphere 8.0 Update 3d 下载 - 企业级工作负载平台
412 17
|
安全 网络协议 应用服务中间件
AJP Connector:深入解析及在Apache HTTP Server中的应用
【9月更文挑战第6天】在Java Web应用开发中,Tomcat作为广泛使用的Servlet容器,经常与Apache HTTP Server结合使用,以提供高效、稳定的Web服务。而AJP Connector(Apache JServ Protocol Connector)作为连接Tomcat和Apache HTTP Server的重要桥梁,扮演着至关重要的角色
357 2
|
存储 Java 数据库
基于全志H713 Android 11:给TvSettings添加default.xml默认值
本文介绍了在全志H713 Android 11平台上为TvSettings应用添加HDMI CEC功能的默认设置值的方法,通过修改SettingsProvider的源码和配置文件来实现默认值的设置,并提供了详细的步骤和测试结果。
485 0
基于全志H713 Android 11:给TvSettings添加default.xml默认值
|
敏捷开发 监控 Java
阿里云云效产品使用合集之Codeup WebIDE环境下,如何使用通义灵码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
存储 Linux iOS开发
Fiddler的安装和使用
Fiddler的安装和使用
626 0
|
消息中间件 运维 Kubernetes
带你读《云原生架构白皮书2022新版》——云原生中间件
带你读《云原生架构白皮书2022新版》——云原生中间件
1009 99
|
Ubuntu 索引
ubuntu更换apt源后依然搜索旧软件源下载失败问题
ubuntu更换apt源后依然搜索旧软件源下载失败问题
1075 0
|
缓存 运维 前端开发
火爆!GitHub 标星 144k 的前后端学习路线,2021 年最新整理,看完后不再迷茫不再徘徊
火爆!GitHub 标星 144k 的前后端学习路线,2021 年最新整理,看完后不再迷茫不再徘徊
5527 3
火爆!GitHub 标星 144k 的前后端学习路线,2021 年最新整理,看完后不再迷茫不再徘徊