2. 金融行业Serving需求分析

在通用互联网场景中,模型 Serving 的核心指标往往是吞吐与成本;但一旦进入金融行业,评价体系会发生根本性变化。金融业务对“错误”的容忍度极低,一次推理延迟抖动可能意味着交易机会流失,一次数据不一致可能触发对账差异,一次审计缺失可能直接导致监管处罚。因此,本章不讨论具体部署工具,而是先把金融 Serving 的需求边界讲清楚——只有需求被量化,后续的 Kubernetes 高可用设计才有依据。

一、核心原理:金融Serving的五维约束模型

金融 Serving 的需求可以归纳为五个相互制约的维度:延迟、并发、一致性、合规、容灾。它们并非并列关系,而是存在明显的优先级与冲突。例如,为了降低延迟而引入本地缓存,可能破坏数据一致性;为了提升并发而横向扩容,可能增加审计日志的聚合难度。理解这些冲突,是架构取舍的前提。

金融 Serving 五维约束模型 Serving 核心约束 低延迟 P99 < 100ms 高并发 万级 QPS 数据一致性 强一致 合规审计 全链路留痕 容灾备份 RTO/RPO

这五个维度在 Kubernetes 上会映射为具体的资源对象与策略:延迟对应 CPU/GPU 的 QoS 与拓扑亲和,并发对应 HPA 与连接池,一致性对应有状态服务与分布式锁,合规对应审计日志与网络策略,容灾对应多可用区与备份恢复。后续章节将逐一展开,本节先建立量化基线。

二、方法流程:从业务指标到Serving SLA的拆解

需求分析不能停留在“要快、要稳”的口号上,必须走一条可落地的拆解流程:

  1. 业务指标采集:与风控、交易、投研等团队确认业务侧的真实指标,例如“反欺诈评分必须在 80ms 内返回”“日终对账期间 QPS 峰值 1.2 万”。
  2. SLA 量化:将业务指标转换为 Serving 的 P50/P95/P99 延迟、错误率、可用性百分比。金融场景通常要求 P99 而非平均值。
  3. 约束识别:识别哪些请求必须强一致读、哪些可接受最终一致;哪些数据必须落审计、哪些可脱敏。
  4. 资源映射:把 SLA 映射为 Kubernetes 的 requests/limits、副本数、PDB、拓扑分布约束。
  5. 验证与复盘:通过压测与故障注入验证是否达标,未达标则回到第 2 步重新量化。
建议在需求阶段就建立一张“指标—约束—K8s对象”的映射表,避免后期架构评审时反复扯皮。这张表也是容灾演练和审计检查的依据。

三、案例场景:某券商智能投顾Serving需求清单

以某券商智能投顾场景为例,其 Serving 同时承载行情解读、组合推荐与合规风控三类请求。三类请求的约束差异极大,若混部在同一套无差别的 Deployment 中,必然出现“风控被推荐拖垮”的事故。因此需求分析阶段就要按业务域拆分。

业务域 延迟要求 并发峰值 一致性 审计要求 容灾目标
合规风控 P99 ≤ 50ms 3000 QPS 强一致 全量留痕 7 年 RTO ≤ 30s,RPO = 0
组合推荐 P99 ≤ 200ms 8000 QPS 最终一致 结果留痕 1 年 RTO ≤ 5min,RPO ≤ 1min
行情解读 P99 ≤ 150ms 12000 QPS 弱一致 采样留痕 RTO ≤ 2min,RPO ≤ 10s

从表中可以看出,合规风控虽然 QPS 最低,但对延迟、一致性和容灾的要求最严苛,应独立部署并配置更高的 QoS 等级。组合推荐与行情解读可以共享节点池,但需要通过命名空间和资源配额隔离,防止相互抢占。

# 合规风控 Serving 的关键 K8s 约束示例
resources:
  requests:
    cpu: "4"
    memory: "8Gi"
  limits:
    cpu: "4"
    memory: "8Gi"
topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: topology.kubernetes.io/zone
    whenUnsatisfiable: DoNotSchedule
podDisruptionBudget:
  minAvailable: 2

四、误区与复盘:需求分析中最容易踩的坑

在实际项目中,需求分析阶段的失误往往比技术选型失误代价更高。以下三个误区最为常见:

  • 用平均值代替分位数:金融交易对尾部延迟极其敏感,P99 超标意味着每 100 笔就有 1 笔体验受损。需求文档中必须明确分位数口径。
  • 把“高可用”等同于“多副本”:多副本只解决进程级故障,无法应对可用区级故障和脑裂。容灾需求必须细化到 RTO/RPO 和切换演练频率。
  • 忽视审计的存储与性能成本:全量留痕 7 年意味着海量日志写入,若与 Serving 共用磁盘 IO,会直接拉高延迟。审计链路应独立规划。
复盘经验:某项目在需求阶段未区分“强一致读”与“最终一致读”,上线后所有请求都走主库,导致数据库连接耗尽、P99 从 80ms 恶化到 900ms。后期通过读写分离和缓存分层才恢复,但已造成生产事故。需求分析阶段的分类讨论,远比事后调优便宜。

综上,金融 Serving 的需求分析本质是一次“约束显性化”的过程:把模糊的业务期望翻译成可测量、可验证、可映射到 Kubernetes 对象的工程指标。只有完成这一步,后续的高可用部署、弹性伸缩与容灾演练才有明确的验收标准。