【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

京东刘海锋:过去十年架构领域最重要的三个变化

  • 2019-04-28
  • 本文字数:2830 字

    阅读完需:约 9 分钟

京东刘海锋:过去十年架构领域最重要的三个变化

自从大学时将操作系统内核作为研究方向后,刘海锋就和分布式系统结下了不解之缘。


从分布式存储、图片系统,到中间件体系、容器平台、新一代弹性数据库、异地多活项目等等,刘海锋的职业生涯大多在与基础架构打交道。


他毕业后历经百度、外企、创业公司,然后在 13 年加入京东。参加工作十年后,刘海锋已是京东零售首席架构师兼技术副总裁,这个速度在一般程序员中显得非同寻常。为什么他成长这么快呢?在他眼里的架构又是什么样的呢?


00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00

    成长经历

    从中国科技大学研究生毕业后,刘海锋工作的第一站是百度。在百度的时候,他参与开发了一个新型的存储系统。然而系统上线之后,发现了一个 bug,它会概率性的把一些数据弄错几个比特,这对于作为整个架构基石的存储系统来说是不可接受的。


    刘海锋回忆说,当时这 bug 出现之后整个团队压力都特别大,然而问题太隐蔽,想要短时间修复很困难,但如果因此而将系统下线的话,整个团队的工作都将受到影响。为了定位问题,他从早上的九点多一直工作到第二天的凌晨三四点,竟然把 bug 定位出来并修复掉了,避免了系统回滚。


    这个事情一直影响了刘海锋之后的整个工作生涯,遇到什么问题他的态度不是回避,而是要迎难而上,一口气把它解决掉。


    2014 年 8 月,刘海锋在京东开始带领团队做内部弹性云平台的研发,当时他做了一个略显激进的决定,用 OpenStack 来管理 Docker,让大部分系统和应用都运行在刚发布一年多、稍显稚嫩的容器里。



    这个激进还体现在他后来对数据中心操作系统 JDOS 升级的技术选型,2016 年初,容器已经被大家所接受,但容器编排花落谁家尚无定论,在大家还在观望的时候,刘海锋选择了 Kubernetes,将其作为第二代 JDOS 的基石。这让京东在很早就积累了运维大规模 Kubernetes 集群的经验,京东的 Kubernetes 经验也被 CNCF 官方作为案例分享。2018 年 4 月,京东应邀加入 CNCF,刘海锋也成为代表京东的 CNCF 全球理事会成员。


    不过,虽然在外人看来一些技术决策略显激进,但刘海锋本人并不这么认为,他觉得自己只是在正确的时间做了正确的选择。比如为什么用 Docker 替代 VM,主要是基于在内部的环境里面,隔离性和安全性并不是第一位的需求,而容器镜像带来的敏捷、高性能,以及运维的便利,恰好是他们所需的。因为对 Linux 内核、分布式系统有深刻的理解,所以他能在第一时间理解 Docker 和 Kubernetes 的优势,并且认定它们是未来的发展趋势。


    2016 年的双 11,刘海锋第一次担任京东大促的整体技术协调,这是涉及到公司上上下下,数十个部门和数千人的大规模作战。这让他对架构与公司业务的关系有了更深的理解。他认识到,大促的备战其实是一个综合性的系统工程,这里面需要很多技术的手段,也需要各条产品线各条技术线所有人去协同工作,在做架构设计的时候,要考虑到尽可能多的人的需求,然后在其中做平衡取舍。


    随着负责的团队逐渐增大,刘海锋在管理方面的所花的时间越来越多,但他仍然没有离开技术的一线。他平时会跟团队骨干一起来商定一些重要系统的架构设计,并且定期对关键项目做复盘和 review,也会投身一线和同事一起去处理线上出现的重要问题。 为了更好的做出技术规划,刘海锋会经常研读最新的一些学术论文。他也鼓励团队在国际会议上发表论文,与同行交流,然后把最前沿的理论和方法运用到实际项目中去。

    架构十年

    过去的十年,刘海锋与架构一同成长。他认为,架构领域经历了快速演进的十年。架构领域在整个互联网的技术栈是偏底层的,但过去十年架构领域的演进速度,一点都不亚于应用开发,甚至移动端开发的速度。比如容器,新型的数据库,新型的中间件,大规模集群的调度,以及系统跟算法的结合,在很多方面都出现了新的变化,甚至是出现了里程碑式的进步。


    在具体的变化方面,刘海锋列举了三点,第一点是容器。把所有的东西都放在容器里,这是以前从没有过的。到今天,我们不光把应用的部署放在容器里,很多有状态的服务,包括缓存,数据库大数据的一些计算任务我们也都放在容器里,统一的编排调度和执行。这极大的简化了运维的复杂性,同时也让数据中心整体的资源使用率提升。


    第二点是数据库。数据库作为基础架构非常核心的组成部分,在过去的十年间里面有一个显著的特点是从大一统的一元的数据库逐渐走向多元,逐渐的走向为不同的应用场景而定制。


    十年前,我们能想到的数据库,更多的是商用数据库。但到今天任何上规模的互联网公司,甚至传统行业,都可能需要多元的数据库技术来解决数据管理问题。以电商为例,一般来说会用 MySQL 以及 MySQL 的中间件,作为最关键的结构化存储,但同时会配上内存 KV Store 做加速、用检索型数据库做全文检索,用时间序列数据库做海量数据的监控采集和分析,等等。从 DB 底层核心技术来看,跨地域复制且强一致复制、计算与存储分离、从以磁盘为中心到以内存为中心,是三个非常显著的技术变迁。


    第三点,系统跟算法的结合越来越紧密,系统跟算法一起形成一家公司的技术的基石,系统相当于是骨架,而算法给骨架注入了灵魂。



    举两个简单的例子。第一个,很多大规模的分布式系统需要自动化的运维。在打造自动化运维的过程中,时间序列的分析与预测,根因分析等等发挥了重要的作用,这里面需要算法的力量。第二点,对于大规模的数据中心里面整体的资源调度,这需要非常强的调度的算法,以及预测算法去改进容器在整个数据中心的分配策略,调度算法的改进所带来的成本收益都是非常显著的。所以说,近年来,在架构领域,大规模分布式系统和一些实用算法工程,两者结合非常紧密。

    架构的未来

    最近这两年,刘海锋也经常思考架构的未来。软件架构,唯一不变的就是变化,但变化又分成了波动与趋势,所以对趋势的把握显得尤为重要,所谓架构,不仅要解决现在的问题,更加需要对未来趋势有深刻的理解与把握。


    在这方面,刘海锋给我们分享了两点,第一个是架构智能化(Architecture with Intelligence & Architecture for Intelligence)。他认为在接下来几年,架构的智能化会成为现实。 一方面,算法或 AI 技术跟大规模系统架构的结合会更加紧密,甚至会催化很多分布式系统的一些变革,机器学习算法的应用也会让很多大系统的运维和应用更加的简单。另一方面,AI 的工业级应用也需要有力的底层架构支撑,比如高性能的机器学习框架,大规模特征向量的检索匹配系统,等等。



    第二点是混合多云,或者说,从更大的层面,让应用开发者忘记数据中心,忘记基础设施建设将成为现实。从这个角度来说,甚至可以叫 Datacenter-less。接下来 5 到 10 年,很多大中型企业,他们重要的业务一定会横跨自己的数据中心和不同云服务商的数据中心。一定会有框架出现来屏蔽底层的这些差异与复杂性,让大家像编排机器编排数据中心那样编排多个云。回顾整个行业,我们可以看到,Google 等公司已经着力开始开展这方面的工作与业务。


    具体到一些实际的一些技术框架方面,刘海锋会持续关注和研究目前的一些热门前沿技术,比如说 serveless、Service Mesh,各种新型的数据库软件等等。总之,未来架构将使得应用的开发更加简单,也更加人性化。


    2019-04-28 17:249281
    用户头像
    二叉树视频 InfoQ旗下短视频品牌

    发布了 98 篇内容, 共 30.5 次阅读, 收获喜欢 182 次。

    关注

    评论

    发布
    暂无评论
    发现更多内容

    干货 | web自动化总卡在文件上传和弹框处理上?

    霍格沃兹测试开发学社

    干货 | 一改测试步骤代码就全写?为什么不试试用 Yaml实现数据驱动?

    霍格沃兹测试开发学社

    大数据和人工智能离不开云计算,他们之间有什么关系?

    Finovy Cloud

    人工智能 云计算 大数据

    实战 | 电商业务性能测试(二): Jmeter 参数化功能实现注册登录的数据驱动

    霍格沃兹测试开发学社

    一文带你弄懂Kubernetes应用配置管理时间

    Java-fenn

    java;

    Docker常用命令原理与实战

    Java-fenn

    java;

    耗时半年,堪称奇迹!阿里架构师整合出258W字Java全栈面试题

    钟奕礼

    Java 编程 程序员 架构 java面试

    干货 | APP自动化Android之属性获取与断言

    霍格沃兹测试开发学社

    GitHub永远的神!“阿里爸爸”终于总结出15W字Java源码真题手册

    钟奕礼

    Java 编程 架构 java面试 技术宅

    这份数据安全自查checklist请拿好,帮你补齐安全短板的妙招全在里面!

    Java-fenn

    java;

    Java 进阶 (八)Java 加密技术之对称加密、非对称加密、不可逆加密算法

    Java-fenn

    Java

    用了Fabric.js后突然想到了...

    为自己带盐

    实时音视频 Fabric.js 9月月更

    直播回顾|容器如何提升应用的稳定性?(附PPT下载)

    BoCloud博云

    云计算 容器 云原生

    字节前端二面高频面试题

    loveX001

    JavaScript 前端

    干货 | Chrome 浏览器+Postman还能这样做接口测试 ?

    霍格沃兹测试开发学社

    干货 | Web自动化测试中显式等待与隐式等待该怎么用?

    霍格沃兹测试开发学社

    字节架构师离职后,熬夜整理55W字Java面试手册,逆风翻盘进阿里

    钟奕礼

    Java 编程 架构 后端 java面试

    干货 | Docker 还可以搭建Web服务器nginx ?这么宝藏的吗?

    霍格沃兹测试开发学社

    设备健康管理平台如何为企业打造五大核心设备管理体系?

    PreMaint

    企业设备管理 预测性维护 设备健康管理

    Java 序列化10倍性能优化对比测试

    FunTester

    Chrome已实现对H.265/HEVC的硬解支持

    微帧Visionular

    python 基于aiohttp的异步爬虫实战时间

    Java-fenn

    Java

    LED显示屏有哪些让你无法拒绝的优点

    Dylan

    LED显示屏 户外LED显示屏

    干货 | H5性能分析实战来啦~

    霍格沃兹测试开发学社

    龙蜥开发者说:海纳百川,有容乃大,我在龙蜥社区的升级之旅 | 第 11 期

    OpenAnolis小助手

    开源 Linux内核 sig 龙蜥开发者说 epbf

    干货 | JavaScript脚本注入,完成Selenium 无法做到的那些事

    霍格沃兹测试开发学社

    干货 | REST-assured 获取日志到文件并结合 Allure 报告进行展示

    霍格沃兹测试开发学社

    5000页?一份字节跳动Java面试全解手册发布!瞬间登顶各大搜索栏

    钟奕礼

    Java 编程 架构 后端 java面试

    真的香!这份《Java面试题库大全》在Github一夜爆火后直接被各大厂要求封杀!

    钟奕礼

    Java 编程 架构 java面试 技术宅

    HiveServer2 内存泄漏问题定位与优化方案

    Java-fenn

    Java Java 面试 #java

    真的强!来自扫地僧总结的39W字上千道Java一线大厂面试题手册,成功助我拿下蚂蚁金服offer!

    钟奕礼

    Java 编程 架构 后端 java面试

    京东刘海锋:过去十年架构领域最重要的三个变化_架构_二叉树视频_InfoQ精选文章