写点什么

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

评论

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

x86和ARM混合部署下的两地三中心方案验证

TiDB 社区干货传送门

实践案例

TiDB学习之路

TiDB 社区干货传送门

实践案例

专栏技术文章发布指南&奖励

TiDB 社区干货传送门

社区活动

DBA之伤-truncate/drop

TiDB 社区干货传送门

使用 TiUP 安装部署 TiDB 集群实验流程

TiDB 社区干货传送门

版本升级 集群管理 管理与运维 安装 & 部署 扩/缩容

Dumpling 导出表内并发优化

TiDB 社区干货传送门

性能调优 TiDB 底层架构 备份 & 恢复

分布式数据库TiDB在百融云创的探索与实践

TiDB 社区干货传送门

实践案例

Ti-Click:通过浏览器快速搭建 TiDB 在线实验室 | Ti-可立刻团队访谈

TiDB 社区干货传送门

JOIN 查询的执行计划 比较

TiDB 社区干货传送门

性能调优 TiDB 底层架构

在TiDB中实现一个关键字——Parser篇

TiDB 社区干货传送门

TiDB 底层架构

TiDB4PG 之兼容 Gitlab

TiDB 社区干货传送门

关于TiDB数据脱敏的一些想法

TiDB 社区干货传送门

实践案例

前缀索引在特殊场景下的优化尝试

TiDB 社区干货传送门

实践案例 TiDB 底层架构

DM 分库分表 DDL “悲观协调” 模式介绍

TiDB 社区干货传送门

迁移 TiDB 底层架构

有关 TiDB 升级的二三事——教你如何快乐升级

TiDB 社区干货传送门

版本升级

大量 SET autocommit 导致的 TiDB Server CPU 高案例

TiDB 社区干货传送门

故障排查/诊断

5分钟搞定 MySQL 到 TiDB 的数据同步

TiDB 社区干货传送门

实践案例

TiDB BR 备份至 MinIO S3 实战

TiDB 社区干货传送门

管理与运维

TiDB在个推的落地实践 | 解决热点难题,提升性能超千倍

TiDB 社区干货传送门

性能调优

备份的 “算子下推”:TiDB BR 简介

TiDB 社区干货传送门

TiDB 底层架构 备份 & 恢复

DM 分库分表 DDL “乐观协调”模式介绍

TiDB 社区干货传送门

迁移 TiDB 底层架构

TiDB 社区专栏:让技术人员成为更好的读者/作家

TiDB 社区干货传送门

新版本/特性发布 新版本/特性解读

PlacementRules in SQL 初试

TiDB 社区干货传送门

关于我作为前端报名 TiDB Hackthon 2021 然后被毫无悬念地淘汰这档事

TiDB 社区干货传送门

回顾下Hackathon中的TiCheck

TiDB 社区干货传送门

实践案例

TiDB监控Prometheus磁盘内存问题

TiDB 社区干货传送门

故障排查/诊断

TiCDC 4.0.15 初体验

TiDB 社区干货传送门

实践案例

带着问题读 TiDB 源码:Power BI Desktop 以 MySQL 驱动连接 TiDB 报错

TiDB 社区干货传送门

故障排查/诊断 TiDB 源码解读

TiDB架构浅析

TiDB 社区干货传送门

TiDB 底层架构

TiSpark数据写入过程解析(源码解析)

TiDB 社区干货传送门

TiDB 底层架构

探索TiDB Lightning源码来解决发现的bug

TiDB 社区干货传送门

TiDB 底层架构

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