MD 更新:未知

摘要

微服务主题(约307字)

202x年,我参与了某公司智能电商推荐平台的研发,担任系统架构设计师。该平台旨在应对海量并发,提供智能化服务体验。本文以该项目为例,重点论述微服务架构在AI业务中的应用。首先,基于服务化原则,将AI推理模块独立为微服务,采用Docker与Kubernetes容器化部署,实现核心业务与AI算力消耗的解耦;其次,引入事件驱动架构(EDA)与HPA弹性伸缩,构建异构模型池与任务路由机制,OCR、办公辅助等轻量任务由小参数模型在CPU节点处理,智能推荐、业务分析等复杂任务由大参数模型在GPU节点承载,动态调度算力资源,在保障高可用性的同时大幅降低GPU/CPU资源成本。项目顺利上线,为公司智能化转型奠定了架构基础。

EDA主题(约307字,适用于「论事件驱动架构」)

202x年,我参与了某公司智能电商推荐平台的研发,担任系统架构设计师。该平台AI推理耗算力高,与核心业务耦合易导致系统崩溃。本文以该项目为例,重点论述事件驱动架构(EDA)思想及其在AI业务中的应用。首先,基于EDA松耦合原则,业务微服务以事件方式发布推理请求,Kafka作为事件总线,AI推理服务异步消费,实现核心业务与高算力模块的彻底解耦;其次,以Consumer Lag为扩缩容触发指标,结合HPA动态调度GPU/CPU资源,并构建异构模型池按事件类型路由至不同算力规格,OCR等轻量任务走小模型,智能推荐等复杂任务走大模型,在保障高可用的同时大幅降低资源成本。项目顺利上线,为公司智能化转型奠定了架构基础。

无服务器架构主题(约308字)

202x年,我参与了某公司智能电商推荐平台的研发,担任系统架构设计师。该平台旨在应对海量并发,提供智能化服务体验。本文以该项目为例,重点论述无服务器架构(Serverless)在AI业务中的应用。首先,基于Serverless思想,将轻量AI推理模块(OCR识别、文本摘要)改造为函数即服务(FaaS),由API网关与消息队列事件触发执行,无请求时零资源占用,按实际调用次数计费,彻底消除闲置算力成本;其次,针对大模型推理的长时运行与冷启动问题,采用Serverless容器方案,结合预置并发与模型镜像预热策略,并构建异构模型池按任务类型路由,轻量任务走云函数,复杂任务走Serverless容器,在保障推理质量的同时实现算力资源的极致弹性。项目顺利上线,为公司智能化转型奠定了架构基础。

面向服务架构(SOA)主题(约309字)

202x年,我参与了某公司智能电商推荐平台的研发,担任系统架构设计师。该平台旨在应对海量并发,提供智能化服务体验。本文以该项目为例,重点论述面向服务架构(SOA)在AI业务中的应用。首先,基于SOA服务化原则与领域驱动设计方法,对平台进行服务建模与粒度划分,将系统拆分为推荐推理、用户管理、订单处理等高内聚服务,各服务通过明确的事件契约交互,实现业务逻辑与AI算力的松耦合;其次,以Kafka作为轻量化企业服务总线替代传统重量级ESB,承载服务间的异步通信与事件路由,并引入服务注册发现、链路追踪、统一监控等治理机制,保障服务的可观测性与高可用性;同时构建异构模型池按任务类型路由,轻量任务由小模型处理,复杂任务由大模型承载,实现算力资源的精细化调度。项目顺利上线,为公司智能化转型奠定了架构基础。

分布式事务主题(约310字)

202x年,我参与了某公司智能电商推荐平台的研发,担任系统架构设计师。该平台采用微服务架构,订单、库存、支付、推荐等服务独立部署,跨服务数据一致性成为核心挑战。本文以该项目为例,重点论述分布式事务及其解决方案在微服务架构中的应用。首先,分析了微服务拆分后带来的分布式事务问题,对比了2PC、TCC、Saga、本地消息表四种方案的适用场景与性能权衡,最终选用Saga编排模式与本地消息表相结合的方案;其次,以Kafka作为事件总线实现Saga事务编排,订单服务作为协调者发布领域事件,库存、支付、推荐等服务异步消费并执行本地事务,失败时通过补偿事件逆向回滚,在保障最终一致性的同时避免了分布式锁对系统吞吐量的影响。项目顺利上线,为公司智能化转型奠定了架构基础。

软件测试主题(约310字)

202x年,我参与了某公司智能电商推荐平台的研发,担任系统架构设计师。该平台采用微服务架构与AI推理引擎,系统复杂度高,上线后出问题代价大。本文以该项目为例,重点论述软件测试方法及其在复杂系统质量保障中的应用。首先,设计分层测试策略,从单元测试、集成测试到系统测试逐层覆盖,单元测试采用Mock隔离外部依赖,覆盖核心业务逻辑,集成测试验证跨服务事件流转的正确性,系统测试模拟真实业务场景进行端到端验证;其次,重点实施性能测试与AI模型测试,使用JMeter模拟双十一峰值流量进行压力测试,定位Kafka消费积压与AI推理冷启动瓶颈并优化,同时建立模型评测基准数据集,通过A/B测试与灰度发布验证模型更新的业务效果。项目顺利上线,各项质量指标达标,为公司智能化转型奠定了质量保障基础。

开头

202x年,我参与了项目的研发,并担任系统架构设计师。该平台旨在应对核心业务的痛点如: 智能化服务·体验/高效决策支持。本文以该项目为例,重点论述了核心技术框架如:微服务架构/事件驱动架构/面向服务架构在特定业务如:AI业务/实时计算中的应用

介绍

首先,基于服务化原则高负载模块(AI推理)独立为微服务,Docker+K8s容器化部署,实现核心业务与AI算力解耦 其次,引入EDA+HPA弹性伸缩,构建异构模型池/任务路由,轻量任务→小模型/CPU,复杂任务→大模型/GPU,降本增效

无服务器架构变体

首先,基于Serverless思想轻量AI推理改造为FaaS云函数,事件触发、按需执行,无请求时零资源占用,按量计费 其次,针对大模型推理采用Serverless容器+预置并发,结合异构模型池/任务路由,轻量任务→云函数,复杂任务→Serverless容器,极致弹性

面向服务架构(SOA)变体

首先,基于SOA服务化原则+DDD领域驱动设计进行服务建模与粒度划分,将系统拆分为推荐推理、用户管理、订单处理等高内聚服务,各服务通过事件契约交互,松耦合 其次,以Kafka作为轻量化ESB替代传统重量级服务总线,引入服务注册发现+链路追踪+统一监控等治理机制,结合异构模型池/任务路由,实现精细化服务治理与算力调度

