写点什么

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

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

    阅读完需:约 9 分钟

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

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

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


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


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


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 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:249341
    用户头像
    二叉树视频 InfoQ旗下短视频品牌

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

    关注

    评论

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

    不写代码就实现了自动化测试,面试官都惊呆了!Apipost的自动化测试功能强烈推荐

    徐天

    自动化测试 apipost

    从TMMI角度谈谈质量度量

    老张

    软件测试 质量度量

    怎样快速地迁移 MySQL 中的数据?

    C++后台开发

    MySQL 数据库 中间件 后端开发 C++开发

    使用 DataEase 制作动态轮播仪表板

    搞大屏的小北

    软件测试/测试开发 | Jenkins job 机制该如何使用?

    测试人

    软件测试 jenkins 自动化测试 测试开发

    华为云发布CodeArts Check代码检查服务 守护软件质量和安全

    科技热闻

    写作的“收益”超乎想象

    王中阳Go

    深度思考 学习方法 写作 写作技巧 写作感悟

    软件测试/测试开发 | 做到这几点,你也能成为 BAT 的抢手人!

    测试人

    软件测试 自动化测试 测试开发 测试工程师

    Linux安装tensorflow

    代码的路

    Linux

    长安汽车*IoTDB | 构建1.5亿时间序列车况数据处理方案,查询稳定实现毫秒级返回

    Apache IoTDB

    软件测试/测试开发 | Jenkins 持续集成体系介绍

    测试人

    软件测试 持续集成 jenkins 自动化测试 测试开发

    Halcon快速入门教程

    嵌入式视觉

    定位 算子 测量 HALCON 工业智慧视觉

    透视华为云云原生数据库的演进,能给行业带来哪些启发?

    华为云开发者联盟

    数据库 云原生 后端 华为云 企业号 1 月 PK 榜

    服务网格|如何使用 Amesh 配置插件

    API7.ai 技术团队

    Service Mesh 服务网格 APISIX 网关 Kubernetes Serverless

    Java基本语法

    代码的路

    Java

    站酷基于服务网格 ASM 的生产实践

    阿里巴巴中间件

    阿里云 云原生 服务网格

    算力攻坚,视频云背后的「硬」核玩家

    云布道师

    阿里云 视频云

    性能再升级,XMeter Cloud专业版正式上线

    EMQ映云科技

    物联网 IoT 云服务 mqtt 企业号 1 月 PK 榜

    年中盘点 | 2022年,PaaS 再升级

    亚马逊云科技 (Amazon Web Services)

    PaaS 亚马逊云科技 Builder 专栏

    redis.conf 7.0 生产配置详解,全网最全

    码哥字节

    NoSQL 数据库 redis 底层原理 Redis 7

    跨域:后端工程师最熟悉的陌生“人”

    华为云开发者联盟

    后端 华为云 跨域 企业号 1 月 PK 榜

    pip安装后仍有ImportError No module named XX问题解决

    代码的路

    Python

    等保堡垒机选择哪个厂家好?咨询电话多少?

    行云管家

    等保 堡垒机 等级保护

    【HA小知识】DRBD数据不一致怎么办?怎么处理?

    行云管家

    高可用 ha 高可用软件

    屡获殊荣|旺链科技亮相2022中国双链年会并喜获佳绩

    旺链科技

    区块链 区块链技术 双链年会

    易观:2022年中国产业数字化发展成熟度指数报告

    易观分析

    数字化 产业 报告

    对话 BitSail Contributor | 姚泽宇:新生火焰,未来亦可燎原

    字节跳动数据平台

    大数据 开源 字节跳动 数据引擎

    NFTScan 与 AlienSwap 达成战略合作伙伴,双方在 NFT 数据层面展开合作

    NFT Research

    NFT

    如何管理项目干系人?

    敏捷开发

    项目管理 项目干系人

    【碎碎念】下雪了

    Firshare

    年终总结

    当你输入网址,小手一点,然后发生了什么

    华为云开发者联盟

    前端 HTTP 华为云 企业号 1 月 PK 榜

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