「ArchSummit·深圳」人工智能如何促进工业和制造领域的智能化转型? >>> 了解详情
写点什么

InfoQ 2023 年趋势报告:事件驱动架构、深度学习和人工智能、云原生架构和容器化技术

作者:Thomas Betts, Blanca Garcia Gil 等

  • 2023-05-10
    北京
  • 本文字数:2964 字

    阅读完需:约 10 分钟

InfoQ 2023 年趋势报告:事件驱动架构、深度学习和人工智能、云原生架构和容器化技术

InfoQ 趋势报告为 InfoQ 的读者提供了需要关注的主题的概览,同时帮助 InfoQ 编辑团队关注创新性的技术。除了该报告和趋势图之外,与之相关的播客会有多位编辑讨论这些趋势。


趋势图的更新


在后文中,我们会对报告进行更详细的阐述,但我们首先总结一下去年以来趋势图的变化。


今年有三个新的条目添加到了图表中。大语言模型和软件供应链安全是新的创新者趋势,“将架构作为团队运动”被添加到了早期采用者中。


获得采用并转移到右侧的趋势包括“可移植性设计”、数据驱动架构和 serverless。eBPF 被删除掉了,因为它的应用范围较小,而且不太可能成为架构决策的主要驱动力。


有些趋势进行了重命名或进行了合并。我们认为 Dapr 是对“可移植性设计”理念的实现,所以作为一个单独的趋势,它被移除掉了。数据驱动架构是“数据+架构”和数据网格(data mesh)的组合。区块链被替换为更广泛的去中心化的应用,或 dApps 的概念。WebAssembly 现在同时涉及到了服务端和客户端,因为这些都是相关但独立的想法,并可能在未来独立演进。

可移植性设计


“可移植性设计”中的可移植性指的并不是能够将代码拿出来并转移到别的地方去。相反,它从基础设施中创建了一个整洁的抽象概念。正如 InfoQ 编辑 Vasco Veloso 所言,“设计和构建系统的人可以专注于能够带来价值的东西,而不必过多担心它们将要运行的平台的细节。”


这种设计理念正在被 Dapr 这样的框架所实现。InfoQ 的新闻经理 Daniel Bryant 认为 CNCF 项目的好处在于为构建云原生服务提供了一个清晰的抽象层和 API。Bryant 说,“[集成]的关键在于 API,而[Dapr]提供了抽象,而不做最低限度的共同标准”。


Bilgin Ibryam 在最近的一篇文章中描述了云原生应用向云限定(cloud-bound)应用的演变。云限定应用不是使用应用逻辑和计算基础设施的逻辑组件来设计一个系统,而是把关注点放到集成绑定上。这些绑定包括外部 API,以及像工作流编排和可观测性遥测这样的运维需求。


另一项支持可移植性设计的技术是 WebAssembly,尤其是服务器端的 WebAssembly。通常,

WebAssembly 被视为客户端的功能,用于优化在浏览器中运行的代码。但是,使用 WebAssembly 对服务器端的代码大有益处。InfoQ 的编辑 Eran Stiller 描述了创建基于 WebAssembly 的容器的过程。


与其将它编译为 Docker 容器,然后在编排器的容器中启动整个系统,还不如将其编译为 WebAssembly,这样能够使容器更加轻量级。它的构建是非常安全的,因为它的最初目的是用来运行浏览器的。而且它能够在任何地方运行:在任意云或任意 CPU 上。——Eran Stiller


关于DaprWebAssembly的更多信息,可以关注 InfoQ 相关的主题。

大语言模型


AI 相关的新闻,尤其是像 GPT-3 和 GPT-4 这样的大语言模型,已经让我们无法忽视了。正如人们日常使用和各种形式的媒体报道所证明的那样,它不仅仅是软件专业人员使用的工具。但是,它对软件架构师意味着什么呢?在某种程度上来讲,现在断言未来会发生什么还为时尚早。


借助 ChatGPT 和 Bing,我们刚刚看到像 GPT-3 这样的大语言模型的可能性。这就是创新者(innovator)趋势的定义。我不知道会有什么样的结果,但它肯定是非常重要的,我期待在未来几年看到它的发展。——Thomas Betts


虽然未来是不确定的,但我们乐观地认为,这些 AI 模型会对我们构建的软件以及构建软件的方式产生积极的影响。ChatGPT、Bing chat 和 GitHub Copilot 的代码生成功能对编写代码和测试很有助益,能够让开发人员更快地开展工作。架构师也可以使用聊天机器人来讨论设计方案和分析权衡利弊。


尽管这些效率提升是很有用的,但是必须要了解 AI 模型的局限性。它们有内在的偏见,这可能并不那么显而易见。虽然看起来它们的回应信心满满,但它们可能并不了解你的领域。


这肯定是 2023 年需要关注的一个主要趋势,因为新产品是建立在大语言模型之上的,而公司找到了将它们集成到现有系统的方法。

数据驱动架构


去年,我们讨论了“数据+架构”的理念,以此来掌握架构师在设计系统时该如何以不同的方式来考虑数据。今年,我们在“数据驱动架构”的标题下,将这一理念与数据网格(Data Mesh)结合了起来。


数据的结构、存储和处理都是前期要关注的问题,而不是在实现过程中要处理的细节。QCon 伦敦编程委员会的成员 Blanca Garcia-Gil 说,“在设计云架构时,有必要从一开始就考虑数据的收集、存储和安全性,这样以后我们就可以从中获取价值,包括使用 AI/ML”。Garcia-Gil 还指出,数据可观测性依然是一个创新者趋势,至少与系统中其他部分的可观测性相比是这样的。