分布式事务变体

首先,针对微服务拆分后的跨服务数据一致性问题,对比2PC、TCC、Saga、本地消息表四种方案,选用Saga编排模式+本地消息表,以Kafka事件驱动实现异步事务协调 其次,设计正向事件+补偿事件双向机制,失败时逆向回滚,结合幂等性设计+重试策略,在保障最终一致性同时避免分布式锁对系统吞吐量的影响

软件测试变体

首先,设计分层测试策略,单元测试用Mock隔离外部依赖覆盖核心逻辑,集成测试验证跨服务事件流转,系统测试模拟真实业务端到端验证,逐层保障质量 其次,重点实施性能测试+AI模型测试,JMeter压测定位Kafka积压与AI推理冷启动瓶颈,建立模型Benchmark数据集,通过A/B测试+灰度发布验证模型更新效果

结尾

最终项目顺利上线,达到的业务效果如何各项指标优异,成功支撑力双十一的高峰,为公司的智能化转型奠定了坚实的架构底座

要点

  1. 角色与背景:明确了时间、项目、角色。应对海量并发体现了架构的非功能性需求
  2. 核心痛点与解耦:大模型推理和传统微服务混在一起,极易因为算力耗尽导致整个系统崩溃。提出彻底解耦是典型的架构隔离思想
  3. 成本与弹性:AI业务最怕GPU空转。引入EDA来实现按需算力调度,直接把技术落实到了降低成本这一商业价值上
  4. 模型分级:异构模型池 + 任务标签路由,轻量任务走小模型/CPU,重量任务走大模型/GPU,避免算力浪费
  5. 容器化部署:Docker + K8s + NVIDIA Container Toolkit 为底座,轻量模型用 ONNX Runtime,大模型用 vLLM
  6. 六题适配:同一项目可写「微服务+AI」、「EDA+AI」、「Serverless+AI」、「SOA+AI」、「分布式事务」或「软件测试」,仅调整论述重心(见各套用方案章节)

模板复用填空:

  • 项目全称:智能医疗图像辅助诊断
  • 核心业务痛点:高吞吐医学影像实时解析
  • 特定业务场景:CV高精度识别业务
  • 高负载模块:目标检查与分割推理
  • 关键技术机制:消息队列与Serverless架构
  • 降低了:云端GPU算力租赁成本

无服务器架构专用填空

  • 核心理念:按需执行、免运维、按量计费
  • 轻量任务形态:FaaS云函数(OCR/文本摘要,事件触发执行)
  • 重量任务形态:Serverless容器(Fargate/ECI,大模型推理)
  • 冷启动对策:预置并发 + 模型镜像预热
  • 计费优势:无请求零成本,轻量任务月度算力成本降低约70%
  • 自我批评:冷启动延迟、供应商锁定、预置并发增加固定成本

面向服务架构(SOA)专用填空

  • 核心理念:服务化、松耦合、可复用、可组合
  • 服务建模方法:领域驱动设计(DDD)划分核心域/支撑域/通用域
  • 服务总线:Kafka 轻量化 ESB(替代传统 IBM WebSphere ESB)
  • 服务治理:注册发现(K8s DNS)+ 链路追踪(Jaeger)+ 统一监控(Prometheus)
  • 服务契约:Kafka 事件 schema versioning,向后兼容
  • 自我批评:服务粒度难把控、事件 schema 演进兼容性、分布式事务复杂度

分布式事务专用填空

  • 核心矛盾:微服务拆分后,单库事务变为跨服务数据一致性问题
  • 四种方案对比:2PC(强一致/阻塞)→ TCC(灵活/侵入高)→ Saga(最终一致/补偿回滚)→ 本地消息表(可靠/实现简单)
  • 最终选型:Saga 编排模式 + 本地消息表,Kafka 作为事件总线
  • 补偿机制:正向事件 + 补偿事件双向,失败时逆向回滚
  • 幂等保障:每条事件携带唯一业务ID,消费端幂等校验
  • 自我批评:最终一致性有时间窗口、补偿逻辑复杂度随链路增长、人工对账兜底

软件测试专用填空

  • 测试分层:单元测试(Mock隔离)→ 集成测试(跨服务事件流)→ 系统测试(端到端)→ 性能测试(压测)
  • 性能测试工具:JMeter / Gatling,模拟双十一峰值流量(10万QPS)
  • 压测发现:Kafka Consumer Lag 急增 → AI推理Pod冷启动耗时 → 调整HPA预热策略
  • AI模型测试:基准数据集(Benchmark)+ 准确率/召回率/延迟三维评估 + A/B测试灰度发布
  • CI集成:每次代码提交自动触发单元测试,覆盖率 ≥ 85%
  • 自我批评:测试数据构造困难、AI模型缺乏标准测试集、测试环境与生产环境有差异

六大主题速查对比表

考场上拿到题目后,先在此表中定位主题,再按对应列的要点展开写作。

一、核心定位对比

维度微服务EDAServerlessSOA分布式事务软件测试
一句话定义按业务拆分为独立服务通过事件驱动服务交互按需执行,免运维以服务为单元构建系统跨服务数据一致性保障系统化的质量保障手段
解决什么问题单体臃肿、部署耦合服务间同步阻塞资源闲置、运维成本高系统集成混乱、不可复用微服务拆分后数据不一致上线后出问题代价大
核心关键词服务拆分、独立部署事件、异步、解耦FaaS、按量计费服务化、契约、治理Saga、补偿、最终一致分层、压测、回归
一句话商业价值独立迭代,加速交付松耦合,高可用零闲置,降成本可复用,易集成数据不出错质量有保障

二、论文结构对比(分论点怎么写)

维度微服务EDAServerlessSOA分布式事务软件测试
分论点一服务拆分 + K8s容器化部署事件生产者/消费者 + Kafka事件总线FaaS云函数 + Serverless容器DDD服务建模 + 粒度划分四种方案对比 + 选型理由分层测试策略设计
分论点二HPA弹性伸缩 + 模型分级调度Consumer Lag驱动扩缩 + 模型路由冷启动优化 + 预置并发Kafka轻量化ESB + 服务治理本地消息表 + Saga补偿回滚性能压测 + AI模型测试
加分项(场景三)异构模型池按task_type路由异构模型池按事件类型路由有状态vs无状态处理链路追踪 + 统一监控幂等性设计A/B测试 + 灰度发布

三、关键技术词对比(考场写得出的关键名词)

