HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:009969

评论

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

spring4.1.8初始化源码学习三部曲之一:AbstractApplicationContext构造方法

程序员欣宸

Java spring 6月月更

SAP 云平台 ABAP 编程环境的前世今生

汪子熙

Cloud 云平台 SAP abap 6月月更

重点亦难点?三个案例看数据分类分级如何有效有序进行

美创科技

数据分类 数据安全

最全!即学即会 Serverless Devs 基础入门(下)

Serverless Devs

技术分享| 浅谈调度平台设计

anyRTC开发者

Web 音视频 指挥调度 调度 快对讲

springboot,vue,es,activiti数字知识库管理系统

金陵老街

Vue springboot ES Activiti 知识库

7 个 Flutter 开源项目,让你成为更好的 Flutter 开发者

坚果

6月月更

性能优化手记下篇之【计费】

鲸品堂

性能优化 运维

java培训 @Autowired 的实现原理

@零度

JAVA开发

知名巧克力全球召回,区块链帮你摆脱“甜蜜陷阱”

旺链科技

区块链 产业区块链 食品安全 食品溯源

C#入门系列(七) -- 循环语句

陈言必行

C# 6月月更

Web Service进阶(五)SOAPBinding方式讲解

No Silver Bullet

6月月更 SOAPBinding

Linux驱动开发_视频广告机开发、Linux进程编程介绍

DS小龙哥

6月月更

GIT 小白的指令合集

甜甜的白桃

git 版本管理 6月月更

中兴新支点加入龙蜥社区,共建操作系统开源新生态

OpenAnolis小助手

开源 龙蜥社区 合作 CLA 中兴新支点

企业竞争利器——知识管理

小炮

如何正确的评测视频画质

百度Geek说

视屏质量

浅谈JavaScript原型和原型链

大熊G

JavaScript 前端 6月月更

探究Presto SQL引擎(3)-代码生成

vivo互联网技术

sql presto antlr4

WordPress 常规设置

海拥(haiyong.site)

WordPress 6月月更

【Python技能树共建】字符串方法

梦想橡皮擦

6月月更

微软成为规模化敏捷组织的16个关键因素

ShineScrum捷行

敏捷 谷歌 规模化敏捷

web前端培训 SCSS 使用技巧总结分享

@零度

前端开发 scss

建木持续集成平台v2.4.1发布

Jianmu

DevOps CI/CD 开源项目 gitops 自动化运维

敏捷开发工具使用测评:好的敏捷项目管理工具有哪些?

爱吃小舅的鱼

直播回顾:隐私计算的关键技术以及行业应用技巧 | 龙蜥技术

OpenAnolis小助手

开源 直播 隐私计算 龙蜥社区 密码技术

fomo3d区块链分红游戏系统开发(案例演示)

开发微hkkf5566

最全!即学即会 Serverless Devs 基础入门(上)

Serverless Devs

5G发牌三周年 云网融合加速 如何解决企业网络之忧?

郑州埃文科技

IP地址 网络空间安全 5G 企业上云 云网融合

spring-cloud-k8s 跨 NS 的坑

Damon

微服务架构 云原生 6月月更

看板管理系统使用测评:一个好的看板工具应该具备哪些能力

爱吃小舅的鱼

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