双跑并行过渡是什么
双跑是让新旧环境并行运行一段时间,用真实流量验证新环境。常见形态有三种:旁路镜像(把生产流量镜像一份给新环境,只比对结果不返回给用户)、抽样双写(按比例或按用户分组把写请求同时打到两边)、只读切换(新环境先承接查询流量)。它解决纸面测试覆盖不到的真实数据形态与边界场景,代价是成本翻倍,且必须提前约定数据主从关系,否则两边分叉后无法对账。
基本信息
| 常见形态 | 旁路镜像比对、抽样双写、只读切换 |
|---|---|
| 验证指标 | 结果差异率、性能对比、错误率、成本基线、数据一致性 |
| 退出条件 | 差异率收敛到阈值内、性能不劣于旧环境、观察期结束 |
| 主从约定 | 双写时必须指定哪一侧为准,冲突以谁覆盖谁 |
| 典型周期 | 按业务风险从数天到数周,覆盖完整业务周期(含月末与批量任务) |
| 成本影响 | 两边资源与流量同时计费,双跑期越长成本越高 |
典型使用场景
- 核心交易系统搬迁:先用只读与旁路比对跑通,再切写流量
- 数据库或中间件换版本:抽样双写对比新旧版本的返回差异
- 重写了老系统:用真实请求回放验证新实现的输出一致性
- 云厂商迁移:验证新地域的网络时延与依赖服务的连通性
- 容量验证:用生产量级流量确认新环境的规格与扩缩容策略是否够用
双跑对照记录要点
双跑对照记录要点
# 每日记录(建议做成固定表格模板)
抽样接口清单:接口名 + 抽样比例 + 比对频率
差异分类:功能缺陷 / 配置差异 / 时序差异(异步与最终一致)
差异趋势:按日汇总差异条数,未收敛到阈值内不允许切流
抽样方式:按用户 ID 或订单号固定取模,保证同一请求两边可比
旁路写入:比对结果只落盘不回写,避免污染生产数据指标与达标口径
| 指标 | 采集方式 | 达标口径 |
|---|---|---|
| 结果差异率 | 同一请求两边响应逐字段比对 | 收敛到预先约定的阈值以内,且不出现成簇差异 |
| 性能 | 同口径压测或真实流量 P95 延迟对比 | 新环境不劣于旧环境,长尾不恶化 |
| 错误率 | 新环境的 5xx 与超时比例 | 不高于旧环境同窗口水平 |
| 数据一致性 | 双写记录逐条对账 | 差异条数为零或全部可解释并修正 |
| 成本 | 两边账单按日汇总 | 双跑期总成本在预算内,到期即退出 |
差异要分类而不是只数条数:功能缺陷、配置差异、时序差异的处理方式完全不同,混在一起会一直对不平,也无法判断能否切流。
双写必须明确主从与去重:没有主从约定时,两边数据会各自演化,等发现时已经分叉,只能靠人工对账回补。