维度微服务EDAServerlessSOA分布式事务软件测试
必须写出的名词Docker、K8s、HPAKafka、Consumer Lag、事件总线FaaS、API Gateway、预置并发ESB、DDD、服务契约2PC、TCC、Saga、本地消息表JMeter、Mock、Benchmark
加分名词NVIDIA Container Toolkit、vLLM、ONNX Runtime事件溯源、Schema RegistrySnapStart、Fargate/ECISchema Registry、mTLS幂等性、补偿事件A/B测试、灰度发布、CI/CD
用中文也能写的水平自动扩缩容消息积压量冷启动预热领域驱动设计正向事件+补偿事件压力测试、回归测试

四、自我批评点对比(收尾必写)

主题不足一不足二
微服务事件异步导致一致性不足task_type人工标注有分类风险
EDA最终一致性有时间窗口事件schema演进存在兼容性风险
Serverless冷启动延迟偶有感知供应商锁定风险
SOA服务粒度难把控事件schema演进兼容性
分布式事务最终一致性有时间窗口补偿逻辑复杂度随链路增长
软件测试测试数据构造困难AI模型缺乏行业标准测试集

五、易混淆区分(考场救命)

容易混的两个核心区别一句话
微服务 vs SOASOA是”理论/理念”,微服务是SOA的”轻量化实现”;SOA强调治理与复用,微服务强调独立部署
微服务 vs EDA微服务讲”怎么拆”,EDA讲”拆完后怎么通信”;EDA是微服务的服务间通信方式之一
EDA vs 分布式事务EDA解决”服务间异步通信”,分布式事务解决”跨服务数据一致性”;Saga编排依赖EDA
Serverless vs 微服务微服务是常驻Pod按资源付费,Serverless是按需执行按调用付费;轻量任务适合Serverless
SOA vs ESBSOA是架构理念,ESB是SOA的一种中间件实现;现代方案用Kafka替代ESB

六、考场上拿到题目的3步操作

第1步(3分钟):看4道题,用上表定位自己能写的那道
第2步(12分钟):找到对应列,按「分论点一→分论点二→自我批评」列提纲
第3步(95分钟):套用对应摘要模板 + 正文框架 + 论文表述示例,一气呵成

正文

项目概述与背景

