Skip to content

8. 企业生产实践 ​

一句话理解:生产环境的 LLM Gateway 要解决的不是“能不能跑”,而是“能不能在高并发、多租户、多区域、多供应商的情况下稳定、低成本、可审计地跑”。

部署形态选择 ​

独立服务(推荐大多数团队) ​

text
Client -> DNS / Global Load Balancer -> LLM Gateway Cluster -> Providers

适用:

  • 多个业务方共享模型资源。
  • 需要统一成本核算、审计、配额。
  • 团队有运维网关的经验。

高可用要点:

  • 至少 2 个副本,跨可用区部署。
  • 使用 Redis 共享限流、熔断、会话状态。
  • 配置中心支持热更新。
  • 日志、指标、tracing 集中收集。

Sidecar ​

text
App Pod [App Container + Gateway Sidecar]

适用:

  • 低延迟要求极高。
  • 每个应用需要独立的配额与策略。
  • 已有 Service Mesh 基础设施。

注意:

  • 配置碎片化,需要统一的配置分发机制。
  • 资源占用随 Pod 数线性增长。
  • 成本聚合需要把 sidecar 指标统一汇总。

边缘网关 ​

Cloudflare AI Gateway、AWS API Gateway 等属于此类。深度 AWS 生态的团队还可以评估 AWS Bedrock AgentCore Gateway(2025 年 10 月 GA):全托管地把 REST API / Lambda / OpenAPI / Smithy 转为 MCP 工具,用 Cedar 策略做默认拒绝的工具级访问控制,并在网关边界集成 Bedrock Guardrails(2026 年 6 月 GA);按调用量计费(约 $0.005/千次调用),适合不想运维网关但要求企业级工具治理的场景。

适用:

  • 希望零运维、全球加速。
  • 需要边缘缓存与边缘安全。
  • 不担心供应商锁定。

Kubernetes 部署示例 ​

以 LiteLLM Proxy 为例,最小部署:

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: llm-gateway
spec:
  replicas: 3
  selector:
    matchLabels:
      app: llm-gateway
  template:
    metadata:
      labels:
        app: llm-gateway
    spec:
      containers:
        - name: gateway
          image: ghcr.io/berriai/litellm:main-latest   # 生产建议锁定具体版本(如 v1.105.x)并跟进安全补丁
          args: ["--config", "/etc/litellm/config.yaml"]
          ports:
            - containerPort: 4000
          volumeMounts:
            - name: config
              mountPath: /etc/litellm
          envFrom:
            - secretRef:
                name: llm-gateway-secrets
      volumes:
        - name: config
          configMap:
            name: litellm-config
---
apiVersion: v1
kind: Service
metadata:
  name: llm-gateway
spec:
  selector:
    app: llm-gateway
  ports:
    - port: 80
      targetPort: 4000

Secret 管理:

yaml
apiVersion: v1
kind: Secret
metadata:
  name: llm-gateway-secrets
type: Opaque
stringData:
  OPENAI_API_KEY: "sk-..."
  AZURE_API_KEY: "..."

生产上更推荐使用 External Secrets Operator 从 Vault/AWS Secrets Manager 同步。

多租户与配额 ​

多租户是 LLM Gateway 的核心生产场景。常见隔离维度:

维度说明限流键示例
Tenant团队/部门级别tenant:team-a
Application应用级别tenant:team-a:app:chatbot
User用户级别tenant:team-a:user:u123
Model模型级别tenant:team-a:model:gpt-4o

配额策略:

  • 硬配额:超过即拒绝,保护上游。
  • 软配额:超过后允许但告警/降速。
  • 预算上限:按美元设置月度预算,超支后禁止调用昂贵模型。

与 vLLM / Triton 集成 ​

vLLM 作为上游 ​

vLLM 自带 OpenAI-compatible server:

bash
python -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Llama-3.1-8B-Instruct \
  --tensor-parallel-size 1 \
  --port 8000

Gateway 配置:

yaml
providers:
  vllm-llama:
    kind: openai
    base_url: http://vllm-service:8000/v1
    models: [llama-3.1-8b]

Triton 作为上游 ​

