写点什么

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

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

    阅读完需:约 9 分钟

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

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


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


他毕业后历经百度、外企、创业公司,然后在 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:249435
    用户头像
    二叉树视频 InfoQ旗下短视频品牌

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

    关注

    评论

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

    挑选最佳美国主机,让你的网站飞跃

    一只扑棱蛾子

    美国主机

    AI赋能文明的发展,就看低代码了吗?

    EquatorCoco

    低代码 AI赋能

    谷歌正研发“人类最强大模型”!开启智能模型的新纪元:探索迭代发展和低代码开发平台的无限可能

    不在线第一只蜗牛

    低代码 谷歌 人工智能模型 ChatGPT

    “云创未来,共享生态”——支付宝小程序云产品发布会,报名开启!

    TRaaS

    小程序

    详解数据库中的索引和视图

    华为云开发者联盟

    数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

    海量数据运维要给力,华为云GaussDB(for Cassandra)来助力

    YG科技

    苏光牛:坚持产品能力的升级,做金融数字化的坚实数据底座

    YG科技

    赋能政企深度用云,华为云数据库大咖有话说

    YG科技

    “息壤”引领首个算力互联互通验证平台建设,天翼云开启算力互联网新纪元!

    天翼云开发者社区

    人工智能 云计算

    全量通过!华为云GaussDB首批完成信通院全密态数据库评测

    YG科技

    一文弄懂 OceanBase 用户管理和访问控制

    爱可生开源社区

    MySQL oceanbase

    Redis跳跃表是如何添加元素的?

    王磊

    java面试

    共筑数字化未来 金山办公携手华为云完成文档中心和GaussDB适配

    YG科技

    MacOS专业截屏指南——截屏技巧和截屏工具分享

    互联网工科生

    macos mac截图工具

    inBuilder今日分享丨RPM包制作入门

    inBuilder低代码平台

    路径万千,华为云数据库选择珠峰北坡登顶,给世界一个更优选择

    YG科技

    悟道·天鹰 Aquila + 天秤 FlagEval,打造大模型能力与评测标准双标杆

    硬科技星球

    go语言中如何实现同步操作呢

    高端章鱼哥

    Go 语言

    华为云低代码来啦,好奇心满满的开发者们快来体验!

    华为云PaaS服务小智

    低代码 华为云 华为开发者大会2023

    从新手游上线看游戏数据库选型

    YG科技

    [Paddle] ERNIE-UIE 通用信息抽取模型(含自定义细分领域模型训练)

    alexgaoyh

    paddle 文心 ERNIE 数据标注 ernie-uie doccano

    宝兰德应用服务器软件与华为云GaussDB完成兼容互认证

    YG科技

    鲸鸿动能对话汽车之家,全链路营销助力新增长

    最新动态

    「悟道·视界」视觉大模型系列,6项领先成果技术详解

    硬科技星球

    2023-06-27:redis中什么是缓存雪崩?该如何解决?

    福大大架构师每日一题

    Redis 7 福大大架构师每日一题

    【精彩回顾】华为云亮相2023开放原子全球开源峰会

    华为云开源

    #云原生 #开源

    数智底座必备能力之轻松驾驭新技术

    用友BIP

    数智底座 Pass平台

    即时通讯系统为什么选择GaussDB(for Redis)?

    YG科技

    瓴羊Quick BI数据门户,让企业数据管理一目了然

    巷子

    一分钟学一个 Linux 命令

    高端章鱼哥

    Linux

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