终止条件必须在推广开始前写死,而不是在推广中途凭感觉决定。对试验页验证过的性能改动,推广到全站时只有两类可执行的终止条件:一类以业务指标恶化为红线,一类以技术指标越界为红线。两者的触发阈值、观测窗口和回退动作都应在同一份文档里预先定义,推广脚本只负责执行,不负责判断。
选择依据不是哪个指标更专业,而是这次改动最可能伤害什么。如果改动涉及图片压缩、字体加载、脚本合并这类直接影响渲染的环节,用技术指标当红线更敏感;如果改动涉及首屏内容顺序、懒加载触发点这类影响用户能否立刻看到关键信息的环节,用业务指标当红线更贴近真实损失。
技术红线的典型形式是:在推广批次内,核心网页指标的中位数相比试验页基线恶化超过预设幅度,且连续两个观测窗口都成立。业务红线的典型形式是:关键转化路径的完成率或下一步点击率下降到预设下限以下。两类红线都要配一个观测窗口,比如按小时聚合、连续观察若干小时,避免用单次采样下结论。
这里有一个容易忽略的前提:试验页的基线本身要足够稳定,否则推广阶段的波动无法归因。如果试验页在推广前一周内自身波动就很大,那么任何阈值都不可靠,此时正确动作是先延长试验页观察期,而不是急着推广。
按批次推进指把全站页面分成若干组,一组验证通过再放下一组。按流量比例推进指同时对所有页面生效,但只对一定比例的访问者启用改动。两者成立的条件不同。
如果两者都可行,优先选按批次推进,因为它把“哪一类页面出问题”这个信息保留了下来。按流量比例推进一旦触发红线,你只知道整体变差,不知道问题集中在哪个模板,回退后仍需重新定位。
只写“指标恶化就停止”没有意义,必须写明停止后的第一个动作。常见的有三种:整体回退到改动前版本、冻结当前批次不再扩大、降级到试验页验证过的保守参数。选择哪一种取决于恶化幅度和可逆性。
假设一个场景:某次改动把非首屏图片改为延迟加载,试验页上首屏渲染时间改善,推广到全站后按批次推进。设定终止条件为“任一小时内,该批次页面的首屏渲染时间中位数比基线恶化超过两成,或关键按钮点击率下降超过一成”。第一批次触发后,正确动作是冻结该批次并回退,同时检查触发批次的页面类型是否与试验页差异过大。如果差异集中在某类模板,下一步应把该类模板单独拆出,重新在试验页验证,而不是直接放弃整个改动。
这里要注意,指标变化不一定由改动引起。季节性的搜索需求变化、同期上线的其他改动、数据采集口径调整,都会造成同样的曲线。因此触发终止条件后,先确认观测窗口内是否有其他变更同时生效,再决定是回退还是继续观察。把统计上的同步变化直接当成因果,会导致误杀有效改动。
当改动本身只影响极少数页面,且这些页面不承载主要流量或转化时,可以只设人工检查点,不设自动终止。判断标准是:即使改动完全失败,损失也在可接受范围内,且你能在短时间内手动恢复。除此之外,自动终止条件不应省略。
另一类例外是改动只涉及非用户可见的环节,比如资源预加载提示或缓存头调整。这类改动对渲染指标的影响通常是间接的,用业务指标当红线反应太慢,更适合用技术指标加较长观测窗口,并接受一定的误报率。
推广前至少确认四件事:试验页基线是否稳定;红线指标、阈值、观测窗口是否明确;触发后的第一个动作是否指定到人;回退路径是否在推广前演练过一次。这四项缺任何一项,推广都不应开始。终止条件的作用不是预测失败,而是让失败发生时,决策不依赖当时的情绪和临时判断。