4.2.2灰度
灰度为变更提供一种快速低成本的试错机制,其具有多种不同层面的实现形式。一种典型的灰度机制,是提供一套完整而独立的测试环境,用于正式生产变更前的提前验证。另一种较为典型的灰度机制,为在生产环境分批次变更,通过细化控制变更的节奏和影响范围,实现小规模生产试错能力。
测试环境(SPE)
灰度测试环境的目的是隔离生产流量,减少风险影响,在环境内形成调用闭环,方便测试。测试环境灰度的时间点位一定要在上线生产之前。可引流内网全部流量和线上1%流量作为测试覆盖的基础。
生产灰度分批
这里列举三个常见的分批方式:簇内分批、簇间串行、簇间打散,每个层面中对应的灰度方式如下图所示:
图中的簇指的是可以继续拆分的逻辑组,包含但不限于单元、Region、机房、
Availability Zone、VPC、Cluster、分组、自定义逻辑区域等。
线上生产环境灰度变更建议包含以下要求:可分批、可控制分批间隔、可观测/可验证、可暂停/可回滚。
•可分批:指灰度方式必须至少满足灰度分批方式中的一项:簇内分批、簇间串行、簇间打散。确定好灰度方式后,至少需要2批进行发布。如果确实不具备灰度能力,建议提升审批申报层级。
•可控制间隔:指变更可对每批次的发布时间间隔进行控制。
•可观测:指变更系统每批次发完后,需要观测并验证本批次发布无问题后才能进行下一批次的发布。观测和验证的手段包括但不限于以下方式:在变更系统里至少记录一项核心反应健康状态的指标(业务监控项、日志文件名等)或记录double check人员或采用自动化观测等,并能通过对线上文件验证等方式确定已发布成功。
•可回滚:指灰度时需具备分批回滚、全量回滚的能力,回滚单要有变更记录并可追溯。