AICon 深圳站 Keynote 嘉宾官宣!共探AI价值转化的实践路径 了解详情
写点什么

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

评论

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

干货分享!用心满满:面试前必知必会的二分查找及其变种

比伯

Java 编程 架构 面试 计算机

三分钟看懂快速开发,常用软件快速开发平台速览

Marilyn

敏捷开发 快速开发 企业开发 企业应用

王者级别的Java多线程技术笔记,我愿奉你为地表最强!

Java架构师迁哥

深入灵魂的考验,每行注释都是灵魂的单例模式,源码+实例降临

小Q

Java 学习 架构 面试 设计模式

架构师训练营第 1 期 第 11 周作业

李循律

极客大学架构师训练营

拆解增长黑客之实战(一):获客与激活

懒杨杨

增长 产品运营

多活/多机房的几种实现方式与重点

Justfly

高可用 跨机房 数据同步 异地多活容灾

架构探索:事务处理一

Dark

理解Python协程的本质

Justfly

Python 协程 异步 Async 异步编程

深度学习在物理层信号处理中的应用研究

华为云开发者联盟

学习 模型 物理层

工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇

阿里巴巴云原生

云原生 dubbo 中间件 案例分享 CloudNative

《Web自动化》基础知识脑图

清菡软件测试

Web

全球熵ETV系统APP开发|全球熵ETV软件开发

系统开发

5G多输入多输出技术,到底是个啥东东?

华为云开发者联盟

5G 输入 输出

为什么阿里人能够快速成长?看完他们Java架构进化笔记,我秒懂!

Java架构追梦

Java 学习 架构 面试 成长笔记

InfoQ 内容推荐位资源限时开放

乐白

InfoQ 资源

CloudIDE插件开发实战:教你如何调试代码

华为云开发者联盟

ide 开发 Cloud

mongodb 源码实现系列 - command 命令处理模块源码实现二

杨亚洲(专注MongoDB及高性能中间件)

MySQL mongodb 分布式数据库 源码刨析 分布式数据库mongodb

构师训练营 - 第七周课后练习

joshuamai

研发管理:敏捷研发下周报的价值

云原生实验室

云原生 敏捷 研发管理 周报

构师训练营 - 第七周学习总结

joshuamai

鹅厂大佬亲身经历证明,一周上线百万级并发系统

Java架构师迁哥

基于RTMP数据传输协议的实时流媒体技术研究(论文全文)

程序员小灰

音视频 ffmpeg 流媒体 RTMP webrtc、

前端开发还可以这么玩?元数据实践分享

华为云开发者联盟

大前端 元数据 组件 ROMA 业务流

anyRTC 联合 vInClass 打造在线教育上课模式

anyRTC开发者

音视频 WebRTC 在线教育 RTC

WebRTC SDP 详解和剖析

阿里云CloudImagine

阿里云 音视频 WebRTC 视频云 流媒体传输

揭秘 VMAF 视频质量评测标准

阿里云CloudImagine

视频 图像处理

流动性挖矿系统APP开发|流动性挖矿软件开发

系统开发

Linux角度仰视Goroutine的GMP

ninetyhe

Java Linux 多线程与高并发 Go 语言

云原生架构:容器资源限制及资源可见性

云原生实验室

云原生

告别“效率内卷化”,华为用一年时间让职场人支棱起来

脑极体

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