最近在团队内部聊天时,有同学抛出了一个挺有冲击力的命题:现在大模型这么强,阿里云、腾讯云、华为云这些重资产云平台,会不会被 AI 直接“掀桌子”?后续的讨论很快分成了两派。一派认为,AI 只是云上的一个应用,算力、存储、网络仍然是底座,颠覆无从谈起;另一派则认为,当 AI 能自己生成代码、自动运维、自动扩缩容时,传统云计算的形态肯定会发生变化。
这个问题其实不能简单地回答“会”或“不会”。作为一个常年和 Spring Cloud、容器、微服务打交道的技术人,我更倾向于把它拆成几个层面来看:基础设施层、平台层、应用层、开发范式层。每一层受到的冲击不同,演进速度也不同。这篇文章就围绕“AI 能否颠覆云计算”这个话题,从概念、架构、实战、成本四个维度展开分析,并给出可运行的代码示例。无论你是后端开发、架构师、运维,还是正在学习云原生和 AI 应用的初学者,都能从中找到对你有价值的内容。
1. 先定义问题:AI 和云计算不在同一个维度
很多人讨论“AI 会不会颠覆云计算”时,其实是在讨论两个不同维度的事物。要得出一个可靠结论,我们需要先把概念边界划清楚。
1.1 云计算到底在解决什么问题
云计算本质上是一种算力、存储、网络的规模化供给模式。它把分散的物理资源通过虚拟化、容器化、编排调度等技术池化起来,再通过网络以按需付费的方式对外提供服务。
与传统的自建机房相比,云计算解决的是三个问题:
- 资源弹性:业务高峰来了可以快速扩容,低谷时可以缩容节省成本。
- 运维规模化:通过 Kubernetes、DevOps、可观测性平台,把成千上万台机器的管理变成标准化操作。
- 服务化交付:从 IaaS 的基础资源,到 PaaS 的中间件与数据库,再到 SaaS 的应用,全部封装成可直接消费的 API。
换句话说,云计算的本质是“把基础设施变成软件”,它已经存在了十几年,并且在企业 IT 中深深扎根。云原生应用、微服务、容器编排这些技术,本质上都是为了让云资源的使用更高效。
1.2 AI 提供的是能力,不是基础设施
AI 大模型,包括常见的大语言模型(LLM)、图像生成模型、多模态模型,本质上是一类“能力”。它们能够根据输入生成文本、图片、代码,能够完成阅读理解、文本分类、代码补全等任务。
这些模型需要巨大的算力来训练和推理,而在绝大多数情况下,这些算力本身也跑在云上。也就是说,AI 是云的“租户”,而不是云的“替代者”。
准确理解这一点很关键:AI 和云计算不是竞争关系,而是一种“能力”与“基础设施”的耦合关系。AI 需要云提供算力,云也需要 AI 提供更智能的服务能力。
1.3 “颠覆”这个词需要被拆开定义
如果我们把“颠覆”理解为“让云计算消失”,那这个命题几乎不成立。现实世界的数据中心、容器集群、网络设备不会因为模型的诞生而消失,反而会因为大模型训练和推理的需求而继续增长。
但如果我们把“颠覆”理解为:
- 开发方式是否会被 AI 重写?
- 云上应用的服务形态是否会发生根本变化?
- 云厂商的核心竞争力是否会从资源规模转向 AI 能力?
- 传统的运维方式是否会被 AI Agent 替代?
那么答案就变得很有意义了。从这些维度来看,AI 确实正在“颠覆”云计算的使用方式和生态结构,只是底层的基础设施依然存在,并且变得更重。
2. AI 正在重塑云计算的三个层面
把云计算的架构分层来看,AI 对每一层的影响并不相同。这种影响不是线性的,而是从应用层逐渐向下渗透。
2.1 基础设施层:算力池化与异构计算成为标配
过去我们讨论云基础设施时,重点通常是 CPU、内存、磁盘和网络。但在 AI 时代,GPU、NPU 等异构计算资源成为新的稀缺资源。
大模型的训练需要大规模 GPU 集群,推理服务也需要高性能 GPU 实例。这就带来一系列新问题:
- GPU 资源如何池化并高效调度?
- 如何让不同业务共享同一批 GPU 卡,避免资源浪费?
- 模型训练和推理任务如何在容器中运行?
- 如何解决 GPU 节点之间的高速网络通信?
这些问题的答案仍然依赖云计算的技术栈:Kubernetes、容器、虚拟化、弹性伸缩、存储。只是云基础设施从“以 CPU 为中心”转向“以异构算力为中心”,复杂度大幅提高。
在这个趋势下,云厂商也开始提供更细粒度的 AI 算力产品,比如 GPU 容器实例、Serverless 模型推理服务、弹性 GPU 共享等。基础设施层没有被颠覆,但它正在被 AI 重新塑造。
2.2 平台层:云厂商主动把 AI 能力内置化
平台层是变化最明显的一层。过去,云厂商的 PaaS 主要提供数据库、消息队列、缓存、对象存储等中间件服务。现在,几乎所有主流云厂商都在 PaaS 层加入了 AI 能力:
- 模型服务:直接提供大模型 API,开发者不需要关心模型部署细节。
- 向量数据库:为大模型应用提供知识库检索能力,用来解决模型幻觉和数据时效性问题。
- AI Agent 平台:提供智能体编排、插件调用、工作流编排能力。
- AI 开发平台:提供模型微调、评测、部署的一站式工具链。
云厂商之所以这样做,是因为他们清晰地看到:AI 应用会大量部署在云上,而开发者更愿意以 API 方式调用模型能力,而不是自己维护 GPU 集群。
对于开发者来说,这意味着云平台的“可编程接口”增加了模型维度。以前调用云 API 是创建 ECS、操作 OSS、读写数据库;现在还可以直接调用大模型接口,完成文本理解、内容生成、知识问答等任务。
2.3 应用层:AI 原生应用改变交付模式
应用层是 AI 影响最直接的层面。过去几年,应用交付模式经历了从单体到微服务、再到云原生的演进。而 AI 原生应用带来了新的变化:
- 交互方式从“表单/按钮”变成“对话/自然语言”。
- 应用能力从“固定逻辑”变成“模型推理 + 外部工具调用”。
- 应用性能不再只看接口延迟和吞吐,还要看模型推理耗时与 Token 成本。
举个例子,一个传统的电商订单系统,业务逻辑是确定性的:下单、扣库存、生成订单、支付回调。而一个 AI 客服助手,它的行为是概率性的:它需要理解用户问题、检索相关商品知识、生成回复,甚至可能调用订单查询接口。这种应用形态的差异,直接影响架构设计、监控指标和成本模型。
3. AI Agent 与 AI 编程工具对云开发模式的影响
除了产品形态,AI 还在改变普通开发者的日常工作流。这一部分很容易被低估,因为它不像 GPU 算力那么显性,却能直接影响团队的研发效率。
3.1 从“编码”到“对话式开发”
AI 编程工具已经不再是新鲜事物。从 GitHub Copilot 到 Cursor,再到国内云厂商推出的 AI 编码插件,越来越多的开发者开始在 IDE 里使用 AI 辅助写代码。
传统云开发模式下,你要完成一个功能,通常需要:
- 设计数据表结构。
- 编写业务代码。
- 写单元测试。
- 配置部署脚本。
- 手动排查构建错误。
在 AI 编程工具的辅助下,很多重复性工作可以被压缩。你可以用自然语言描述需求,AI 生成基础代码框架;遇到编译错误时,直接把报错贴给 AI,让它给出修复建议;写测试用例时,AI 可以基于已有代码自动生成边界用例。这些工具确实提高了编码效率,但并没有消除对架构设计、系统拆分、性能调优的需求。
3.2 AI Agent 与云 API 的组合
AI Agent 是最近一年讨论度很高的概念。一个 AI Agent 不只是能聊天,它还能调用工具、读取数据、做决策、执行任务。当 Agent 被授权访问云 API 时,它会变得非常强大。
举几个典型场景:
- 运维自动化:Agent 收到“线上 CPU 使用率持续 90%”的告警后,自动查询监控数据,分析可能的瓶颈,并根据预设策略触发扩容流程。
- 成本治理:Agent 定期扫描云资源使用情况,识别闲置实例、未绑定 IP、低利用率磁盘,生成优化建议并自动执行回收策略。
- 日志诊断:Agent 读取异常日志堆栈,结合历史知识库定位根因,并把结论推送到工单系统。
这些场景的共同点是:AI 负责“思考”,云 API 负责“执行”。Agent 本身是入口,而真正执行动作的仍然是云平台沉淀出来的 OpenAPI。也就是说,AI Agent 不会让云 API 消失,反而会让云 API 的调用频率更高、调用方式更智能。
3.3 云上的测试、监控与运维正在智能化
测试和运维同样在发生变化。
在测试领域,AI 已经被用于生成测试数据、自动生成接口测试用例、智能识别 UI 变化并完成回归测试。过去写自动化测试需要维护大量脚本,现在 AI 可以辅助生成脚本,甚至直接根据需求描述生成可执行的测试场景。
在监控领域,传统的告警策略是人为设定阈值,比如“CPU 超过 80% 持续 5 分钟就告警”。这种静态阈值在业务波动明显时容易漏报或误报。基于 AI 的异常检测可以学习业务历史曲线,自动判断哪些波动属于正常范围,哪些是真正的异常。
这些变化让“云上研发”的效率模型发生了变化。以前团队需要花大量时间写测试、看监控、调配置,现在这些工作的一部分可以由 AI 承担,开发人员可以把精力放到更高层次的架构设计和业务理解上。
4. 实战一:在云上接入大模型 API
概念讲多了容易飘,我们落地到代码。这一节给你一个完整可运行的示例:通过 Python 调用云端大模型 API,完成一个简单的问答服务。
4.1 准备工作
在开始之前,你需要准备:
- 一个云厂商账号,并开通模型服务。这里不绑定具体厂商,只要它提供 OpenAI 兼容协议的接口即可。
- 一个模型 API Key,记为
MODEL_API_KEY。 - 本机安装 Python 3.9 及以上版本。
- 安装 OpenAI SDK,命令如下:
pip install openai不同云厂商的大模型网关地址不同,这里以阿里云百炼提供的 OpenAI 兼容地址为例。如果你的环境使用其他云厂商,只需要修改MODEL_BASE_URL和MODEL_NAME两个变量。
4.2 Python 调用模型服务
创建一个项目文件,目录结构如下:
ai-cloud-demo/ ├── app.py └── requirements.txt首先在requirements.txt中写入依赖:
openai python-dotenv然后是核心代码app.py:
# ai-cloud-demo/app.py import os from openai import OpenAI # 从环境变量读取配置,不要把密钥硬编码在代码里 MODEL_API_KEY = os.environ.get("MODEL_API_KEY", "") MODEL_BASE_URL = os.environ.get( "MODEL_BASE_URL", "https://dashscope.aliyuncs.com/compatible-mode/v1" ) MODEL_NAME = os.environ.get("MODEL_NAME", "qwen-plus") def ask_ai(content: str) -> str: if not MODEL_API_KEY: raise ValueError("请先配置 MODEL_API_KEY 环境变量") client = OpenAI( api_key=MODEL_API_KEY, base_url=MODEL_BASE_URL, ) response = client.chat.completions.create( model=MODEL_NAME, messages=[ { "role": "system", "content": "你是一名云计算架构师,请用简洁准确的中文回答。" }, { "role": "user", "content": content } ], temperature=0.7, ) return response.choices[0].message.content if __name__ == "__main__": question = input("请输入你的问题:") answer = ask_ai(question) print("AI 回答:", answer)这段代码的核心逻辑很直观:
- 从环境变量读取 API Key 和模型网关地址。
- 创建 OpenAI 客户端,指定
base_url。 - 以
system和user两条消息组成对话上下文。 - 调用
chat.completions.create获取模型回复。
很多云厂商的模型服务都提供 OpenAI 兼容接口,因此这段代码稍作配置修改后,可复用在多个平台。
4.3 运行与验证
在命令行中配置环境变量并运行:
export MODEL_API_KEY=sk-你的密钥 export MODEL_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 export MODEL_NAME=qwen-plus python app.py输入一个技术问题,例如“如何设计一个高可用的微服务架构”,程序会输出模型生成的回答。
这里的重点不是让模型回答得多么完美,而是让你理解:AI 能力在云上已经被抽象成 API 形态,开发者的接入成本已经非常低。传统云 API 调用的是“确定性的计算能力”,而模型 API 调用的是“概率性的智能能力”,这是二者最大的区别。
4.4 输入输出与错误处理
生产环境不能像示例这样直接调用,还需要考虑:
- 超时设置:模型推理可能较慢,默认请求超时可能不够。
- 错误重试:遇到限流、网络抖动时,需要重试策略。
- Token 数限制:请求和响应都有 Token 上限,长文本需要分段处理。
- 内容安全:根据业务场景增加输入输出过滤。
一个更完善的调用封装如下:
import time from openai import OpenAI def call_ai_with_retry(prompt: str, max_retries: int = 3): client = OpenAI( api_key=os.environ["MODEL_API_KEY"], base_url=os.environ["MODEL_BASE_URL"], timeout=30.0, ) for attempt in range(max_retries): try: response = client.chat.completions.create( model=os.environ["MODEL_NAME"], messages=[{"role": "user", "content": prompt}], ) return response.choices[0].message.content except Exception as e: print(f"第 {attempt + 1} 次调用失败: {e}") time.sleep(2 * (attempt + 1)) raise RuntimeError("AI 调用多次重试仍然失败")这里使用了指数退避重试策略,能有效应对临时性的网络和限流问题。
5. 实战二:用 Spring AI 构建云原生 AI 服务
Python 脚本适合快速验证,但如果要构建企业级服务,Java 在云原生生态中依然是主力。Spring AI 是 Spring 官方推出的 AI 应用开发框架,它的目标是把 AI 模型接入、提示词管理、结构化输出标准化,让 Java 开发者可以用熟悉的 Spring 风格开发 AI 应用。
5.1 创建项目与依赖
假设你使用 Spring Boot + Spring AI 创建一个简单的聊天服务。项目结构如下:
ai-chat-service/ ├── pom.xml └── src/main/java/com/example/aichat/ ├── AiChatApplication.java └── ChatController.java在pom.xml中加入依赖:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-model-openai</artifactId> </dependency> </dependencies>需要提醒你的是,Spring AI 的版本演进较快,不同的版本对应的 Starter 模块名可能不同。如果你使用较新的版本,建议以 Spring AI 官方文档给出的坐标为准。
5.2 配置文件
在src/main/resources/application.yml中写入:
spring: application: name: ai-chat-service ai: openai: api-key: ${MODEL_API_KEY} base-url: ${MODEL_BASE_URL} chat: options: model: ${MODEL_NAME:qwen-plus} server: port: 8080注意,这里依然通过环境变量注入密钥。MODEL_NAME设置了默认值qwen-plus,你也可以根据实际业务替换成其他模型名。
5.3 编写 ChatClient 代码
创建一个 Spring Boot 主类:
// ai-chat-service/src/main/java/com/example/aichat/AiChatApplication.java package com.example.aichat; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class AiChatApplication { public static void main(String[] args) { SpringApplication.run(AiChatApplication.class, args); } }再创建一个ChatController,通过ChatClient调用大模型:
// ai-chat-service/src/main/java/com/example/aichat/ChatController.java package com.example.aichat; import org.springframework.ai.chat.client.ChatClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/chat") public class ChatController { private final ChatClient chatClient; public ChatController(ChatClient.Builder builder) { this.chatClient = builder.build(); } @GetMapping public String chat(@RequestParam String message) { return chatClient.prompt(message).call().content(); } }在这段代码中,ChatClient.Builder是 Spring AI 自动装配的 Bean。你只需要注入它,并调用prompt(message).call().content(),就能完成一次模型问答。
ChatClient是 Spring AI 提供的流式 API,相比于直接使用原生 SDK,它更贴近 Spring 的开发习惯,也方便后续扩展提示词模板、输出解析等功能。
5.4 运行与验证
启动应用:
export MODEL_API_KEY=sk-你的密钥 export MODEL_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 export MODEL_NAME=qwen-plus mvn spring-boot:run启动成功后,访问:
curl "http://localhost:8080/api/chat?message=介绍一下云计算"正常返回时,你会在控制台看到 Spring Boot 启动日志,接口返回模型生成的文本。
这里有一个值得注意的点:Spring AI 的引入并不仅仅是给项目增加了一个 HTTP 客户端,它让 AI 能力变成了 Java 体系中的一等公民,你可以像使用 JdbcTemplate、RestTemplate 一样使用 ChatClient。这对已有 Java 微服务体系的团队来说,集成成本非常低。
6. 实战三:把 AI 应用部署到云上
本地运行成功之后,下一步就是部署到云端。这一节把上面构建的 Spring Boot 应用容器化,然后通过 Kubernetes 部署到云上。
6.1 编写 Dockerfile
在项目根目录创建Dockerfile:
# 使用 JDK 17 作为基础镜像 FROM eclipse-temurin:17-jdk WORKDIR /app # 复制构建产物 COPY target/ai-chat-service-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"]构建镜像前,先执行 Maven 打包:
mvn clean package -DskipTests然后用 Docker 构建镜像:
docker build -t your-registry/ai-chat-service:latest .请把your-registry替换成你自己的镜像仓库地址。
6.2 推送镜像到云上镜像仓库
登录云厂商镜像仓库后,执行:
docker push your-registry/ai-chat-service:latest这一步需要你提前在云控制台创建好镜像仓库命名空间,并完成 Docker 登录凭证配置。
6.3 使用 Kubernetes 部署
准备好deployment.yaml文件:
apiVersion: apps/v1 kind: Deployment metadata: name: ai-chat-service labels: app: ai-chat-service spec: replicas: 2 selector: matchLabels: app: ai-chat-service template: metadata: labels: app: ai-chat-service spec: containers: - name: ai-chat-service image: your-registry/ai-chat-service:latest ports: - containerPort: 8080 env: - name: MODEL_API_KEY valueFrom: secretKeyRef: name: ai-model-secret key: api-key - name: MODEL_BASE_URL value: "https://dashscope.aliyuncs.com/compatible-mode/v1" - name: MODEL_NAME value: "qwen-plus" resources: requests: cpu: 250m memory: 512Mi limits: cpu: "1" memory: 1Gi --- apiVersion: v1 kind: Service metadata: name: ai-chat-service spec: selector: app: ai-chat-service ports: - port: 80 targetPort: 8080 type: ClusterIP这份资源配置文件有两个值得注意的设计:
- 密钥通过
secretKeyRef从 Kubernetes Secret 中注入,避免把 API Key 写死在 YAML 里。 - 为容器设置了 resources 请求和限制,避免 AI 应用在高峰流量时耗尽节点内存。
创建 Secret 的方式如下:
kubectl create secret generic ai-model-secret \ --from-literal=api-key=sk-你的密钥6.4 部署与验证
执行部署命令:
kubectl apply -f deployment.yaml查看 Pod 状态:
kubectl get pods -l app=ai-chat-service当 Pod 进入 Running 状态后,如果需要外部访问,可以把 Service 类型改成LoadBalancer或通过 Ingress 暴露。验证方式:
kubectl port-forward svc/ai-chat-service 8080:80 curl "http://localhost:8080/api/chat?message=Hello"到这里,一个完整的“云上 AI 服务”流程就跑通了。这个流程和你以前部署普通 Spring Cloud 服务非常相似,区别在于应用内部多了一次大模型 API 调用。从这个角度也可以看出,AI 应用并没有脱离云原生的部署框架,它更像是在云上运行的“新一代业务逻辑”。
7. 云上 AI 落地的瓶颈与成本约束
虽然 AI 在云端接入很方便,但真要把 AI 特性放到生产环境,依然存在不少瓶颈。这一节我们务实地讨论成本、安全和可靠性。
7.1 算力与成本
大模型的训练和推理成本远高于传统业务。即使是调用云厂商的模型 API,也要根据 Token 用量付费。一个常见的问题:你写了一个 AI 客服系统,用户每次提问都可能触发几千字的上下文,一个月下来账单可能超出预期。
成本控制是 AI 应用上线时最容易被低估的问题。建议在项目初期就建立如下机制:
- Token 用量统计:记录每个请求的输入输出 Token。
- 用户级配额:限制单个用户每小时的调用次数。
- 模型分级:简单任务用便宜的小模型,复杂任务才用大模型。
- 缓存:对于重复问题,可以缓存模型回答,减少调价。
7.2 数据安全与合规边界
把业务数据发送给云上的大模型 API,等于把数据交给了第三方。这里有两个问题必须想清楚:
- 数据脱敏:提交给模型的文本中不能包含用户手机号、身份证号、银行卡号等敏感信息。
- 私有化部署:如果业务数据敏感度极高,可能需要私有化部署开源模型,而不是调用公有云 API。
在实际工程中,更安全的做法是搭建一层“AI 网关”,在请求模型之前完成敏感信息识别、脱敏、权限校验,在模型返回之后再做内容过滤。这样既能使用大模型能力,又能守住安全底线。
7.3 模型幻觉与业务可靠性
大模型不是数据库,它的回答存在“一本正经地胡说八道”的可能。这称之为“幻觉”。在客服、医疗、金融等业务场景中,幻觉是不可接受的。
解决幻觉问题的主要手段是 RAG(检索增强生成):
- 把企业知识库向量化,存储到向量数据库。
- 用户提问时,先从向量库检索相关文档片段。
- 把检索结果和用户问题一起拼入提示词,让模型基于资料回答。
RAG 架构让模型不再单纯依赖训练数据,而是实时读取企业知识库,大幅降低幻觉概率。这也是为什么向量数据库会在 AI 时代成为云平台的重要产品。
8. 常见问题与排查思路
在实际开发和部署 AI 应用时,你可能会遇到下面这些问题。这里整理成一张排查思路表格。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 调用模型 API 返回 401 | API Key 未配置、过期或权限不足 | 检查环境变量、控制台密钥状态,确认接口权限 |
| 请求超时或连接失败 | 网络策略限制、模型服务负载高 | 查看网络白名单、增加请求超时时间、实现重试与降级 |
| 模型返回内容为空 | 请求参数错误、输出被内容安全策略拦截 | 检查 message 结构,查看服务端日志和响应详情 |
| 模型回答质量差 | 提示词不清晰、缺少上下文 | 优化 system prompt,改用 RAG 提供业务资料 |
| Spring AI 启动报 Bean 创建失败 | 依赖版本不兼容、配置项缺失 | 统一 Spring Boot / Spring AI 版本,核对配置类名称 |
| 容器反复重启或内存溢出 | JVM 堆内存设置超过容器限制 | 设置 JVM-Xmx参数,调大 Kubernetes resources limits |
| 线上 Token 成本飙升 | 请求未做限流、缓存缺失 | 建立配额机制、增加缓存、按模型分级调用 |
针对最常见的“Spring AI 依赖版本冲突”问题,我建议你在加入依赖前先查看项目当前使用的 Spring Boot 版本,然后选择与之匹配的 Spring AI 版本。跨大版本升级时,重点检查ChatClient、ChatModel等核心 API 是否发生变化。
另一个容易被忽略的问题是:本地调试时模型接口正常,部署到云上后却超时。这通常是因为云上 Kubernetes 集群无法访问外网,或者云厂商的安全组没有放行对应域名。排查时可以先进入 Pod:
kubectl exec -it <pod-name> -- curl -I https://dashscope.aliyuncs.com如果无法访问,优先检查集群的 NAT 网关和安全组策略。
9. 工程最佳实践:把 AI 用进云项目而不是“为 AI 而 AI”
最后聊一聊工程落地层面的建议。很多团队引入 AI 是“领导一句话”,项目里多了一个调用大模型的 Service,但没有真正改善业务指标。这里给出一些我踩过坑之后的经验总结。
9.1 解耦与防腐层
不要在业务代码里到处直接调用大模型 API。建议在项目中定义一个“AiService”或“LlmGateway”接口,把模型调用统一封装在里面。这样后续切换模型、增加缓存、做审计日志都会方便很多。
一个合理的分层类似:
- Controller 层:负责接收请求、参数校验。
- Application Service 层:负责业务逻辑、权限校验。
- AiGateway 层:负责调用模型 API、处理超时重试。
- ModelClient 层:负责底层 SDK 调用。
这样即使底层模型从 A 厂商切换到 B 厂商,业务代码也不需要改动,只修改网关实现即可。
9.2 配置与密钥管理
所有云上资源的密钥都不要硬编码在代码、镜像或配置仓库中。生产环境建议使用云厂商的密钥管理服务(KMS)或 Kubernetes Secret 管理凭证。
Spring Boot 项目中,可以通过环境变量注入:
spring: ai: openai: api-key: ${MODEL_API_KEY}同时在 CI/CD 流水线中,把密钥放在制品仓库的 Secret 配置中,不要明文打印。
9.3 可观测性
AI 应用的可观测性比传统应用更复杂。除了常规的 QPS、响应时间、错误率之外,你还需要关注:
- Token 使用量:这是 AI 应用的主要成本来源。
- 模型调用延迟:区分网络延迟、排队延迟和模型推理延迟。
- 内容效果:通过评分、用户反馈判断回答质量。
- 上下文长度:如果请求上下文越来越长,成本会快速上升。
可以在日志中记录请求的 model、input_tokens、output_tokens、latency、response_code 等关键字段,然后接入 Prometheus 和 Grafana 做可视化监控。
9.4 灰度发布与降级
AI 服务存在不确定性。一个新提示词可能在测试环境表现很好,上线后却被用户大量投诉。因此,AI 相关功能一定要支持灰度发布和快速回滚。
推荐做法:
- 按用户比例灰度:例如先让 5% 的流量使用新版提示词。
- 配置中心动态调整:把提示词、模型名、温度等参数放进配置中心,避免修改一行提示词就发一次版本。
- 降级方案:当模型 API 不可用或超时时,系统自动切换到规则引擎、人工客服或固定话术,保证核心链路可用。
这套思路其实和 Spring Cloud Alibaba 等微服务治理体系中的灰度发布、熔断降级完全一致。AI 只是新增了一个下游依赖,治理原则并没有变。
10. 回到最初的问题:AI 会颠覆云计算吗
文章开头的问题,到这里可以给出一个相对清晰的判断了。
AI 不会让云计算消失,但它会把云计算的使用方式彻底重构一遍。底层基础设施仍然需要大规模数据中心、高速网络、容器编排和弹性调度;平台层会从“资源型 PaaS”向“智能型 PaaS”演进;应用层会出现大量 AI 原生应用,交互方式、数据模型和成本结构都发生改变。
对于开发者来说,重要的不是纠结“颠覆”这个词语,而是看清新趋势背后的技能需求:你需要理解大模型 API 的调用方式,需要掌握 RAG、向量数据库、AI Agent 的工程化方法,也需要继续理解云原生基础设施的底层原理。AI 帮你完成的是重复性的编码和运维工作,而架构设计、业务建模、性能优化、成本控制这些能力,反而变得更加值钱。
建议你找一个周末,按照文章里的三个实战示例,亲手在云上跑通一个 AI 问答服务。你会发现,AI 接入云计算的今天,已经足够低门槛;而真正拉开差距的,是把它工程化、产品化、稳定运行起来的能力。如果你在实践过程中遇到报错或性能问题,欢迎在评论区留言,一起讨论解决的思路。