写点什么

InfoQ 2025 年趋势报告:软件架构和设计

作者:Thomas Betts, Sarah Wells等

  • 2025-05-17
    北京
  • 本文字数:3228 字

    阅读完需:约 11 分钟

大小:1.60M时长:09:20
InfoQ 2025年趋势报告:软件架构和设计

每年,InfoQ 的编辑都会与行业专家会聚在一起,讨论我们在软件架构与设计领域观察到的最新发展趋势。我们借助 Geoffrey A. Moore 的《跨越鸿沟》模型对这些趋势进行分类。基于我们集体的洞察与判断,那些被认定为创新者或早期采用者的趋势是 InfoQ 编辑团队下一年的主要关注点。这些也是 InfoQ 读者应该关注的话题,因为它们可能会为用户解决方案的灵感来源。除了本报告和趋势图外,附带的播客还包含了一场小组讨论,深入探讨了一些趋势。


由于软件架构决策总是充满了权衡,从来就不存在一种能够解决所有挑战的完美方案。正因为如此,编辑们对于某个趋势何时应该沿着采用曲线移动,一直保持着一种积极、理性且富有建设性的讨论。就像在设计系统时的那些“视情况而定”的选项一样,有时这更多的是依赖于主观判断,而非可量化的数据。


确定技术或趋势所处位置的一个关键因素是其稳定性。通常,创新想法发展迅猛,但因缺乏成熟度和稳定性,往往需要额外的投入才能取得成功。当一个趋势已经从早期采用者阶段跨越到早期大众阶段时,这表明更多的公司应该能够采用它,或者至少可以考虑它是否适用于他们的场景。



从架构师角度看 AI 趋势

在过去的一年里,与 AI 相关的话题在许多方面都在不断演变,未来仍将是整个行业的创新重点。如今,大语言模型(LLM)已经足够普及,它们不仅跨越了鸿沟,还从早期采用者阶段直接跳到了晚期大众阶段。LLM 已成为每一家公司声称自己在使用 AI 时最常提及的部分。然而,这种普遍性也导致了关于 LLM 应用场景及是否为合适工具的清晰度的缺失。颇具讽刺意味的是,这也揭示了另一种识别新技术何时跨越鸿沟的方式——当它开始被用于不恰当的场景时。


InfoQ AI、ML 和数据工程趋势报告对其中一些话题进行了更深入的探讨。在本报告中,我们聚焦于架构和设计趋势,着重关注一些软件架构师需要了解的主要趋势。可以将这些趋势视为上下文或组件图中的方框。虽然架构师不必亲自实现每一个组件和子系统,但他们需要了解 AI 元素如何与系统的其他部分相关联。输入和输出是什么?如何衡量性能、可扩展性、成本和其他跨功能需求?


读者可以关注 InfoQ 的 AI、ML & 数据工程话题,以便获取更多信息。


Agentic AI – 创新者

除了 LLM,软件架构师应该关注的 AI 创新领域还有 Agentic AI 和小语言模型(SLM)。Agentic AI 之前叫作“AI 智能体”,其理念是设计能够自主完成任务的 AI 模型。在某些情况下,多个智能体可以协作以获得更好的结果。在传统软件中,我们可能会看到用于管理工作流的编排模式。Agentic AI 从让智能体执行特定任务开始,后续可能发展成为一种监督式的方法,由 AI 来决定在业务流程中遵循哪些步骤。由于公司对非确定性软件做出重要决策的信任度存在较大差距,因此这种方法仍处于创新者阶段。


架构师在设计 Agentic 工作流时可以借鉴微服务的一些模式,让每个智能体都有明确的边界和交互模式。这种设计能带来更好的结果,因为智能体之间的响应和执行任务的质量可以被观察和调整。可维护性也得到了提升,随着新模型的出现,个体智能体模块可以被升级或替换。为了确保智能体响应得当,需随着智能体或其行动的演变持续进行测试。


观看 Shruti Bhat 在 QCon San Francisco 的主题演讲:开拓未来:推进 AI 智能体的基础设施以获取更多信息。


小语言模型(SLM)– 创新者

