11.1.3 试运行

互联网产品开发的理念是“小步快跑,快速试错”,QA测试阶段不可能发现所有的Bug,很多问题需要等到系统上线试运行阶段才能发现。试运行部分有如下几步。

1.业务压力测试

业务第一次上线时,无法执行线上流量回放测试,此时,应用方往往会和OceanBase团队一起对业务进行一次压力测试。OceanBase测试人员首先将应用初始数据导入到一个模拟环境,应用方会选取几个经常使用的业务场景,对OceanBase系统进行压力测试。

2.线上流量回放

系统试运行之前,往往需要构造环境模拟线上请求。OceanBase测试人员会将线上环境的数据导入到一个模拟环境,并在模拟环境回放线上的读写请求。线上流量回放工具支持回放任意倍数的线上请求,从而发现各种问题,包括接口使用、性能、负载均衡等方面的问题。线上流量回放是OceanBase上线试运行的最后一道防线。

3.灰度上线

系统通过了所有的测试环节便可以上线试运行了,这个过程又称为灰度上线。

如果应用从别的数据库迁移到OceanBase,那么,灰度上线阶段会同时写两份数据,一份写到之前的系统,一份写到OceanBase,这个阶段应用方还会对两个系统的数据进行数据比对。如果没有问题,则将读流量逐步切入到OceanBase。

如果应用从OceanBase老版本升级到新版本,那么,灰度上线阶段会首先升级备集群到新版本,并将读流量逐步切入。如果没有发现问题,则将备集群切换为主集群,由新版本提供读写服务,最后再升级原先的主集群到新版本。备集群切换为主集群的风险较高,如果发现问题,需要立即切换回老版本。整个升级过程需要通过之前提到的兼容性测试模拟。