写点什么

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

评论

发布
暂无评论

IOC架构设计之控制反转和依赖注入(一),2021大厂Android面试经验

android 程序员 移动开发

Jetpack MVVM七宗罪 之三 :在 onViewCreated 中请求数据

android 程序员 移动开发

Jetpack之Paging,android面试自我介绍

android 程序员 移动开发

Jetpack系列(三) — LiveData,大厂Android面试总结+详细解答

android 程序员 移动开发

软件测试快速入门-软件测试行业现状-行业分析与职业规划

程序员阿沐

互联网 软件测试 自动化测试 计算机 测试工程师

IOC架构设计之Dagger2架构设计(三),进阶加薪全靠它

android 程序员 移动开发

Jetpack_Data Binding入门指南,这些新技术你们都知道吗

android 程序员 移动开发

Jetpack一统江湖!一个月彻底修改你的App架构!(1),kotlin协程源码分析

android 程序员 移动开发

JVM如何实现线程同步,干货精讲

android 程序员 移动开发

King-JVM中的线程行为,面试考点与面试技巧

android 程序员 移动开发

kotlin 协程最佳实践-android官网,软件开发面试题及答案

android 程序员 移动开发

JetPack系列——Navigation(一),flutter安装androidsdk

android 程序员 移动开发

万字解读鸿蒙轻内核物理内存模块

华为云开发者联盟

鸿蒙 内存 虚拟内存 物料内存 内存页

Jetpack Compose初体验,flutter游戏开发

android 程序员 移动开发

Jetpack Compose漫谈,搞懂这些直接来阿里入职

android 程序员 移动开发

IT-架构师绝对不能错过的-34-技术知识图谱帮你轻松拿下大厂offer

android 程序员 移动开发

IT圈的“年龄歧视”,移动互联网app开发实例

android 程序员 移动开发

Jetpack一统江湖!一个月彻底修改你的App架构!,Android技术图谱

android 程序员 移动开发

【高并发】如何确保线程按照我们想要的顺序执行?

冰河

并发编程 多线程 高并发 异步编程 Java Concurrency

HTTPS详解,谈谈我认为的高级Android开发到底应该是怎样的

android 程序员 移动开发

Java泛型,安卓面试项目经验

android 程序员 移动开发

Java虚拟机相关面试题,android系统开发面试

android 程序员 移动开发

Jetpack架构组件库-LiveData实战与应用-总有适合你的方案

android 程序员 移动开发

Java虚拟机相关面试题(1),整理出Android逆向系列学习进阶视频

android 程序员 移动开发

Kvrocks 2.0.4 发布

Kvrocks

c++ redis Redis 协议 storage

软件测试要遵循的原则有哪些?软件不存在缺陷是不可能的?为什么?

程序员阿沐

程序员 互联网 软件测试 测试工程师 测试原则

面试题:软件测试的流程

程序员阿沐

互联网 软件测试 计算机 测试工程师 测试流程

javascript中的原型与对象(一),12个View绘制流程高频面试题

android 程序员 移动开发

Java面试题八:抽象类和接口的区别,移动端开发技术创新

android 程序员 移动开发

Jetpack之DataBinding,2021Android最新大厂面试真题

android 程序员 移动开发

面试题系列:用了这么多年的 Java 泛型,我竟然只知道它的皮毛

Sakura

Java 架构 面试 计算机

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