架构师正在将小语言模型(SLMs)视为利用 LLM 特性的一种选择,同时也在改进它们的一些缺点。SLM 通常比 LLM 更专业化,因此能够在某些任务中超越 LLM 的表现。这种专业化也意味着它们的训练过程更简便、成本更低,使得更多的公司能够创建专业化的模型。它们较小的规模还带来了较低的运营成本、更小的碳足迹以及更多的部署选项。与通过云托管的 API 访问 LLM 不同,SLM 可以部署在自托管的硬件上,或者部署在边缘计算机上,从而消除了网络流量延迟并提升了数据安全性。


关注 InfoQ 的 大语言模型话题(大多数 SLM 内容与 LLM 相关)以获取更多信息。


检索增强生成(RAG)– 早期采用者

要从 LLM 获取更高质量的结果,最常用的技术是 RAG。尽管 RAG 已迅速成为一种主流方法,但要实现有效应用仍需付出努力。软件架构师正在调整他们的系统,以便提供更易于被 RAG 场景使用的数据。在未来,系统的设计可能会直接围绕着将数据应用于 RAG 场景来进行。这与数据驱动架构的趋势相契合。


关注 InfoQ 的 检索增强生成话题以获取更多信息。


AI 辅助开发 – 早期大众

此前,InfoQ 一直把低代码/无代码作为架构趋势来跟踪,因为良好的 API 设计为平民开发者提供了可扩展性。现在我们决定用 AI 辅助开发来取代这一趋势,因为它们的用例有着显著的重叠。许多专业软件工程师正在使用 AI 工具来辅助编写代码,而平民程序员对 AI 工具的使用则是架构师需要关注的一个领域。在设计促进低代码开发的系统时,通常会格外小心以确保 API 的安全性。AI 编程助手进一步降低了入门门槛,在某些情况下,它们会让原本未为低代码解决方案或非专业开发人员设计的 API 变得更容易使用。尽管 AI 辅助开发已经广泛普及,但它的快速出现可能意味着架构师在设计能够应对被编写的代码访问的系统时跟不上节奏。


架构师和工程师还担心 AI 工具生成的代码质量,即使有专业的开发者参与也是如此。因为输出取决于提示词的质量,架构师正在寻找提供良好提示词的方法,确保代码和架构符合相关规范。目前,助力 AI 辅助开发的工具正在出现,但尚未达到其他编码风格标准(如代码检查或 EditorConfig)的水平。


绿色软件 – 创新者

碳高效和碳感知软件仍然是值得关注的创新趋势。许多公司专注于降低云托管成本,这可以作为减少能源消耗的有效手段。尽管能源消耗的减少带来了诸多益处,但目前对于软件系统碳足迹削减的关注度却远远不够。这就需要架构师们进行更深层次的思考,充分考量软件的运行地点与运行时间,从而更好地利用可再生能源。


时间和地点是让软件变得更绿色的关键因素,因为数据中心的电力供应方式很大程度上取决于这些因素。“追日”策略通常用于最大化太阳能的利用。然而,让服务器接近满负荷运行通常比让它们处于空闲状态更节能,因此在需求较低且已有容量的情况下,在晚上执行某些任务或许会更好。网络流量也是能源消耗的重要来源,因此应尽可能在本地处理数据。这些例子展示了绿色软件的复杂性,也解释了为什么这一领域将会继续出现创新。


关注 InfoQ 的 绿色软件可持续计算话题,收听《构建绿色软件》作者的播客以获取更多信息。


隐私工程 – 创新者

2024 年,隐私工程被纳入趋势图,以凸显那些将隐私视为主要功能而非仅因法规或事件驱动而被动实施隐私策略的公司。在某种程度上,AI 的兴起让在前期考虑隐私问题的理由变得愈发充分。在实现大语言模型之前,架构师会着重考量将通过网络传输哪些数据、这些数据是否用于训练模型以及对数据的使用是否符合先前批准的使用条款。


关注 InfoQ 的隐私话题以获取更多信息。


社会技术架构 – 早期采用者

