4. 可用性架构:SLO/SLI设定、冗余设计、故障切换、多活策略

可用性架构是AI产品在生产环境中持续提供服务的基石。相比传统软件,AI服务依赖模型推理、特征工程、数据管道等多环节,任何一环的抖动都可能导致整体可用性坍缩。本章从SLO/SLI指标定义出发,剖析冗余、故障切换与多活策略的选型边界,并给出落地路径。

4.1 边界划分

可用性架构需首先界定“服务可用”的含义。AI产品的可用边界应覆盖以下三层:

  • 基础设施层:计算节点、GPU集群、网络、存储的可用性。
  • 推理服务层:模型加载、请求-响应通路的可用性,含推理超时与错误率。
  • 数据流层:特征获取、日志回传、模型热更新的可用性。

可用性设计必须向上对齐业务承诺(如SLA),向下分解为可量化的SLI指标。

层级 典型服务等级指标 (SLI) 常见SLO目标 (95% 窗口)
基础设施 节点UpTime / 集群存活率 >99.9%
推理服务 请求成功率 / p99延迟 >99.5% / <500ms
数据流 特征更新延迟 / 日志丢失率 <1s / <0.1%
设计指针:SLO不宜盲目追求“五个九”,需结合业务容忍度与成本。AI场景下,模型推理延迟的抖动风险高于节点故障,建议将推理SLO作为首要保障指标。

4.2 系统分层与组件职责

可用性架构分为以下四个组件层,每层有明确的职责边界:

  1. 健康探测层:运行Liveness/Readiness探针,周期性检测GPU显存、模型推理速度、内存泄漏等。
  2. 负载管理层:基于SLI做加权或一致性哈希转发,识别异常实例并摘流。
  3. 故障切换引擎:检测到主节点失效后,将流量转移至备用节点,切换时间受心跳间隔与探针超时影响。
  4. 多活协调层:维护多副本状态一致性(如模型版本、特征缓存),确保切换后服务不降级。

4.3 冗余设计与故障切换策略

冗余不是简单的节点加倍,而是围绕“故障域”做隔离。AI产品常见的冗余模式:

策略 组网方式 切换时间 成本 适用场景
主-备 (Active-Standby) 热备节点随时接管 秒级 低 推理服务无状态场景
双活 (Active-Active) 两地多副本同时服务 毫秒级 高 高可用要求、全球接入
N+1冗余 集群多一个节点兜底 分钟级 中 离线批处理推理

故障切换的关键控制流路径设计:

  • 探针 → 健康状态变更 → 负载管理器剔除实例 → 流量切换。
  • 两次探针失败(含重试间隔)才触发切换,避免网络闪断导致误切换。
  • 限制切换频率(如每分钟最多切换1次),防止反复震荡。
常见陷阱:GPU冷启动耗时可能导致备用节点无法快速生效。冗余节点需预先加载模型权重并保持“预热身”状态,否则切换后延迟会瞬间飙升,违背SLO。

4.4 多活策略与数据流/控制流

多活策略解决“单地域故障”问题,但数据一致性挑战最大。AI服务的多活设计要点:

  • 模型版本同步:跨地域模型文件通过对象存储同步,使用版本号避免滚动不一致。
  • 特征缓存一致性:建议只读副本+本地缓存,写操作只在主地域完成。
  • 控制流:全局配置中心(如Etcd/Consul)负责下发SLO阈值与切换策略,跨地域通过gRPC双向流同步。

以下SVG展示了AI服务可用性架构的核心数据流与控制流链路:

AI服务可用性架构:故障切换与多活策略 客户端请求 负载均衡 (LB) 多活推理集群 地域A / 地域B 实例 (GPU) 实例 (GPU) 健康探针 (Liveness) 故障切换引擎 SLO/SLI 控制面板 Agent 控制链路说明 Agent上报实例状态 → SLO面板计算 → 故障切换引擎决策 → 负载均衡摘流 切换延迟 = 探针间隔(3s) + 负载感知(1s) + 模型预热(2~5s) < 10s

4.5 选型权衡与风险点

维度 主-备 双活 风险提示
一致性 最终一致性 需强一致性协议(如Raft) 双活跨地域延迟可能导致脑裂
切换速度 取决于探针粒度 实时切换无感知 备节点预热不足会延长切换
成本 约1.5x 约2.5x 多活需冗余带宽与同步链路
复杂度 低 高 多活需要更强的运维能力

4.6 落地步骤

  1. 定义SLO基线:采集现有服务的p99延迟与错误率,设定可容忍的SLO窗口。
  2. 部署健康探针:为每个推理容器注入Liveness探针(检查GPU状态与推理响应)。
  3. 搭建冗余节点:至少保证主备节点在独立故障域(不同物理机/机架)。
  4. 配置自动切换阈值:设定连续失败次数与切换冷却时间。
  5. 灰度实施双活:先从静态路由演练,再逐步切为动态流量。
  6. 持续监控与演练:每周混沌工程注入节点故障,验证切换时间。

4.7 验收标准

验收条目 指标/条件
SLO达成率 在1小时故障模拟中,推理SLO达标率 > 99.5%
故障切换时间 从主节点崩溃到新实例流量完整接收,< 10s
数据一致性 切换前后模型版本一致,特征缓存偏差 < 0.1%
误切换率 无故障情况下,误触发切换次数 < 1次/周
核心要点回顾:可用性架构从SLO/SLI指标量化开始,通过冗余设计、故障自动切换、多活策略形成闭环。落地时需平衡切换速度与稳定性,GPU预热是关键瓶颈。验收阶段应重点验证故障切换时间与SLO达标率。