应用架构变化

1. 概述

2. 设计过程:从自上而下到双向演化

- 瀑布式或先设计后编码。架构师产出详细的UML图、接口定义、领域模型,然后交给开发团队落地。设计变更成本高,架构一旦确定,后期调整阻力大。 - 自下而上的探索更便捷:开发者可以用AI快速生成多个微服务的原型,通过实际运行来验证设计假设。架构不再仅仅是画出来的,更是试出来的。 - 即时重构成为常态:AI可以快速理解现有代码结构,并安全地执行大规模重命名、提取模块、拆分服务等操作。架构的演进速度显著加快,设计决策被推迟到最后一刻。 - 提示即架构:架构师的一部分工作变成了如何向AI描述系统的宏观约束(如生成一个符合六边形架构、使用CQRS模式的订单模块),AI成为设计意图到代码实现的快速翻译器。

3. 架构形态:从追求统一到接纳异构

- 强调技术栈的统一、框架的标准化,以降低人员流动带来的维护成本。一个公司可能强制所有服务使用Java Spring Boot。 - 多语言、多范式并存:AI降低了学习成本和迁移成本。开发者可以让AI生成一段高性能的Rust模块嵌入原有的Java系统,或用Python快速编写一个AI代理服务。架构师不再需要担心团队不会这门语言,因为AI成了公共的技术翻译。 - 代码生成物的占比上升:传统架构中,手写核心代码占主导。现在,架构中包含大量由AI生成的、结构清晰的基础设施代码(如DTO、Mapper、配置类),以及越来越多的AI原生组件——如嵌入向量数据库、LLM调用层、Prompt编排引擎、AI代理(Agent)等。 - 依赖关系的软化:传统架构通过接口或服务发现来解耦。现在,通过AI生成的结构化文档(如OpenAPI、AsyncAPI)和语义化的接口描述,服务间的契约可以更动态地生成和维护,甚至允许AI自动适配接口变更。

4. 关注重点:从技术细节到上下文与边界

- 核心关注点在于技术实现:用什么中间件、怎么处理事务、如何做负载均衡、数据库选型等。 - 架构师的核心精力从如何实现转向如何定义边界和上下文 - 代码与设计的语义鸿沟缩小:过去,架构文档和实际代码经常脱节。现在,架构师要求AI在设计文档中嵌入可执行的代码骨架,或者直接从代码中反向生成保持同步的架构图。文档即代码,代码即文档的界限模糊了。 - 上下文窗口成为关键资源:AI的上下文长度有限。架构设计需要模块化到极致,确保每个模块的代码量能完整放入AI的上下文窗口(如100-200k tokens)中,以便AI能精准理解和修改。这倒逼出更细粒度的模块划分。 - 关注点上升到系统级提示工程:对于包含AI服务的系统,架构设计需要考虑提示词的生命周期管理、不同LLM的适配层、Agent之间的通信协议、以及AI输出的可观测性。这些成为架构设计的核心议题,而非边缘配置。

5. 质量保障:从人工评审到AI原生验证

- 依靠代码审查、静态扫描、集成测试来保障质量。架构符合性通过架构守护工具或人工抽查来验证。 - 架构即测试:架构师可以编写架构单元测试。利用AI能力,编写脚本自动扫描所有代码,断言所有对外接口必须包含限流注解、数据库访问必须通过仓储模式、不允许存在循环依赖等。这些规则由AI辅助编写并持续在CI/CD中运行。 - 自动化架构演进:当需要升级架构(如从单体拆分为微服务)时,AI可以辅助分析调用图、识别边界上下文,并生成大部分拆分代码。架构演进从项目变成了日常操作。 - 安全与合规左移:AI可以在设计阶段就模拟攻击路径、检查数据流是否符合GDPR等合规要求。架构设计图中包含的数据流向,可直接被AI转化为安全审查用例。

6. 变化对比

|维度 |传统架构 |AI辅助架构 |---|---|---| |设计范式 |静态蓝图、先设计后编码 |动态演进、编码与设计互为驱动 |核心产物 |UML图、技术选型文档 |可执行的上下文边界、AI可读的规范 |依赖管理 |统一框架、严格版本锁定 |多语言混合、基于AI翻译的软依赖 |粒度控制 |根据团队结构划分服务 |根据AI上下文窗口划分模块 |质量手段 |人工审查、后期测试 |架构即代码、AI原生自动化验证 |新增要素 |无 |AI代理通信、向量存储、提示词管线、LLM网关

7. 高度警惕

AI并没有消除架构设计的复杂性,而是将其转移和放大 - AI生成的代码可能逻辑正确但结构混乱,如果没有清晰的架构约束,系统会更快地陷入大泥球状态。 - 架构师的角色从“建造者”变为“规则定义者和验收者”,这要求更强的抽象能力和判断力。 - AI可能提出看似合理但存在隐患的架构方案(如错误的新技术组合)。 - 架构师必须具备更扎实的基础原理知识,才能识别这些“AI式创新”中的风险。 - 当系统中相当比例的代码由AI生成,且来自不同开发者(甚至不同AI模型)时,代码风格、模式的统一性需要更严格的自动化治理,否则维护成本会急剧上升。

8. 总结

  • 架构设计正在从一门静态的艺术转变为一门动态的工程科学。