架构师角色的演变以及架构实践方式始终是一个备受关注的话题。复杂的软件系统需要围绕负责构建、支持和演化软件的人员进行设计。“左移”是这一趋势的一种体现,软件生命周期各个阶段的问题都在流程的更早期得到解决。这不应被误认为是回归瀑布式项目管理和前期大规模设计。相反,这是架构师更早地与利益相关者讨论关注点,并设计出能够演进且避免为满足所有人需求而进行最后一刻返工的系统。


创新的架构师致力于在决策过程中减少瓶颈。他们不应是唯一的决策者,他们也需要帮助其他团队成员做出架构决策。通过提供建议和引导决策过程,团队能更快行动,做出更贴合实际的决策,并对设计有更深入的理解和信心。


团队构建和发布软件的方式会影响他们能够构建的东西。因此,平台架构是架构师需要考虑的。工程平台已经从定制解决方案转变为类似“平台即产品”的商品。在做构建还是购买的决策时,要从社会技术视角出发,让架构师和其他利益相关者考虑这些方案如何有利于软件的编写、部署和维护人员。


原文链接

https://www.infoq.com/articles/architecture-trends-2025/

2025-05-17 10:008789

评论

发布
暂无评论

第一周 架构方法 作业一 「架构师训练营 3 期」

胡云飞

极客大学架构师训练营 架构方法

面试JVM一问三不知??来看看这个

程序员的时光

JVM Java虚拟机

双指针算法和位运算&离散化和区间合并

落曦

市值管理机器人、自动跑k线机器人开发

t13823115967

市值管理机器人 自动跑k线机器人开发

在线K歌的发展和优势

anyRTC开发者

音视频 WebRTC RTC sdk

About Me

翎君

android

云原生应用Go语言:你还在考虑的时候,别人已经应用实践

华为云开发者联盟

微服务 云技术 Go 语言

有奖话题 | 如果程序员和产品经理都会凡尔赛文学,将如何对话?

YourBatman

话题讨论 凡尔赛文学

Appium上下文和H5测试(一)

清菡软件测试

App

彻底搞懂 IO 底层原理

vivo互联网技术

Java Netty 服务器 语法

Python进阶——什么是元类?

Kaito

Python

如何用CSS实现图像替换链接文本显示并保证链接可点击

陈北

CSS小技巧

30分钟开发一款抓取网站图片资源的浏览器插件

徐小夕

Java chrome 大前端 chrome扩展

如何基于App SDK快速地开发一个IoT App?

IoT云工坊

App 物联网 sdk 智能家居

基于DAYU的实时作业开发,分分钟搭建企业个性化推荐平台

华为云开发者联盟

华为 算法 数据 dayu

面试专题-Java基础面试技术

码界西柚

甲方日常 56

句子

工作 随笔杂谈 日常

moon不讲武德!!!一个类加载机制给面试官说蒙了!!

moon聊技术

Java JVM 类加载 类加载器

LeetCode题解:169. 多数元素,分治,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

我是面试官,我来分享一波面经!看看我的内心OS

比伯

Java 编程 架构 面试 技术宅

申通快递 双11 云原生应用实践

阿里巴巴云原生

阿里云 Kubernetes 运维 云原生 监控

马士兵最新2020涵盖P5—P8Java全栈架构师学习路线,跟着老师学我已拿P7Offer!

Java架构追梦

Java 学习 架构 面试 马士兵

架构师训练营第 1 期 - 第 9 周 - 学习总结

wgl

极客大学架构师训练营

MySQL如何实现万亿级数据存储?

冰河

MySQL 分布式 微服务 高可用 mycat

区块链应用场景有哪些?区块链应用开发

t13823115967

区块链应用场景有哪些 区块链应用开发

【薪火计划】05 - 坦诚是领导力的根基

码字与律动

管理

【JAVA】List转换为array

笑春风

大厂经验:埋点数据质量之埋点验证

阿亮

埋点 数据验证

Web前端如何实现断点续传

QiLab

Web 断点续传 upload pl

视频作品播放量低:自媒体作者如何走出新手村

石头IT视角

英特尔与南京溧水经济技术开发区共同成立智能交通研究院

E科讯

InfoQ 2025年趋势报告:软件架构和设计_架构_InfoQ精选文章