Triton 提供 OpenAI-compatible frontend(2025 年底进入 stable)。Gateway 可直接把它当作 OpenAI provider:

yaml
providers:
  triton-llm:
    kind: openai
    base_url: http://triton-service:8000/v2/models/ensemble/generate
    models: [triton-llama-3.1-8b]

如果 Triton 暴露的是 gRPC,则 Gateway 需要额外做 gRPC ↔ HTTP 转换。

KV-Cache 感知路由(2025 后自托管集群推荐) ​

自托管 vLLM 集群规模上来后,建议在网关上启用 Gateway API Inference Extension(GIE)风格的推理感知路由:

  1. vLLM 开启 prefix caching(--enable-prefix-caching,新版本默认开启),并让副本暴露指标(vLLM v0.10+ 支持 KV cache 事件流,可做“精确模式”路由)。
  2. 网关侧部署 Endpoint Picker(如 llm-d-inference-scheduler、NVIDIA Dynamo EPP,或阿里云推理扩展网关的托管实现)。
  3. 按“KV 前缀命中 + 队列深度”打分选副本;连续多轮 Agent 对话天然命中同一前缀,TTFT 收益显著(llm-d 报告热命中 TTFT 降低约 88%)。
  4. EPP 决策增加约 1~2ms 开销,需评估是否小于收益;小规模集群(个位数副本)用 AdaptiveScore 类打分负载均衡即可,不必上完整 EPP。

MCP Gateway 生产实践(2025-2026 新增) ​

面向 Agent 的工具治理是今年生产落地的新重点:

最小安全基线 ​

  • deny-by-default 工具白名单:默认拒绝全部工具,按业务逐个放行;不要默认放开上游 MCP Server 的全部能力。
  • 工具级身份隔离:每个调用方(应用 / 用户)使用独立虚拟 key,工具权限挂在 key 上而不是网关全局。
  • 关闭默认 master key,保持版本更新:2026 年披露的 CVE-2026-59822(LiteLLM MCP 认证绕过,影响 < 1.84.0)表明 MCP 端点是新的攻击面,升级与 key 轮换必须进入常规运维;2026 年 10 月最新稳定版为 v1.105,v1.104 起已强制 master key 校验并默认关闭 stdio MCP。
  • stdio MCP 默认关闭:远程 Gateway 只暴露 HTTP 类 MCP Server;stdio 仅用于受信内网。
  • 工具调用审计:按 Mcp-Method / 工具名记录调用日志,高危工具(支付、删除类)额外告警。

协议与兼容 ​

  • 新旧 MCP 协议(modern 无状态 HTTP Tools / legacy 握手 + 会话)并存期,用支持双向桥接的网关(Higress v2.2.4+、LiteLLM)避免 Agent 与 Server 协议错配。
  • 存量 REST API 可通过 Higress 的“零代码转 MCP Server”能力快速接入,避免为每个服务手写 MCP 封装。

语义缓存生产实践(2025-2026 新增) ​

  • 先精确、后语义:Redis 精确缓存成本几乎为零,语义缓存每次要付 embedding 费用;级联能省则省。
  • 阈值与场景匹配:FAQ、摘要、代码解释等“答案稳定”的场景适合低阈值(0.85~0.9);Agent 多轮对话、强上下文依赖的场景建议高阈值或禁用,防止“串味”。
  • 敏感请求不缓存:按租户/请求头标记 no-cache,PII 与商业机密直接跳过两级缓存。
  • 观测命中率:把 cache_hit_total{mode="exact|semantic"} 纳入大盘,命中率低于 10% 时反思场景是否适合。
  • 注意插件档位:Kong 的 ai-semantic-cache、APISIX 的 ai-cache 等能力在不同版本/许可下可用性不同,选型前确认。

多区域与多供应商降级 ​

生产推荐设计 fallback 链:

text
Primary   : Azure OpenAI (us-east)
Backup 1  : OpenAI (global)
Backup 2  : Anthropic Claude (us-west)
Backup 3  : 自研 vLLM (on-prem)

