shadow testing
一种把新系统悄悄接在正式服务后面、让它处理真实请求并只在后台检验性能、用户完全不会察觉的方法。
简单来说
影子测试(shadow testing)是指把新建的系统或新版本悄悄放在正式服务的背后,让真实的用户请求同样流经它,然后只记录并比较结果的一种验证方法。
打个比方,这就像戏剧里的替补演员(understudy)。替补演员在幕后与主角同步念台词,但观众只看到台上的主角,完全察觉不到任何异样。真正的台词依然由主角说出,替补的表现只有剧组相关人员在后台观察、判断演得好不好。影子测试也是同样的道理:真正返回给用户的答案仍由现有系统生成,但新系统也在后台接收同样的请求并生成自己的答案——这些答案不会传给用户,只是被悄悄保存下来加以比较。
为什么要这么麻烦呢?因为如果直接把新版本推给用户,一旦它突然给出错误答案或变慢,就可能让整个服务出问题。在与真实流量完全相同的条件下提前发现问题,可以大幅降低正式切换那一刻的风险。不过,如果新系统要执行像付款或发送消息这类会留下真实痕迹的操作,就必须专门屏蔽这部分,让它只是模拟执行,这样才安全。
亲手试一试
如果想在正式采用新版本之前先安全地验证一下,可以这样向 AI 编程工具提要求:
请帮我写代码,让新建的模型(或函数)版本与现有版本并行运行,但只把现有版本的响应返回给用户,新版本的响应只记录到日志文件中。同时在日志里附上请求 ID,方便之后比较两者的响应结果。