这部分作为正文的第一段,用来交代故事的开始,证明你的项目是真实的

  • 基本信息:项目的启动时间、开发周期、主要功能、投资规模
  • 你的角色:明确写出本人在其中担任系统架构设计师,主要负责
  • 痛点引出:重点描述系统面临的非功能性挑战(比如:高并发压力,AI算力昂贵、系统组件耦合

技术理论与架构设计

这是论文的核心骨架(分论点一)。围绕论文主题,阐述相关的技术理论以及你具体是如何做架构设计的。

  • 理论切入:简要介绍你选择的技术(微服务基本原则、大模型推理特点、事件驱动架构原理,见「事件驱动架构套用方案」)
  • 架构拓扑:在文字中展现出清晰的系统分层。
    • 网关层:如何做流量路由和鉴权
    • 业务微服务层:传统的业务逻辑(订单、用户、推荐)
    • AI算力服务层:独立解耦出来的异构模型推理集群(见「模型分级调度」)
    • 事件总线:如何利用消息队列(Kafka/RabbitMQ)串联核心业务与AI业务
    • 模型路由网关:依据任务标签(task_type)将请求分流至轻量/重量推理队列

关键技术实现与问题解决

这是论文的肉和血(分论点二),最能体现架构师的含金量。阅卷老师最爱看的是”你在项目中遇到了什么坑,你是怎么用架构手段摆平它的

  • 场景一:如何解决核心业务被AI算力拖垮的问题(EDA 解耦,见「事件驱动架构套用方案」)
    • 做法:业务微服务作为事件生产者发布推理请求,Kafka 事件总线传递,AI 服务作为消费者异步处理,核心业务发完事件即返回
  • 场景二:如何解决GPU/CPU资源成本过高的问题
    • 做法一(水平扩缩容):基于事件驱动(EDA)的弹性伸缩。根据消息队列积压量(Consumer Lag)触发 Kubernetes HPA(水平 Pod 自动扩缩容),有任务时拉起 GPU Pod,无任务时释放资源
    • 做法二(模型分级调度):不只用单一模型,而是设计异构模型池,按任务类型派发给不同算力规格的模型,避免”大炮打蚊子”(详见「模型分级调度」)

项目收尾与总结

这部分收尾,呼应开头,展现架构师的职业素养和客观复盘能力

  • 成效度量:项目与某年某月上线,运行稳定。用数字说话(如:系统吞吐量提上了50%,GPU资源成本降低35%)
  • 自我批评:完美系统是不存在的,必须写1-2个客观不足。
    • 事件异步,导致一致性不足,未来采用分布式事务补偿机制
    • 双模型任务分流依赖人工标注 task_type,存在分类不准确风险;未来引入任务复杂度自动评估器,实现动态模型路由

事件驱动架构(EDA)套用方案

结论:完全可以套用,且非常契合。 本方案本质上是 EDA 的典型落地场景,与 2025 年上半年真题「论事件驱动架构」高度吻合。EDA 是架构模式,Kafka + 双模型池 + HPA 是具体实现,二者是「理论 ↔ 实践」关系。

EDA 核心要素映射

EDA 核心要素本方案中的体现
事件(Event)用户上传文档 → DocumentUploadedEvent;下单 → OrderCreatedEvent;需推荐 → RecommendRequestEvent
事件生产者订单、用户、推荐等业务微服务,只负责发事件,不直接调用 AI
事件总线Kafka(topic-light-inference / topic-heavy-inference
事件消费者轻量/重量 AI 推理 Pod 集群,异步消费并推理
事件路由模型路由网关按 task_type 分流至不同 Topic
弹性伸缩触发Consumer Lag 作为 HPA 指标——事件积压量驱动算力扩缩

EDA 特点在本方案中的体现(对应真题考查点)

EDA 特点本方案怎么写
松耦合业务服务不知道 AI 用哪个模型,只管发事件
异步非阻塞核心业务不被 GPU 推理拖慢,发完事件即返回
可扩展性新增 AI 能力只需增加 Consumer,不改业务代码
弹性伸缩事件积压 → 自动扩容 Pod;无事件 → 释放 GPU
最终一致性推理结果异步回写,可作为自我批评点
事件溯源/可追溯Kafka 保留事件日志,便于审计和重放

按题目切换论述重心

题目为「论事件驱动架构」时:

背景:AI 推理耗算力,与核心业务耦合导致系统崩溃

EDA 理论:事件生产者 / 消费者 / 事件总线 / 事件通道

架构设计:业务微服务发事件 → Kafka 事件总线 → 模型路由 → 异构推理集群

场景一:解耦——异步事件消除 AI 对核心业务的阻塞

场景二:弹性——Consumer Lag 驱动 HPA,事件驱动算力调度

场景三(加分):异构模型池——按事件类型路由至不同算力规格

不足:最终一致性、task_type 人工标注

题目为「论微服务架构在 AI 业务中的应用」时:

  • EDA 作为第二个分论点(解耦 + 弹性)即可,现有正文结构已合适
  • 微服务为主标题,EDA 为支撑手段

三层表述(避免只写「用了 Kafka」)

层次写什么示例
架构模式层事件驱动架构松耦合、异步、最终一致
中间件层Kafka作为事件总线,承载事件发布与订阅
基础设施层K8s + HPA + Docker实现弹性伸缩与容器化部署

论文表述示例:

基于事件驱动架构思想,我们以 Kafka 作为事件总线,实现业务微服务与 AI 推理服务的异步解耦。业务侧只需发布推理请求事件,无需感知下游模型规格与部署细节;AI 推理集群作为事件消费者异步拉取任务,并以 Consumer Lag 作为 HPA 扩缩容触发指标,实现事件驱动的算力弹性调度。

与双模型调度、容器化的关系

问题答案
EDA 能套这套 AI 微服务方案吗?能,且非常自然
双模型调度与 EDA 冲突吗?不冲突,模型路由就是事件路由的延伸
适合作为 EDA 真题的项目吗?适合,2025 年真题方向高度吻合
需要改技术方案吗?不需要,仅按题目调整论述重心

无服务器架构(Serverless)套用方案

结论:完全可以套用,且项目底子高度适配。 本方案的AI推理场景天然适合Serverless——轻量任务短时触发、算力按需释放、事件驱动执行。与2025年真题方向「论无服务器架构」高度吻合。Serverless是架构理念,FaaS + Serverless容器 + EDA事件触发是具体实现,二者是「理论 ↔ 实践」关系。

Serverless 与微服务的核心差异

维度微服务(现有方案)无服务器(套用方案)
核心理念服务拆分、独立部署、常驻运行按需执行、免运维、按调用计费
计算资源常驻 Pod(K8s 管理)函数实例按需冷/热启动,用完即释放
扩缩容HPA 指标驱动,需手动配置策略平台自动弹性,开发者无感
AI 推理部署常驻 GPU Pod轻量任务→云函数;重量任务→Serverless容器
计费模式按资源占用时长按实际调用次数/执行时长
适用负载长生命周期服务事件驱动、短时任务、突发流量

Serverless 核心要素映射

Serverless 核心要素本方案中的体现
函数即服务(FaaS)OCR识别、文本摘要等轻量任务封装为云函数,事件触发、按需执行
Serverless容器大模型推理采用Fargate/ECI等Serverless容器,突破FaaS执行时长限制
API Gateway统一流量入口,路由至不同函数/容器
事件触发Kafka消息队列事件驱动函数执行,天然与EDA融合
自动弹性平台根据请求量自动扩缩函数实例,开发者无需配置HPA
按量计费无请求零成本,彻底消除闲置算力开销

按题目切换论述重心

题目为「论无服务器架构」时:

背景:AI推理耗算力,常驻GPU Pod闲置率高、成本居高不下

Serverless理论:FaaS / BaaS / Serverless容器 / 事件触发 / 按量计费

架构设计:API Gateway → 云函数(轻量任务)/ Serverless容器(重量任务)→ 事件驱动触发

场景一:轻量任务Serverless化——OCR/文本摘要用FaaS,零请求零成本

场景二:大模型冷启动优化——预置并发 + 模型镜像预热 + Serverless容器

场景三(加分):异构模型池 + 任务路由——按task_type分流至不同算力规格

不足:冷启动延迟、供应商锁定

关键技术实现(分论点二)

场景一:轻量任务 Serverless 化(降本增效)

  • 问题:OCR识别、文本摘要等轻量任务若部署为常驻Pod,闲置时段仍占用CPU资源
  • 做法:将轻量推理封装为云函数,由API Gateway或Kafka事件触发执行。无请求时函数实例自动释放,零资源占用、零成本;请求到来时秒级启动执行
  • 效果:轻量任务月度算力成本降低约70%

场景二:大模型推理的冷启动问题(核心难点)

  • 问题:大模型加载耗时(数十秒),Serverless冷启动延迟严重影响用户体验
  • 做法:采用三层策略应对——
    1. 预置并发(Provisioned Concurrency):保持一定数量的预热实例常驻,消除冷启动
    2. 模型镜像预热:将模型权重烘焙进容器镜像,避免运行时下载
    3. Serverless容器方案:大模型推理采用Fargate/ECI等Serverless容器,突破FaaS的执行时长限制(如15分钟),支持长时推理任务
  • 效果:冷启动延迟从30秒降至2秒以内

场景三:有状态 vs 无状态的处理

  • 问题:模型推理需要加载模型权重(有状态),与Serverless无状态特性矛盾
  • 做法:通过外部存储实现状态外置——模型权重挂载至共享存储卷(如EFS/NAS),函数实例启动时直接挂载,避免重复下载

论文表述示例

基于无服务器架构思想,我们将轻量级AI推理任务(OCR识别、文本摘要等)改造为函数即服务,由消息队列事件触发执行。无请求时函数实例自动释放,彻底消除闲置算力成本。针对大模型推理的冷启动与长时运行问题,我们采用Serverless容器方案,结合预置并发与模型镜像预热策略,将冷启动延迟从30秒降至2秒以内,同时突破了传统FaaS的执行时长限制。

与EDA、双模型调度的关系

问题答案
Serverless能套这套AI方案吗?能,且轻量任务天然适合FaaS
EDA与Serverless冲突吗?不冲突,事件触发本身就是Serverless的天然搭档
双模型调度与Serverless冲突吗?不冲突,轻量→云函数,重量→Serverless容器,天然分级
需要改技术方案吗?部分需要——AI推理层从常驻Pod改为函数/Serverless容器

Serverless 特有的自我批评点

不足未来改进
云函数冷启动延迟在高峰时段偶有感知探索SnapStart等更轻量的冷启动优化方案
预置并发虽消除冷启动但增加了固定成本动态调整预置并发数,结合历史流量预测
Serverless平台供应商锁定风险引入Serverless Framework等跨云抽象层提升可移植性
函数执行时长限制约束了模型选型持续关注平台能力升级,优化模型推理效率

三层表述(避免只写「用了云函数」)

层次写什么示例
架构理念层无服务器架构按需执行、免运维、按量计费
服务形态层FaaS + Serverless容器云函数处理轻量任务,Serverless容器承载重量推理
基础设施层API Gateway + Kafka + 云平台事件触发、流量路由、自动弹性

面向服务架构(SOA)套用方案

结论:完全可以套用,且契合度最高。 微服务本质上是 SOA 的轻量化演进,二者在核心理念(服务化、松耦合、可复用、可组合)上有大量重叠。现有项目直接用 SOA 术语重新包装即可,几乎零改造成本。

SOA 与微服务的关系

SOA(面向服务架构)—— 2000s,企业级重型方案

  ├── 核心理念:服务化、松耦合、可复用、可组合
  ├── 典型技术:ESB、WSDL/SOAP、BPEL、服务注册中心

  └── 演进 → 微服务架构(2010s,轻量化、去中心化)

           本项目(Docker + K8s + Kafka)

微服务不是 SOA 的”替代品”,而是 SOA 的”现代化实现”。写 SOA 论文时,把微服务的技术栈用 SOA 的理论框架重新表述,就是一篇合格的 SOA 论文。

SOA 核心要素映射

SOA 核心要素经典实现本方案中的体现
服务(Service)独立部署单元推荐推理、用户管理、订单处理等微服务
服务契约(Contract)WSDL/XSDKafka 事件 schema(task_typepayload 格式定义)
服务注册与发现UDDI / ZooKeeperKubernetes DNS + Service 自动发现
企业服务总线(ESB)IBM WebSphere ESB / Mule ESBKafka 作为轻量化 ESB,保留解耦与路由能力,去除中心化瓶颈
服务编排(Orchestration)BPEL 流程引擎事件驱动的业务流程编排(业务微服务发事件 → AI 服务消费)
服务复用共享服务库AI 推理服务被多个业务方调用(推荐、OCR、分析)
服务治理SOA Governance 框架链路追踪(Jaeger)+ 统一监控(Prometheus)+ API Gateway 鉴权

SOA 术语 ↔ 微服务术语对照(写作必备)

SOA 写法(论文用)微服务写法(现有素材)
面向服务架构微服务架构
企业服务总线(ESB)Kafka 事件总线
服务注册与发现K8s Service / DNS
服务网关API Gateway
服务契约Kafka 事件 schema
服务编排事件驱动业务流程
服务建模与粒度划分服务拆分
服务治理可观测性(监控 + 链路追踪)
服务容器化部署Docker + K8s

按题目切换论述重心

题目为「论面向服务架构设计」时:

背景:系统功能复杂、模块耦合严重、AI算力与业务逻辑混杂

SOA理论:服务化原则 / 松耦合 / 可复用 / 可组合 / 服务契约

分论点一(服务建模):DDD领域驱动设计 → 核心域/支撑域/通用域 → 服务粒度划分

分论点二(服务集成):Kafka轻量化ESB → 异步事件通信 → 服务编排

分论点三(服务治理):注册发现 + 链路追踪 + 统一监控 + 服务安全

不足:服务粒度难把控、事件schema演进兼容性、分布式事务复杂度

关键技术实现(分论点二/三)

场景一:服务建模与粒度划分(SOA 的核心难点)

  • 问题:系统功能庞杂,如何划分服务边界?过粗→耦合严重;过细→分布式事务爆炸
  • 做法:运用领域驱动设计(DDD)方法——
    1. 核心域(推荐推理):高内聚、独立部署,承载核心业务价值
    2. 支撑域(用户管理、订单处理):标准化业务服务,通过事件契约与核心域交互
    3. 通用域(日志、鉴权、消息通知):共享基础设施服务,避免重复建设
  • 论文表述示例:

在服务建模阶段,我们运用领域驱动设计方法,从业务能力出发识别服务边界。推荐推理作为核心域被建模为独立服务,拥有完整的数据自治权和部署独立性;用户管理、订单处理作为支撑域,通过明确定义的事件契约与核心域交互;日志、鉴权等通用域被抽取为共享基础设施服务。通过合理控制服务粒度,既避免了单体架构的耦合问题,又防止了过度拆分导致的分布式事务复杂度。

场景二:ESB 现代化——从重量级到轻量化

  • 问题:传统 SOA 使用重量级 ESB(如 IBM WebSphere ESB),存在单点瓶颈、性能瓶颈、运维复杂
  • 做法:以 Kafka 作为轻量化企业服务总线——
    • 保留 ESB 的核心能力:服务解耦、事件路由、协议转换
    • 去除中心化编排瓶颈:Kafka 的分布式架构天然支持水平扩展
    • 事件 schema versioning:通过 schema registry 实现服务契约的版本管理与向后兼容
  • 论文表述示例:

在服务集成层面,我们并未采用传统重量级 ESB,而是以 Kafka 作为轻量化企业服务总线。Kafka 保留了 ESB 的服务解耦与事件路由能力,同时其分布式架构天然支持水平扩展,避免了传统 ESB 的单点性能瓶颈。各服务通过定义明确的事件契约进行交互,借助 Schema Registry 实现契约的版本管理与向后兼容,确保服务演进过程中的互操作性。

场景三:服务治理体系建设

  • 问题:服务数量增多后,如何保障可观测性、可管控性?
  • 做法:构建四维治理体系——
治理维度具体措施工具
服务注册与发现K8s DNS 自动注册,服务名即访问地址Kubernetes Service
链路追踪分布式追踪,定位跨服务调用瓶颈Jaeger / SkyWalking
统一监控服务指标采集与告警Prometheus + Grafana
服务安全统一鉴权 + 服务间 mTLSAPI Gateway + Istio

SOA 特有的自我批评点

不足未来改进
服务粒度难以把控,部分服务拆分过细导致调用链过长引入服务依赖分析工具,定期评估并合并过细服务
事件 schema 演进存在兼容性风险强化 Schema Registry 的兼容性检查策略,禁止破坏性变更
跨服务分布式事务一致性保障不足引入 Saga 模式或 TCC 补偿机制
ESB(Kafka)运维复杂度随 Topic 数量增长建立 Topic 治理规范,定期清理废弃 Topic

论文表述示例(综合段落)

基于面向服务架构思想,我们从服务建模入手,运用领域驱动设计方法识别业务边界,将系统划分为推荐推理、用户管理、订单处理等独立服务。各服务通过明确定义的事件契约进行交互,以 Kafka 作为轻量化企业服务总线承载服务间的异步通信,既保留了传统 ESB 的解耦与路由能力,又避免了中心化编排带来的性能瓶颈。在服务治理层面,依托 Kubernetes 实现服务注册与发现,结合链路追踪与统一监控保障服务可观测性,形成了一套完整的服务治理体系。

与 EDA、双模型调度的关系

问题答案
SOA 能套这套 AI 方案吗?能,且最自然——微服务就是 SOA 的演进
SOA 与 EDA 冲突吗?不冲突,EDA 是 SOA 中服务编排的一种实现方式
双模型调度与 SOA 冲突吗?不冲突,异构模型池就是”服务复用”理念的体现
需要改技术方案吗?几乎不需要,仅用 SOA 术语重新表述 + 补写服务建模与治理

三层表述(避免只写「用了微服务」)

层次写什么示例
架构理念层面向服务架构(SOA)服务化、松耦合、可复用、可组合
集成中间件层Kafka 轻量化 ESB承载服务间异步通信与事件路由
基础设施层K8s + Docker + 治理工具服务注册发现、链路追踪、统一监控

SOA 四大考查点对照

SOA 考查点本方案怎么写难度
服务建模DDD 核心域/支撑域/通用域划分⭐ 需补写
服务松耦合事件契约 + 异步通信(复用现有素材)⭐ 直接用
服务可复用AI 推理服务被多业务方调用(复用现有素材)⭐ 直接用
服务治理注册发现 + 链路追踪 + 监控 + 安全⭐ 需补写

分布式事务套用方案

结论:完全可以套用,且是微服务架构的天然痛点。 电商平台拆分为微服务后,订单、库存、支付、推荐等服务各自拥有独立数据库,跨服务数据一致性是绕不开的核心问题。2024年下半年真题「论分布式事务及其解决方案」考查的正是这一方向。

为什么你的项目天然涉及分布式事务

用户下单流程(一次请求,跨越4个服务):
  ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
  │ 订单服务  │ →  │ 库存服务  │ →  │ 支付服务  │ →  │ 推荐服务  │
  │ 创建订单  │    │ 扣减库存  │    │ 扣款     │    │ 更新偏好  │
  └──────────┘    └──────────┘    └──────────┘    └──────────┘
       ↓ 任一步失败,前面的操作都需要回滚!

微服务论文里写”服务拆分解耦”很爽,但拆完之后数据一致性就是你必须回答的问题。分布式事务不是”额外补的”,而是微服务架构的伴生问题

四种方案对比(真题考查重点)

方案一致性性能复杂度适用场景
2PC(两阶段提交)强一致❌ 低(阻塞等待)传统数据库事务,对性能要求不高
TCC(Try-Confirm-Cancel)强一致⚠️ 中❌ 高(需写三个接口)资金类场景,需精确控制每一步
Saga最终一致✅ 高(异步)长事务、跨多服务、可接受短暂不一致
本地消息表最终一致✅ 高✅ 低与消息队列配合,最易落地

本项目选型:Saga 编排 + 本地消息表

选型理由:

考量分析
为什么不用 2PC电商平台吞吐量要求高,2PC 的阻塞等待会导致双十一期间严重性能瓶颈
为什么不用 TCCTCC 需要为每个服务写 Try/Confirm/Cancel 三个接口,侵入性太高,且AI推理服务不适合TCC模式
为什么选 Saga天然适配 Kafka 事件驱动架构,异步编排不阻塞,支持补偿回滚
为什么叠加本地消息表解决”发事件”和”写数据库”不是原子操作的问题,保证事件不丢失

核心流程设计

sequenceDiagram
    participant U as 用户
    participant O as 订单服务
    participant DB as 订单DB
    participant K as Kafka
    participant S as 库存服务
    participant P as 支付服务
    participant R as 推荐服务

    U->>O: 提交订单
    O->>DB: 写订单(PENDING) + 写本地消息表
    O->>K: 发布 OrderCreatedEvent
    O-->>U: 返回"订单处理中"

    K->>S: 消费事件 → 扣减库存
    S->>K: 发布 StockDeductedEvent
    Note over S: 失败→发布 StockDeductFailedEvent

    K->>P: 消费事件 → 扣款
    P->>K: 发布 PaymentCompletedEvent
    Note over P: 失败→发布 PaymentFailedEvent

    K->>R: 消费事件 → 更新用户偏好
    R->>K: 发布 PreferenceUpdatedEvent

    K->>O: 汇总结果 → 更新订单状态(CONFIRMED)
    Note over O: 若收到失败事件 → 发布补偿事件逆向回滚

关键技术实现

场景一:本地消息表保证事件不丢失

  • 问题:业务操作(写DB)和发事件(写Kafka)不是原子操作,可能DB写成功但事件没发出去
  • 做法:订单服务在同一个本地事务中写入订单记录和本地消息表,后台定时任务扫描消息表,将未发送的事件补发到 Kafka
  • 论文表述示例:

为解决业务操作与事件发布的原子性问题,我们引入本地消息表方案。订单服务在同一个数据库事务中写入订单记录和本地消息表,确保”写订单”和”记事件”要么同时成功、同时失败。后台定时任务扫描消息表中未确认的事件,通过Kafka Producer补发至事件总线,消费端确认后更新消息状态,从而保证事件不丢失。

场景二:Saga 补偿回滚

  • 问题:订单创建成功但支付失败,已扣减的库存需要恢复
  • 做法:设计正向事件 + 补偿事件双向机制——
    • 正向:OrderCreatedEventStockDeductedEventPaymentCompletedEvent
    • 补偿:PaymentFailedEventStockRestoreCommand(库存回滚)→ OrderCancelledEvent
    • 补偿事件由订单服务(Saga 编排器)统一发布,各服务消费后执行本地回滚
  • 论文表述示例:

基于Saga编排模式,我们以订单服务作为事务协调者,通过Kafka发布正向领域事件驱动各服务执行本地事务。当支付服务返回失败事件时,订单服务作为编排器自动发布补偿事件,库存服务消费补偿事件后执行库存回滚,最终将订单状态更新为已取消。整个过程无需分布式锁,通过事件驱动实现异步补偿,在保障最终一致性的同时不影响系统吞吐量。

场景三:幂等性设计

  • 问题:Kafka 消费端可能重复消费(网络抖动、消费者重启),导致重复扣款/扣库存
  • 做法:每条事件携带全局唯一业务ID(如 order_id + event_type),消费端通过去重表做幂等校验,已处理的事件直接跳过

四种方案的论文写法(真题要求)

2024下真题明确要求写出”常用的四种分布式事务解决方案”,因此论文中必须四种都提及,然后重点论述你选用的方案。

论文结构建议:

分论点一:问题分析
  → 微服务拆分后,跨服务数据一致性成为核心挑战
  → 以"用户下单"流程为例,说明一次请求跨越4个服务

分论点二:方案对比与选型
  → 逐一介绍 2PC / TCC / Saga / 本地消息表
  → 分析各方案的一致性、性能、复杂度权衡
  → 给出选型理由(为什么选Saga+本地消息表)

分论点三:关键实现与问题解决
  → 场景一:本地消息表保证事件不丢失
  → 场景二:Saga补偿回滚机制
  → 场景三:幂等性设计避免重复消费

分布式事务特有的自我批评点

不足未来改进
最终一致性存在时间窗口,用户可能短暂看到不一致状态引入状态机对用户可见的中间态做友好提示(如”订单处理中”)
补偿逻辑复杂度随事务链路增长而增加限制Saga事务链路长度,拆分为多个短Saga
定时任务补发消息存在延迟引入事务消息(RocketMQ Transaction Message)替代本地消息表
人工对账作为兜底手段,效率低建立自动化对账平台,定期校验各服务数据一致性

论文表述示例(综合段落)

在微服务架构下,订单、库存、支付等服务各自拥有独立数据库,传统的单库事务不再适用。我们对比分析了2PC、TCC、Saga和本地消息表四种分布式事务解决方案:2PC通过协调者实现强一致,但阻塞等待严重影响系统吞吐量;TCC需要为每个服务编写Try/Confirm/Cancel三个接口,侵入性过高;Saga通过编排和补偿实现最终一致性,天然适配事件驱动架构;本地消息表配合消息队列可保证事件可靠投递。综合权衡后,我们选用Saga编排模式结合本地消息表方案,以Kafka作为事件总线,订单服务作为Saga编排器统一协调各服务的正向事务与补偿回滚,同时通过幂等性设计避免重复消费,在保障数据最终一致性的同时维持了系统的高吞吐能力。

与现有方案的关系

问题答案
分布式事务能套这套项目吗?能,微服务拆分后分布式事务是伴生问题
与 EDA 冲突吗?不冲突,Saga 的事件编排本身就是 EDA 的应用
与 Kafka 的关系?天然依赖——Kafka 既是事件总线,也是 Saga 事件的传输通道
需要改技术方案吗?不需要,只需补充事务层面的设计(本地消息表 + 补偿机制)
与其他主题能组合吗?,可作为微服务/EDA/SOA 论文的分论点二(跨服务一致性)

软件测试方法套用方案

结论:完全可以套用,且AI平台的测试素材有独特优势。 软件测试类题目在2024-2025年考了3次(单元测试、性能测试、AI测试),是最高频方向之一。你的项目天然涉及性能压测(双十一)和AI模型测试,这是传统项目写不出来的亮点。

真题覆盖情况

真题你能套用的核心素材
论单元测试方法及应用(2024上)微服务接口单元测试,Mock隔离外部依赖
论系统性能测试技术及其应用(2025下)双十一峰值压测,Kafka/AI推理/HPA性能验证
论软件测试方法及应用(2025上)分层测试策略 + AI模型测试,综合覆盖

你的项目天然涉及的测试场景

一次完整的测试覆盖:

单元测试层(微观)
  → 订单服务核心逻辑:Mock Kafka + Mock DB
  → AI推理服务:Mock 模型,验证输入预处理/输出格式化

集成测试层(中观)
  → 跨服务事件流:订单创建 → Kafka → AI推理 → 结果回写
  → 验证事件schema一致性、消费端幂等性

系统测试层(宏观)
  → 端到端业务流程:用户下单 → 推荐 → 支付 → 完成
  → 模拟真实用户操作路径

性能测试层(压力)
  → 双十一压测:10万QPS峰值流量
  → 定位瓶颈:Kafka积压、AI推理冷启动、HPA响应延迟

AI模型测试层(专项)
  → 模型精度回归:新模型 vs 旧模型 Benchmark 对比
  → A/B测试:灰度发布10%流量,观察业务指标

分层测试策略设计(分论点一)

测试层级测什么工具覆盖目标
单元测试单个服务的核心业务逻辑JUnit / Pytest + Mock框架覆盖率 ≥ 85%
集成测试跨服务事件流转、API契约Testcontainers + Kafka Test核心链路100%覆盖
系统测试端到端业务流程Selenium / Postman + 真实环境主流程全覆盖
性能测试吞吐量、响应时间、资源利用率JMeter / Gatling满足双十一SLA
AI模型测试推理精度、延迟、回归自建Benchmark + A/B框架精度无回退

论文表述示例:

针对微服务架构下的质量保障需求,我们设计了分层测试策略。在单元测试层,采用Mock框架隔离Kafka和数据库等外部依赖,聚焦验证单个服务的核心业务逻辑,核心服务测试覆盖率达到85%以上;在集成测试层,基于Testcontainers搭建轻量级测试环境,验证跨服务事件流转的正确性与事件Schema的一致性;在系统测试层,搭建与生产环境一致的预发布环境,模拟真实用户操作路径进行端到端验证。

关键技术实现(分论点二)

场景一:性能测试——双十一峰值压测

  • 问题:系统能否扛住双十一峰值流量?瓶颈在哪里?
  • 做法:使用 JMeter 模拟阶梯式加压(1万→5万→10万 QPS),监控四维指标——
监控指标正常阈值压测中发现优化措施
API Gateway P99延迟< 200ms5万QPS时飙升至800ms增加Gateway Pod副本数
Kafka Consumer Lag< 10005万QPS时急增至5万调整HPA预热策略,提前扩容GPU Pod
AI推理P99延迟< 2s冷启动时达30s模型镜像预热 + 最小副本数保底
K8s HPA响应时间< 30s首次扩容达60s配置Predictive HPA,基于历史流量预测
  • 论文表述示例:

在性能测试阶段,我们使用JMeter模拟双十一峰值流量,采用阶梯式加压策略从1万逐步提升至10万QPS。监控发现,5万QPS时Kafka Consumer Lag急剧增长至5万条,排查定位到AI推理Pod冷启动耗时过长是根因。通过调整HPA预热策略并配置最小副本数保底,优化后Consumer Lag稳定控制在1000以内,API Gateway P99延迟降至150ms,满足业务SLA要求。

场景二:AI模型测试——精度回归与灰度发布

  • 问题:模型更新后精度是否下降?新模型上线是否影响业务指标?
  • 做法:建立模型质量保障三道关卡——
关卡做法作用
离线Benchmark准备标注好的评测数据集,对比新旧模型的准确率/召回率/F1拦截明显退化的模型
在线A/B测试新模型灰度发布至10%流量,对比点击率/转化率验证真实业务效果
全量发布+监控全量上线后持续监控推理延迟与错误率发现线上异常及时回滚
  • 论文表述示例:

针对AI模型更新的质量保障,我们建立了三道关卡机制。首先在离线阶段,使用标注好的基准数据集对新模型进行精度回归测试,对比准确率、召回率和F1值,拦截明显退化的模型版本;通过离线评测后,将新模型灰度发布至10%流量进行A/B测试,对比新旧模型在点击率和转化率等业务指标上的表现;全量发布后持续监控推理延迟与错误率,一旦指标异常立即触发自动回滚至前一版本。

场景三:单元测试——Mock隔离与TDD实践

  • 问题:微服务依赖多(Kafka、数据库、外部API),如何高效编写单元测试?
  • 做法:
    • 订单服务:Mock KafkaProducer 验证事件发布逻辑,Mock 数据库验证订单状态机流转
    • AI推理服务:Mock 模型推理结果,验证输入预处理(文本清洗、分词)和输出格式化的正确性
    • 集成到 CI 流水线:每次 Git Push 自动触发测试,测试不通过禁止合并

可复用的测试论文框架(适用所有测试类真题)

背景:系统复杂度高(微服务+AI),上线后出问题代价大

分论点一:测试策略设计
  → 分层测试:单元 → 集成 → 系统 → 性能
  → 每层测什么、用什么工具、覆盖目标

分论点二:关键场景的测试实践
  → 场景一:性能测试(压测+瓶颈定位+优化)
  → 场景二:AI模型测试(Benchmark+A/B测试+灰度发布)
  → 场景三:单元测试(Mock隔离+CI集成)

不足:测试数据构造困难、AI模型缺乏标准测试集、测试环境与生产环境差异

软件测试特有的自我批评点

不足未来改进
测试数据构造困难,难以覆盖所有边界场景引入数据工厂(Data Factory)自动生成测试数据
AI模型缺乏行业标准测试集,评测结果主观性较强参与行业共建标准化Benchmark,提升评测客观性
测试环境与生产环境存在差异,部分问题线上才暴露推进测试环境与生产环境配置一致性(Infrastructure as Code)
性能测试难以完全模拟真实用户行为模式引入真实流量回放(Traffic Replay)技术进行线上压测

与现有方案的关系

问题答案
测试能套这套项目吗?能,微服务+AI天然需要分层测试+模型测试
与架构主题冲突吗?不冲突,测试是架构质量保障的手段,可独立成文也可作为分论点
AI模型测试是亮点吗?是,传统项目写不出来,这是你的独特优势
需要改技术方案吗?不需要,测试是同一项目的”质量视角”重新讲述

模型分级调度(弹性伸缩升华方案)

弹性伸缩的第二个维度:不只是”扩几个 Pod”,而是根据任务类型,派发给不同算力规格的模型

架构层面

在 AI 算力服务层,设计异构模型池,包含两类推理服务:

类型模型规格硬件绑定典型场景
轻量级推理服务(Small Model Pod)7B 以下小参数模型CPU 或低规格 GPUOCR 识别、日常办公辅助(文本摘要、格式提取)——延迟敏感、精度要求适中
高算力推理服务(Large Model Pod)70B 级别大参数模型高规格 GPU(A100/H100)智能推荐、业务分析、复杂语义理解——精度与推理深度要求高

论文表述示例:

在 AI 算力服务层,我们并未采用单一模型实例,而是设计了异构模型池。轻量级推理服务部署 7B 以下小参数模型,绑定 CPU 或低规格 GPU,专门处理 OCR 识别、日常办公辅助等对延迟敏感但对精度要求适中的任务;高算力推理服务部署 70B 级别大参数模型,绑定 A100/H100 GPU,专门处理智能推荐、业务分析、复杂语义理解等对精度要求较高的场景。

调度路由层面

任务通过 Kafka 进入 AI 服务层后,由模型路由网关依据 task_type 字段分流:

  • 轻量任务 → topic-light-inference → Small Model Pod 集群消费
  • 重量任务 → topic-heavy-inference → Large Model Pod 集群消费

两类 Pod 集群独立消费,互不干扰。

弹性伸缩层面

两类 Pod 集群配置独立 HPA 策略

集群扩缩容触发指标策略特点
轻量服务CPU 利用率扩容快、释放快,成本低
重量服务Kafka Consumer Lag避免频繁拉起高算力 GPU Pod 的冷启动成本

论文亮点对照

设计点对应的架构能力
双模型分级资源隔离 + 成本优化(不用大炮打蚊子)
任务标签路由关注点分离,可扩展性强
独立 HPA 策略针对性弹性策略,体现架构精细化运营
冷启动成本意识非功能性需求的深度理解

推理模型容器化部署

底层容器运行时

方案说明
Docker + NVIDIA Container Toolkit最常见,容器内可直接访问宿主机 GPU(nvidia-docker
Kubernetes + GPU Plugin生产级编排,K8s 通过 nvidia.com/gpu 资源声明分配 GPU 给 Pod

推理服务框架(运行在容器内)

框架适用场景
vLLMLLM 大模型推理,主流首选,支持连续批处理(continuous batching),吞吐量高
TGI(Text Generation Inference)HuggingFace 出品,适合 HF Hub 上的模型
Triton Inference ServerNVIDIA 出品,支持多种模型格式(ONNX、TensorRT),适合 CV/NLP 混合场景
ONNX Runtime轻量,适合小模型/边缘推理
TensorRT-LLMNVIDIA 专属,性能最强,但适配成本高

对应双模型架构的部署选型

模型类型推理框架运行环境
轻量级小模型(OCR/辅助办公)ONNX Runtime 或 Triton普通 CPU Pod 或低规格 GPU Pod,镜像体积小,冷启动快
大参数模型(智能推荐/业务分析)vLLM高规格 GPU Pod(如 A100),PagedAttention 提升显存利用率与并发吞吐

论文表述示例:

轻量推理服务基于 ONNX Runtime 构建容器镜像,调度至 CPU 节点;大模型推理服务基于 vLLM 框架,部署在配备 A100 GPU 的高算力 Pod 中,借助其 PagedAttention 机制有效提升了显存利用率与并发吞吐能力。整体运行于 Kubernetes 集群,通过 NVIDIA Container Toolkit 实现 GPU 资源隔离与按需分配。