Uber 如何用应用感知网络提升可靠性,并为云迁移解除阻塞

2026-08-27 46 预计阅读时间: 1 分钟
来源: cloud.google.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:11 分钟

当数据分析、AI 工作负载和分布式应用不断把数据推向云端,网络链路就不再只是“带宽够不够”的问题。对 Uber 这样的全球化平台而言,真正的挑战是:在大规模数据传输制造拥塞时,如何保证订单、实时服务和其他关键业务流量仍然稳定运行。

Uber 与 Google Cloud 合作,成为 Cloud Interconnect 应用感知能力的早期设计伙伴。通过对混合网络中的应用流量进行分类和优先级管理,Uber 得以降低拥塞对关键服务的影响,也更有信心把更多战略性工作负载迁移到 Google Cloud。

从“堆带宽”转向“管理流量”

传统的云互联方案通常采用带宽超配来应对峰值:准备足够大的链路,让所有流量尽量同时通过。这种方式简单直接,但在全球规模的基础设施中会带来两个问题。

一方面,峰值带宽可能只在少数时段使用,长期购买这些容量会推高网络基础设施的总拥有成本。另一方面,超配并不能完全消除突发拥塞。数据分析、模型训练或大规模数据搬迁启动后,流量仍可能在短时间内挤占共享链路。

如果所有数据包都按照先进先出处理,关键应用流量和低时效性的数据传输就会相互竞争。一旦发生拥塞,关键请求可能出现延迟升高、丢包,甚至影响服务连续性。

应用感知能力改变了这个模型:网络不再把所有流量视为同一种负载,而是根据应用重要性进行分类,并通过 DSCP 标记和队列配置执行优先级策略。摘要中提到,该能力支持六种不同的流量类别,使组织能够把业务关键流量与批处理、数据同步等低时效性流量区分开。

四个关键能力

1. 按应用处理流量

标准互联方案通常对所有流量采用相同的先进先出策略。应用感知网络则会先识别并分类流量,再将其放入不同的队列。

这意味着企业可以把面向用户的关键服务、控制面流量和大规模数据传输分开管理。分类策略需要与业务依赖关系保持一致,而不是简单按照端口数量或流量大小划分。

2. 在拥塞时保护关键业务

发生突发流量时,关键应用不应和批量数据传输共享完全相同的处理规则。应用感知能力可以通过严格优先级或带宽共享策略,为业务关键流量保留处理能力。

这并不意味着低优先级流量永远不能发送,而是让企业在资源紧张时明确做出取舍:先维持关键业务,再利用剩余容量处理可延迟的数据。

3. 管理时延,而不只是追求吞吐量

对实时或交互式应用而言,稳定且可预测的低时延往往比短时间内的最高吞吐量更重要。通过固定的分类和队列策略,企业可以减少关键应用在拥塞期间遭遇的不可预测延迟。

4. 减少不必要的带宽超配

当网络能够根据业务优先级使用有限容量时,企业就不必只依赖购买更多峰值带宽来解决所有问题。更高效的带宽利用率可以降低网络基础设施成本,同时为迁移和扩展保留更清晰的容量规划边界。

一个可以改造的流量优先级示例

下面的示例使用 Linux tc 创建一个基于优先级的队列,并根据 DSCP 标记把流量分流。它是一个可运行的实验配置,不是 Cloud Interconnect 的官方部署清单;生产环境中需要将网卡名、链路速率、DSCP 值、路由设备和云侧配置替换为组织实际使用的参数。

运行前,将 eth0 改成测试主机的出口网卡,并确认主机具备 iproute2 工具。示例把 DSCP 值为 46 的高优先级流量放入高优先级队列,把其他流量放入普通队列。

#!/usr/bin/env bash
set -euo pipefail

DEV="${1:-eth0}"

# 清理实验配置;生产环境请使用经过评审的变更流程。
sudo tc qdisc del dev "$DEV" root 2>/dev/null || true

# 高优先级队列使用更低的延迟,普通流量使用剩余带宽。
sudo tc qdisc add dev "$DEV" root handle 1: prio bands 2
sudo tc qdisc add dev "$DEV" parent 1:1 handle 10: fq_codel
sudo tc qdisc add dev "$DEV" parent 1:2 handle 20: fq_codel

# DSCP 46(EF)通常用于需要低延迟的业务流量。
sudo tc filter add dev "$DEV" protocol ip parent 1: prio 1 \
  u32 match ip tos 0xb8 0xfc flowid 1:1

# 未匹配的流量默认进入普通队列。
echo "Traffic policy installed on $DEV"
sudo tc -s qdisc show dev "$DEV"

这个实验能帮助团队验证几个重要问题:DSCP 标记是否在端到端链路中保留,关键业务是否确实进入目标队列,普通流量是否仍能获得合理带宽,以及拥塞时延是否符合服务等级目标。真实的 Cloud Interconnect 部署还需要结合云侧互联配置、企业路由策略和跨区域链路设计进行验证。

Uber 的迁移收益

Uber 从 Phoenix 和 Ashburn 的 Google Cloud Interconnect 部署开始推进应用感知能力,并逐步将其应用到基础设施中。对 Uber 而言,这项能力带来的价值不只是网络设备层面的优化。

业务连续性更可控。 在高流量事件或计划中的大规模数据操作期间,Uber 可以决定哪些应用流量应当获得更高优先级,从而保护关键服务的运行状态。

现有带宽使用得更充分。 企业不必仅通过盲目超配来覆盖所有峰值,而是可以结合预期带宽需求和业务优先级使用 Cloud Interconnect 容量,降低网络基础设施的总拥有成本。

云迁移不再被网络风险完全牵制。 迁移分布式或混合应用时,最令人担心的往往不是复制数据本身,而是切换期间的服务中断。若关键流量能够在拥塞时获得保护,团队就能更有把握地迁移更具战略意义的工作负载。

这也是一个值得其他企业复用的思路:云迁移计划不应只包含计算、存储和数据复制方案,还要明确网络拥塞时的业务取舍规则。

面向 AI 和混合云的落地清单

随着企业引入云端 AI 模型、分布式分析和更大规模的数据管道,网络规划可以从以下几步开始:

  1. 列出所有关键应用,并记录它们对吞吐量、时延、丢包和可用性的要求。
  2. 将应用分为有限数量的业务类别,避免为每个服务创建难以维护的独立策略。
  3. 为每个类别定义 DSCP 标记、队列、带宽份额和拥塞时的处理规则。
  4. 在计划中的数据迁移或分析作业期间,验证关键流量的时延、丢包和错误率。
  5. 监控队列利用率和策略命中情况,确认优先级规则没有被错误标记或中间设备重写。
  6. 将网络策略纳入迁移回滚方案,并提前演练高流量和链路受限场景。

应用感知网络不是对容量规划的替代品。链路容量仍然需要满足合理的长期需求,优先级策略也不能掩盖持续性的容量不足。它解决的是资源紧张时如何分配网络能力的问题:让关键业务先得到保护,让可以延迟的数据承担更多排队和等待成本。

对正在推进混合云、多云或 AI 数据基础设施的组织来说,这种从“购买更多带宽”转向“按业务重要性管理流量”的方法,可能正是提升网络可靠性并降低迁移风险的关键一步。


相关推荐