在刚刚过去的 2019 年:InfoQ 网站发布 11050 篇技术文章;InfoQ 公众号迎来第一百万位读者;QCon、ArchSummit 等技术大会邀请 746 位国内外技术专家。结合专家的观点以及记者的洞察,InfoQ 编辑部在开年跟你聊聊 2020 年值得关注的十大技术趋势。有人说 2019 年可能是最近十年最坏的一年,但也有可能是往后十年最好的一年。我们不赞同这样的观点。对未来,我们依然保持乐观,因为悲观者往往正确,乐观者往往成功。
1云原生将以容器的形态落地
2019 年,还是有很多人会对“云原生”充满了疑惑甚至误解。这想必也是为何我们一直能够在不同场合听到关于云原生的各种不同定义的原因所在。有人说,云原生就是 Kubernetes 和容器;也有人说,云原生就是“弹性可扩展”;还有人说,云原生就是 Serverless;而后来,有人干脆做出判断:云原生本身就是“哈姆雷特”,因为每个人的理解都不一样。
实际上,自从这个关键词被 CNCF 和 Kubernetes 技术生态“借用”之初,云原生的意义和内涵就是非常确定的。在这个生态当中,云原生的本质是一系列最佳实践的结合;更详细的说,云原生为实践者指定了一条低心智负担的,能够以可扩展、可复制的方式最大化地利用云的能力、发挥云的价值的最佳路径。所以说,云原生并不指代某个开源项目或者某种技术,它是一套指导软件与基础设施架构设计的思想。这种思想,以一言以蔽之,就是“以应用为中心”。
正是因为以应用为中心,云原生技术体系才会无限强调让基础设施能更好的配合应用,以更高效的方式为应用“输送”基础设施能力,而不是反其道而行之。而相应的, Kubernetes 、Docker、Operator 等在云原生生态中起到关键作用的开源项目,就是让这种思想落地的技术手段。以应用为中心,是指导整个云原生生态和 Kubernetes 项目蓬勃发展至今的重要主线。
2020 年,随着容器、尤其是 Kubernetes 的迅猛发展,CNCF 基于 Kubernetes 这样一个“种子”迅速构建起来一个以数百个开源项目组成的庞大生态,使得云原生的落地趋势越来越清晰:以容器的形态落地,把“以应用为中心”进行到底。
2DDD 即将撞上敏捷式的尴尬
DDD(领域驱动设计)的思想发端于 2004 年,在过去的十余年时间中一直不温不火,直到最近两年才得到越来越多的关注度。有人说,正是托微服务的福,DDD 才有了流行的土壤。实际上,目前微服务的划分方法里全球共识的就是 DDD,但 DDD 的核心思想并不仅仅局限于微服务本身。因为微服务是一种架构风格,而 DDD 是一种思想。微服务定义的九大核心特质,跟 DDD 的原则是完全一致的,这在某种程度上也是业界愿意在微服务上下文中采用 DDD 方法和实践的原因。
虽然 DDD 的关注度日渐提升,但在实践过程中,也遇到了敏捷开发式的尴尬:如何调整组织架构以适配 DDD?
过去业界提到敏捷开发,都说对个体的要求太高,但实际上并不是。表面上看敏捷对开发人员的技能要求高,实际上是因为敏捷开发要求调整组织架构,很多人不愿意动,因此业务和技术协作上的问题很难解决。
DDD 面临的困境同样如此。在过去,技术这条线的划分可能是开发一部、开发二部,业务这条线的划分可能是业务一线、业务二线。但 DDD 的划分理念是从业务角度划分成领域,领域再划成服务,落地的时候采用微服务架构,以前的划分方式完全适配不了。所以直接造成 DDD 落地难的阻碍也是组织结构。具体表现就是协作不起来,各条线相互甩锅,领导抱怨团队人员能力不够。
可以预见,随着微服务和中台思想的持续升温,2020 年 DDD 将会变得更加流行,但由此带来的问题也会愈加凸显。
3Service Mesh 将迎来技术的普及年
2018 年至今,Service Mesh 的热度直线上升,而随着 Kubernetes 生态体系的逐渐建立和完善,基于 Kubernetes 应用程序的规模和复杂性将增加,Service Mesh 将成为有效管理那些应用程序所必需的一切。企业对其的需求将会快速增长。
我们认为,2020 年 Istio 作为控制平面的一种技术实现仍将在 Service Mesh 领域扮演核心角色。Istio 获得业界广泛关注的原因,在于背靠 Google 公司的内部工程实践,以及对工程实践的再思考和重新提炼。而在国内也有阿里巴巴等大玩家在参与其中。未来市场上可能还有其他竞争者的空间,但市场的整合将于 2020 年开始。
从长远来看,我们很可能会看到类似 Kubernetes 的情况,其中出现了赢家,公司开始标准化那个赢家。目前来看,业界正在围绕 Istio 建立生态,Istio 似乎最有可能成为事实上的 Service Mesh。
2019 年 Service Mesh 的解决方案用例较为单一,展望 2020 年,相信会有更多的公司通过实践而对 Service Mesh 的价值更有体感,通过创造更多的成功用户故事、案例而加速 Service Mesh 的普及。也许,2020 年将成为 Service Mesh 技术的普及年。
4Serverless 从观望走向落地
Gartner 最近的一份报告表明,到 2020 年,全球将有 20% 的企业部署无服务器架构。这说明无服务器架构不只是一个流行语,更是一种众所周知的云计算趋势,并且已经在软件世界掀起一场革命。大型厂商(如亚马逊、微软和谷歌)已经在无服务器架构领域重资投入,追赶革命的浪潮。
Serverless 已经从观望期走向了落地进程,O'Reilly 近期的一份千人样本的调查显示:超过 40% 受访者已在使用,50% 开发者想要尝试。2020 年 Serverless 的发展将在以下几个方面取得更多进展:
Serverless 计算平台的能力有了长足进步,变得更加通用;
Serverless 正在从偏离线业务进入在线业务;
Serverless 生态不断发展,在应用构建,安全,监控报警等方面涌现了很多开源项目和创业公司,工具链越来越成熟;
用户对 Serverless 的接受度不断增加,除了互联网等迅速拥抱新技术的行业,传统企业如银行用户也开始采用 Serverless 技术;
Java 语言、社区不断努力,试图成为 Serverless 平台的主流语言;
基于 WebAssembly(WASM)的 FaaS 方案有望出现。
5WebAssembly 将成为 Web 新技术浪潮主角
虽然前端一直是推陈出新速度最快、开发者最爱抱怨“学不动”的技术领域,但是回顾刚刚过去的 2019 年,多位专家都会这样告诉我们:2019 年大前端领域增速放缓,并没有出现很多颠覆性技术。
仔细想想这个说法确实也站得住脚,无论框架、语言还是前后端分工,2019 年并未出现重磅新闻,主要的“厮杀”都在细分领域展开。这未尝不是好事,可能意味着前端正在走向成熟。
不过如果非要在 2019 年看似平淡的前端圈选择一个超过预期、2020 年值得关注的技术趋势,我们可能会选择 WebAssembly(Wasm)。
WebAssembly 至今已经发展了三四年时间,2019 年发展速度之快超乎我们想象。3 月份 Mozilla 提出 WASI ;Mozilla、Fastly、英特尔与红帽宣布成立 Bytecode Alliance(字节码联盟);2019 年末的大事件则是 WebAssembly 进入 W3C 成为正式推荐标准。
Docker 联合创始人在 Twitter 上说的一句话更是给 WebAssembly 添了一把火:
如果 WASM+WASI 在 2008 年就已诞生,那么我们就用不着创建 Docker 了。
但是如果你认为 WebAssembly“真香”,可能又错了。最近对 JavaScript 开发人员进行的一项调查显示,只有一小部分人在使用 WebAssembly,因为目前大家还找不到放弃 JavaScript 的理由。
不过进入 2020 年,WebAssembly 在商业化上的进程可能会加快,如果你还没有关注和学习 WebAssembly,建议你补上这个功课。
Wasm 现阶段的应用场景还比较少,主要的几个应用场景都集中在前端密集计算业务的优化上,除此之外也有 AI、区块链上的尝试。我们预测 2020 年 WebAssembly 应该主要还是以标准制定及基础设施(浏览器、编译器等)实现发展为主,在 Post-MVP 没有被完全落地的情况下,Wasm 很难跳出目前的几个应用场景来进行能够放到生产环境上的试验,这也是 2020 年 Wasm 将会面临的一个比较大的挑战。
当然现阶段对于 JavaScript 开发者而言,由于现阶段 Wasm 标准的落地进度并没有达到可以为 JavaScript 开发者或者前端开发者提供很多的、能够解决前端实际问题的 Wasm 落地场景,因此导致更多的小伙伴只是采取观望态度。2020 年这样的情况是否会有所改善?可能还要看 Wasm 标准在工具链和浏览器层面的落地实现程度。
除了 WebAssembly,2020 年值得关注的前端趋势还有很多,比如 Serverless,比如前端智能化。
6容器化加速席卷大数据基础架构
前十多年,大数据的发展主要集中在技术框架上,社区出现了一系列优秀作品,比如引领大数据风潮的 Hadoop,比如计算引擎 Spark、Flink ,比如消息中间件 Kafka 等等,可以说,大数据领域的技术框架已经比较成熟。我们认为新的一年中,大数据领域将迎来大数据的容器化浪潮。
IT 基础设施往云上迁移是大势所趋,由于来自云平台的竞争,Hadoop 正面临越来越大的阻力。去年 6 月 Cloudera 和 Hortonworks 合并,股价暴跌 40%。虽然 Hadoop 不太可能很快就会消失,但它的采用可能会减缓。
同时出于对成本以及对厂商锁定的担忧,促成了向混合方法的演变,包括公用云、私有云和本地部署的组合。在混合云时代,容器依靠其自身标准化、一次构建随处运行的能力,非常适合用于大数据系统的构建和管理。目前已经有大量的大数据系统原生支持 on Kubernetes,例如 Spark 官方版本从 2.3 开始就可以无需任何修改直接跑在 Kubernetes 上,而且“更好地在 K8s 上运行”已成为后续版本演进的的重大策略。行业也已涌现出多个案例。数据基础架构正在从 Hadoop 到云服务再到混合云 / Kubernetes 环境的三个阶段过渡,目前这一过程正在加速。
当然除了容器化浪潮外,2020 年大数据领域还会迎来数据实时以及全链路整合的趋势。数据本身的价值是随着时间推移而快速降低的,以 Kafka、Flink 为代表的流处理计算引擎已经为实时计算提供了坚实的底层技术支持,实时数据计算已融入各种企业场景。大数据的实时性包括快速获取和传输数据、快速计算处理数据、实时可视化数据、在线机器学习和模型实时更新等各个环节,每个环节都会影响整体实时性。
传统的机器学习和大数据两套技术也逐渐在融合,从原始数据导入到数据准备、数据训练到模型部署,整个是一套闭环,大数据和 AI 平台的集成与协同将是未来发展的一个趋势。比如在 Spark 社区里也提出了 Hydrogen 计划,在应用层把大数据和 AI 开源的框架全部串联在一起,通过分布式的调度方式,把这些框架调度到分布式数据与 AI 平台之上。
除此以外,2019 年”数据中台“的概念可谓火了一把。2020 年依然是大数据发展的一个值得关注的趋势。
7深度迁移学习基于预训练模型有更多改进
2019 年,由于预训练模型 BERT 以及 GPT 2.0 的发展,深度迁移学习成为 AI 领域的热门词汇。准确地说,预训练模型是自然语言处理领域新的 baseline,如果要在完全不依赖 BERT 的基础上,提出一个与 BERT 效果相当或者更好的新模型,目前来看可能性非常低。业界大部分 NLP 成果均是基于 BERT 的各种改进或者在对应业务场景上进行应用的,而且 BERT 的改进方向比较多,已经出现各种可用的变种 。
目前,XLNet、RoBERTa 等各种 BERT 的改进预训练模型,虽然是通过增加预训练的数据进一步提升效果,但除了增加数据,还做了许多模型方面的优化,这些突破都不是仅仅依靠堆数据就能带来的成果。
我们认为:2020 年,深度迁移学习将基于预训练模型有更多改进,比如对性能要求较高的场景需要对模型做一些改进和方案上的优化,双向语言模型有可能出现训练和预测不一致的现象,以及在长文本处理、文本生成任务上的不足。同样值得期待的是,该领域未来可能会出现更加轻量级的在线服务模型。拓展到自然语言处理领域,除了不断提升预训练模型的效果,未来如何更好地与领域的知识图谱融合,弥补预训练模型中知识的不足,也是新的技术突破方向。
8图神经网络的应用边界继续扩展
图神经网络(GNN,Graph Neural Networks)是 2019 年 AI 领域最热门的话题之一。虽然深度学习目前已经在诸多领域拥有了显著的应用成果,但因果推理和可解释性仍是短板,这几年学术界和工业界都在探索新的方向。图神经网络是用于图结构数据的深度学习架构,将端到端学习与归纳推理相结合,业界普遍认为其有望解决深度学习无法处理的因果推理、可解释性等一系列瓶颈问题,是未来 3 到 5 年的值得关注的重点方向。
展望 2020 年,最可以确定的一点是:GNN 依然会保持如今快速发展的态势。从理论研究上看,不断解构 GNN 相关的原理、特色与不足,进而提出相应改进与拓展,是非常值得关注的部分,如动态图、时序图、异构图等。另外,一直以来研究 GNN 所用的标准数据集,如 Cora、PubMed,相对来说场景单一、异构性不足,难以对复杂的 GNN 模型进行准确评价。针对这一问题,近期斯坦福大学等开源的 OGB 标准数据集有望大大改善这个现状。在新的评价体系下,哪些工作能够脱颖而出?值得期待。
从应用上看,除了在视觉推理、点云学习、关系推理、科研、知识图谱、推荐、反欺诈等领域有广泛应用外,在其他诸如交通流量预测、医疗影像、组合优化等场景下,也出现了一些 GNN 相关工作。在这其中,如何准确有效地将图数据与 GNN 二者有机结合到相关场景,是应用上需要着重考虑的。相信 2020 年,会出现更多这样的工作来拓展 GNN 的应用边界。此外,GNN 要真正在工业界大规模落地,底层系统架构方面仍需做大量工作。业界期待着一个更为开放、高性能,且支持超大规模分布式图网络计算的主流平台的出现。
9大规模知识图谱的自动化构建将成为重要发展趋势
作为认知智能领域核心技术之一,目前知识图谱已运用到语音助手、聊天机器人、智能问答等热门的人工智能应用场景中,并覆盖泛互联网、金融、政务、医疗等众多领域。尽管发展火爆,但现在知识图谱在构建和落地过程中还面临着诸多挑战:首先,对人工构建的依赖度还较高,仍然缺乏从大规模数据里获取的手段;其次,知识图谱的构建技术成本很高。为解决上述问题,目前有很多公司都在做一些自动化构建知识图谱的探索工作,如明略科技开发了自动图谱构建工具,将一些中间构建过程自动化;腾讯正在基于聚类算法和强化学习结合的模式开发 schema 自动构建和根据反馈调整知识图谱的能力....
2019 年知识图谱构建技术已经从过去的完全人工编辑,进化到了场景化定制 NLP 知识抽取配合人工模板和审核的模式,正在经历人工构建 - 群体构建 - 自动构建这样的技术路线。自动化构建知识图谱的特点是面向互联网的大规模、开放、异构环境,利用机器学习技术和信息抽取技术自动获取互联网信息。
2020 年,我们可以预见的是:大规模知识图谱的自动化、高质量构建将成为重要的发展趋势。具体来看,首先,知识图谱的 schema 自动构建和图表示推理将成为关注的重点;其次,随着知识图谱在各个行业的深入落地,会有更多面向领域知识图谱的自动化构建方案涌现出来,比如智能医疗、智能金融等相关知识图谱及推理应用建设;此外,随着 5G 的到来,5G 知识图谱的构建也值得我们期待。
10区块链稳定币将成全球关注重点
2019 年,区块链技术迎来了两支“强心剂”,一支是以 Facebook Libra 为代表的稳定币技术,另一支是中共中央政治局集体学习区块链技术,国家最高领导人对区块链技术给予高度肯定。
在过去一年中,各大主要分布式账本技术(DLT)、各大公司的联盟链技术团队都做出了不少改进,已经显著增加了相关方案解决实际问题的潜力。技术的相对成熟,让区块链能在未来的一年里结合企业业务得到落地发展。
我们认为,区块链未来主要有两点值得关注:一是区块链之间的互操作性,2020 年我们很可能会看到更多区块链系统的相互融合,跨链技术也有望进一步突破;二是稳定币支付技术。支付是区块链的看家本领,稳定币避免了其他类型数字货币币值不稳、剧烈波动的弊端,从而使数字货币能够真正应用于日常支付等业务场景中。
同时,在 Facebook Libra 的影响下,各国央行数字货币之间的竞争加剧,尤其我国的央行数字货币已是“呼之欲出”,未来国际金融体系势必会发生大变革。全球各国政府都比较重视这块儿的发展,相信在未来会掀起稳定币的热潮。