流量策略
场景描述
ModelArts在线推理服务提供多部署流量调度能力,针对同一个在线推理服务下创建的多个部署,可为每个部署手动或自动分配独立的流量权重,平台按照各部署权重相对占比,自动将推理服务调用请求按比例进行分流分发,实现模型灰度发布、A/B 测试、故障切流、流量按需分配等的精细化运维管控。
ModelArts提供两种流量分配模式:
- 手动分配:用户手动为每个部署配置固定的流量权重值,平台按照各部署权重相对占比进行分流。适用于需要精确控制流量比例的场景,如灰度发布、A/B测试等。
- 自动分配:平台自动感知各部署中部署副本的状态变化(上线、下线、异常等),根据实际运行中的部署副本数量动态计算流量分配比例,无需人工修改权重。适用于部署之间能力差异不大、希望流量随部署副本数自动调整的场景。
针对已有部署配置的在线服务,可以通过修改流量权重操作,设置当前服务下各个部署的流量权重。具体规则如下:
- 单一部署流量权重:单一部署的流量权重数值为不超过100的整数。
- 多部署流量权重分配:按比例分流到不同部署中。
- 所有部署的流量权重全部设置为 0:系统自动将流量平均分配到所有正常运行的部署,保障服务不中断。
- 开启镜像流量:系统将固定比例(10%)的实际流量复制至相应部署中,做影子验证,不影响用户请求。
- 开启自动分配:流量按运行的部署副本数量自动计算流量比例,无需手动设置权重。自动分配与手动分配互斥。
| 常见使用场景 | 业务目标 | 配置方式 | 价值 |
|---|---|---|---|
| 模型版本灰度发布 | 新版本模型上线不中断服务,降低故障风险,逐步放量验证。 |
| 零停机发布,风险可控、用户无感知 |
| 线上A/B测试,对比模型效果 | 对比多版本、多策略模型的真实线上效果,支撑迭代决策。 |
| 用真实流量客观评估,避免离线评估偏差 |
| 镜像流量(影子测试),安全验证新版本 | 不影响线上用户,用真实流量校验新版本兼容性、性能、稳定性。 |
| 真实验证,零业务风险,适合大模型或关键服务上线前校验 |
| 多部署负载均衡与弹性扩缩容 | 高峰抗流量、低谷省资源,提升利用率与稳定性。 |
| 动态适配负载、减少资源浪费、提升可用性 |
| 多模型、多业务线流量调度 | 同一推理端点共享资源,按优先级 或重要性分配流量 | 核心业务模型:权重 70 次要 / 实验模型:权重 30 资源紧张时调低非核心权重,保障核心 SLA | 资源复用、成本优化、业务优先级清晰 |
| 快速故障隔离与无损回滚 | 某版本异常时快速止损,不影响整体服务 | 异常版本权重立即设为 0 流量全量切回稳定版本(权重 = 100) 隔离问题部署排查修复 | 快速止损、业务几乎无损、运维效率高 |
| 测试环境快速迭代验证 | 开发、测试并行验证,不污染生产流量 | 生产部署:权重 100 测试部署:不设置权重+开启镜像流量 用影子流量验证,验证通过再灰度放量 | 测试与生产隔离、迭代安全高效 |
| 自动分配,部署副本异常自动调整流量 | 部署副本异常或扩缩容时,流量比例随部署副本数自动调整,避免异常部署过载 |
| 异常自愈、无人值守、请求时延稳定 |
约束限制
镜像流量仅在同步调用中存在,异步调用无该参数。
自动分配使用约束:
- 前提条件:服务的各部署之间不存在能力差异或能力差异不大,即各部署提供相同的推理能力,可互相替代。
- 互斥关系:自动分配与手动分配互斥。开启自动分配后,系统将忽略用户设置的静态权重值,按部署副本数的比例动态分配;关闭自动分配后,恢复使用固定权重值分配。
- 镜像流量组不参与自动分配计算:开启了镜像流量的部署不纳入运行的部署副本数统计,由独立的镜像流量策略处理。
- 降级策略:当自动分配因异常(如Redis不可用等)无法获取实时部署副本数时,系统将降级使用静态权重值进行分流,保障业务连续性。
- 新增部署:开启自动分配后,新增部署时,默认开启镜像流量,不参与分流。
- 异步推理:异步推理不支持自动分配流量。
自动分配流量原理
在多部署的在线推理服务中,当使用手动分配流量时,如果某个部署中的部分部署副本发生异常或下线,但流量仍按原始权重比例分配,会导致该部署出现请求积压(pending),请求时延增大,影响整体服务可用性。
例如:某在线推理服务包含2个部署,每个部署有2个部署副本,固定权重为50:50。当部署A的1个部署副本异常时,由于权重仍为50:50,部署A仅有1个部署副本承接50%的流量,而部署B有2个部署副本承接50%的流量,导致部署A过载。
自动分配通过感知部署副本的状态变化,动态调整各部署间的流量分配比例,解决上述问题。其核心机制如下:
- 流量比例计算:自动分配开启后,系统实时查询每个可接收流量的部署,统计状态为"运行中"(RUNNING)的部署副本数量,以运行部署副本数替代静态权重作为分流依据。流量比例计算公式:
- 配置下发与刷新:当部署副本数量发生变化(如扩缩容、部署副本异常重启等)时,系统自动触发路由配置刷新,重新获取最新运行的部署副本数并下发到路由组件,实现流量比例随部署副本上下线自动调整,无需人工修改权重。
- 兼容性:自动分配默认关闭。未开启的服务继续使用原有固定权重分配方式,不受影响。开启自动分配后再切换回手动流量分配,流量统计将显示用户设置的固定分流值。
查看/修改流量权重
登录ModelArts管理控制台,在左侧菜单栏中选择“模型推理>在线推理”,进入在线服务管理页面。
方式一:
在服务列表中,单击某个服务名称进入服务详情页,在服务详情页的“部署”页签,查看该服务的实际流量比例。实际流量比例是由流量权重配置和部署状态计算所得的值。
在流量权重区域,单击“修改配置”,修改该部署的流量比例。
| 流量分配方式 | 参数 | 说明 |
|---|---|---|
| 手动分配 | 流量权重 | 设置当前服务下部署的流量权重,服务调用请求会根据权重比例动态分配至部署上,单一部署的流量权重数值为不超过100的整数。若所有部署的流量权重全部设置为0,为避免服务中断,流量将自动进行均分。 开启镜像流量后,镜像流量不参与实际流量的权重计算,流量权重默认为固定比例,暂不支持修改。 每个服务请至少保留1个实际接受请求的部署。 |
| 手动分配 | 镜像流量 | 也称为影子流量,是一种安全的部署验证功能,它能将生产流量的副本实时同步到新版本部署,而不会影响实际用户请求。为您提供了一个与生产环境完全一致的"影子"测试环境。 镜像流量开启需满足服务为HTTP/HTTPS协议。 部署开启镜像流量后将不再接收实际流量。此时流量权重不参与预计流量比例计算,系统将按照统一策略,将固定比例(10%)的实际流量复制至相应部署中来帮助您安全地验证模型。请确保资源配置充足,以承载镜像流量。 镜像流量在同步调用中存在,异步调用无该参数。 |
| 手动分配 | 预计流量比例 | 预计流量比例是单个部署预期接收用户的流量与总流量比值。实际流量比例是由流量权重配置和部署状态计算所得的值。 |
| 流量分配方式 | 参数 | 说明 |
|---|---|---|
| 自动分配 | 分配方法 > 按部署副本数 | 选择自动分配后将根据部署副本数动态调配,具体以可用的部署副本数为准。 所有未开启镜像流量的部署都参与预计流量的比例计算。 |
| 自动分配 | 镜像流量 | 也称为影子流量,是一种安全的部署验证功能,它能将生产流量的副本实时同步到新版本部署,而不会影响实际用户请求。为您提供了一个与生产环境完全一致的"影子"测试环境。 镜像流量开启需满足服务为HTTP/HTTPS协议。 部署开启镜像流量后将不再接收实际流量。此时流量权重不参与预计流量比例计算,系统将按照统一策略,将固定比例(10%)的实际流量复制至相应部署中来帮助您安全地验证模型。请确保资源配置充足,以承载镜像流量。 镜像流量在同步调用中存在,异步调用无该参数。同步调用中添加新的部署默认开启镜像流量。 |
| 自动分配 | 预计流量比例 | 预计流量比例是单个部署预期接收用户的流量与总流量比值。实际流量比例是系统依据可运行的部署副本数量自动分配的。 |
方式二:
方式三:
在服务列表页右侧的操作列,单击更多>流量策略,修改流量权重分配方式。
修改完成后,单击“确定”提交任务。