数据网格是一种范式的转变,团队围绕着数据产品的所有权进行调整。这符合数据驱动架构的理念,也会将康威法则纳入系统的整体设计。

设计可持续性


尽管设计可持续性得到了更多的采用,但是我们依然将其作为一个创新者趋势,因为行业刚刚开始真正接受可持续系统以及面向低碳足迹的设计。我们需要将可持续性作为一个主要特性,而不是在降低成本时的次要目标。Veloso 说,“我注意到最近有很多关于可持续性的讨论。坦白讲,可能有一半的原因是因为能源价格更加昂贵,每个人都想要减少 OPEX”。


在这方面,最大的挑战之一是难以衡量系统的碳足迹。到目前为止,成本一直作为环境影响的替代方案,因为耗费的计算量与使用了多少碳之间存在一定的关联性。但是,这种技术有很多的局限性。


绿色软件基金会(Green Software Foundation)是一个致力于创建工具来测量碳消耗的计划。在 QCon 伦敦会议上,Adrian Cockcroft 概述了三大云供应商(AWS、Azure、GCP)目前在碳测量方面的情况


随着工具的改进,开发人员将能够把碳使用添加到系统的其他可观测性指标中。一旦数据可见,就可以设计和修改系统以减少它们。


这也与可移植性和云原生框架的理念息息相关。如果我们的系统更具可移植性,这意味着我们能够更容易地调整它们,以最环保的方式运行。这可能涉及到将资源移动到使用绿色能源的数据中心,或者在可用能源更加绿色环保的时候处理工作负载。我们不再假定在服务器不繁忙的夜间是运行工作负载的最佳选择,因为太阳能可能意味着白天的中午是最绿色环保的时间。

去中心化应用(dApps)


区块链和分布式账本是去中心化应用背后的技术。随着 Twitter 的变化,作为一个替代性的、去中心化的社交网络,Mastodon 得以进入大众视野。但是,区块链技术所致力于解决的问题依然被大多数人认为这根本并不是什么问题。由于适用场景的小众性,它依然被归类为创新者趋势。

将架构作为团队运动


架构师不再独自开展工作,架构师也不再只思考技术问题。在行业中,架构师角色的差异很大,一些公司已经完全取消这个头衔,而倾向于让“首席工程师(principal engineer)”作为主要负责架构决策的角色。这对应了一种更加强调协作的工作方式,架构师与构建系统的工程师紧密合作,不断完善系统设计。


架构师会一直与软件团队合作,提出并迭代设计。我会持续看到这里有不同的角色(尤其是在较大的组织中),但是最重要的是,要通过概念验证进行沟通和协作,从而对设计进行尝试。——Blanca Garcia-Gil


现在,架构决策记录(Architecture Decision Record,ADR)被普遍认为是记录和交流设计决策的一种方式。它们也可以用作协作工具,帮助工程师学会做出技术决定和考虑权衡利弊。


原文链接:

Software Architecture and Design InfoQ Trends Report - April 2023


相关阅读:

InfoQ 2023 年趋势报告:影响组织文化的两个最大的因素是大裁员和 ChatGPT 等大型语言模型

2023-05-10 08:006974

评论

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

推广TrustAI可信分析:通过提升数据质量来增强在ERNIE模型下性能

汀丶人工智能

nlp

数据湖(十三):Spark与Iceberg整合DDL操作

Lansonli

数据湖 10月月更

Spark On Kubernetes 的 Web UI 访问实践

移动云大数据

JUC面试题

Andy

JUC浅析(一)

Andy

立即可用的实战源码(springboot+redis+mybatis+restTemplate)

程序员欣宸

Java springboot 10月月更

线程池浅析

Andy

java之理论问题集合

Andy

java之扩展概念

Andy

Java面向对象

Andy

【一Go到底】第二十八天---数组实际案例与复杂应用

指剑

Go golang 10月月更

极客时间运维进阶训练营第二周作业

忙着长大#

极客时间

“程”风破浪的开发者|云数据库时代,DBA要掌握哪些技能?

乌龟哥哥

学习方法 10月月更 “程”风破浪的开发者

jdk11之Idea使用问题

Andy

从“汽车制造”生活案例到软件的建造者模式

宇宙之一粟

设计模式 建造者模式 Go 语言 10月月更

zTree

Andy

极客时间运维进阶训练营第二周作业

9527

String源码分析(二)

知识浅谈

String类 10月月更

java之流

Andy

JUC 浅析(二)

Andy

java之线程

Andy

AR人体姿态识别,实现无边界的人机交互

HMS Core

AR

鸿蒙开发实例 | 鸿蒙操作系统的前世今生

TiAmo

华为 鸿蒙 10月月更

如何在C#或VB.NET程序中为幻灯片添加或删除批注

Geek_249eec

C# PPT VB.NET

Spark on k8s在阿里云EMR的优化实践

阿里云大数据AI技术

大数据 spark 企业号十月PK榜

java之新特性

Andy

java之类库

Andy

vue3 name 属性的使用技巧

new_cheng

Vue 前端 Vue3 VUE 3.0 源码

27位技术实战派负责人齐聚 深聊降本增效 你一定不想错过!

阿里技术

云计算 云原生 云栖大会 降本增效

java之反射机制与国际化、网络编程、数据库编程、不可变对象

Andy

java之类集框架

Andy

InfoQ 2023 年趋势报告:事件驱动架构、深度学习和人工智能、云原生架构和容器化技术_架构_InfoQ精选文章