触发条件:

  • HTTP 5xx 或 429。
  • 延迟超过 SLO(例如 TTFT > 2s)。
  • 内容审查拒绝(不可重试,直接返回)。

实现方式:

  • Gateway 维护每个 region/provider 的健康状态。
  • 跨 region 路由时优先选择地理最近的 healthy provider。
  • 主 region 故障时,DNS 或 Gateway 自动切到备用 region。

成本优化实践 ​

  1. 模型降级:默认用便宜模型处理简单任务,复杂任务才用贵模型。
  2. 缓存:重复 prompt 直接返回缓存结果,减少调用。
  3. 批量调用:把多个小请求合并成 batch,降低 per-request 开销。
  4. 智能路由:按 prompt 长度/复杂度选择 cheapest provider;更进一步用自动路由(如 LiteLLM Auto Router 的 Fuse/Capability 策略)按成本/延迟/能力自动选模,并先以 shadow eval 量化效果再切流。
  5. 监控成本异常:按应用/用户设置预算告警,防止某处 burst。
  6. 跟上 2026 年的计费细化:缓存读取折扣(主流厂商约 90%,DeepSeek 约 98%)、缓存写入费(如 1.25×)、长上下文附加费已成常态,计费从 input/output 两档变成 input / cached input / cache write / output / reasoning 多档。网关成本核算必须按档计量并透出对应指标(LiteLLM 内置价格表随版本跟进降价,v1.96 即跟进 GPT-5.6 降价;Agent Router v1.1 起支持跨 provider token 计数);同时可利用厂商错峰计价(LiteLLM v1.101 off-peak pricing)与批量计费(v1.99 end-to-end batch billing)进一步降本。

可观测体系 ​

生产需要三类可观测数据:

类型工具关注点
MetricsPrometheus + GrafanaQPS、延迟、token、成功率、成本
LogsLoki / ELK请求详情、错误堆栈、审计
TracesOpenTelemetry + Jaeger请求在网关与上游的完整链路

关键告警:

  • 5xx 率 > 1% 持续 5 分钟。
  • P99 延迟 > 阈值。
  • 某 provider 失败率突增。
  • 租户配额使用接近上限。

安全与合规 ​

  1. Secret 管理:API key 不存代码、不存镜像,使用 Vault / KMS。
  2. 传输安全:TLS 1.2+,内部服务间 mTLS。
  3. 内容安全:PII 过滤、敏感词检测、越狱提示识别。
  4. 审计日志:记录 who/when/what model/how many tokens。
  5. 数据驻留:某些合规场景要求数据不出境,Gateway 需要按 tenant 路由到特定 region。

常见踩坑 ​

踩坑原因解法
流式响应中断无法重试chunk 已发送给客户端重试窗口只放在首包前;建立连接超时设置合理
限流键太粗一个租户打满全局 bucket多维度限流:tenant + model + user
fallback 模型能力不匹配备用模型输出质量差明确 fallback 模型能力边界,必要时返回错误
上游 429 导致重试风暴没有 jitter / backoff指数退避 + jitter + 按 Retry-After 等待
配置热更新导致状态不一致部分实例先加载新配置使用配置版本号 + 原子切换
日志泄露敏感信息prompt 含 PII日志脱敏,只记录 token 长度与 hash
MCP 工具被越权调用默认放开上游全部工具 / 默认 master key 未关deny-by-default 白名单 + 虚拟 key 隔离 + 关闭 master key(参考 CVE-2026-59822)
成本核算与账单对不上只按 input/output 两档估算,忽略 cached input / cache write / reasoning 分档计费按档计量并透出指标,价格表随厂商调价更新(2026 年缓存折扣与附加费频繁变化)
语义缓存“串味”相似度阈值过低或场景上下文依赖强提高阈值、按租户隔离缓存命名空间、敏感请求禁用缓存

本章小结 ​

生产级 LLM Gateway 需要在部署形态、多租户配额、上游集成、多区域降级、成本控制、可观测、安全合规等方面做系统设计。网关本身不生产模型能力,但它是模型能力能否稳定、经济、合规地交付给业务的关键层。

参考来源

Released under CC-BY-SA-4.0 License.