3. 变更冻结闸口定义:什么是变更冻结、冻结窗口期、闸口触发条件

变更冻结闸口是蓝绿发布流程中最高优先级的风险控制机制。当系统进入冻结窗口期,所有非紧急变更必须停止,蓝绿发布流量切换操作被锁定,直到窗口期结束或紧急审批通过。本节从三个层次拆解闸口定义:变更冻结(What)、冻结窗口期(When)、闸口触发条件(How)。

3.1 变更冻结:概念与范围

变更冻结(Change Freeze)是指在特定时间段内,禁止对生产环境执行任何非紧急的配置修改、代码部署、基础设施变更或流量调度操作。冻结的目的是在关键业务窗口(如大促、财报季、重大节日)前锁定环境状态,降低因变更引入故障的风险。

维度 说明 示例
冻结对象 生产环境所有非紧急变更 应用发布、配置修改、数据库DDL、网络策略调整
例外通道 紧急修复(P0/P1故障)需特批 安全漏洞修复、核心链路阻断性故障
冻结范围 蓝绿集群、灰度环境、金丝雀集群 禁止流量切换、禁止新版本部署
冻结时长 由窗口期定义,通常为小时级到天级 双11前7天进入全量冻结
关键原则:变更冻结不是“停止所有操作”,而是“将变更风险收敛到零”。蓝绿发布在冻结期间,已部署的蓝/绿版本保持运行,但禁止切换流量、禁止滚动更新、禁止回滚操作(除非紧急审批)。

3.2 冻结窗口期:时间维度定义

冻结窗口期(Freeze Window)是变更冻结生效的时间区间。窗口期通常由业务日历、发布日历或风险事件驱动。在蓝绿发布场景中,窗口期直接决定了闸口的开关状态。

  • 固定窗口:按日历预定义,如每月最后3天、每季度末、重大节日前7天。适用于可预测的业务高峰。
  • 动态窗口:由监控指标或事件触发,如错误率突增、延迟飙升、依赖服务故障。适用于异常检测驱动的自动冻结。
  • 混合窗口:固定窗口 + 动态延长。例如:固定窗口为双11前7天,若期间出现P1故障,则自动延长24小时。
实践建议:冻结窗口期应至少覆盖“业务峰值前24小时 + 峰值期间 + 峰值后2小时”。蓝绿发布闸口在窗口期内默认关闭,任何流量切换操作必须经过“紧急变更审批委员会”电子签批。

3.3 闸口触发条件:自动化判定逻辑

闸口触发条件(Gate Trigger Condition)是自动化系统判断“是否进入冻结状态”的规则集合。在蓝绿发布流水线中,闸口通常部署在流量切换步骤之前,作为最后一道安全屏障。

变更冻结闸口触发条件判定流程 变更请求入闸 是否在 冻结窗口内? 闸口关闭 → 拒绝变更 闸口开放 → 允许变更 紧急审批 是否通过? 特批放行 拒绝 + 告警通知 说明:闸口判定在蓝绿发布流量切换前执行,支持自动冻结与人工紧急审批两种模式

3.4 闸口触发条件分类表

根据触发来源,闸口条件分为三类:时间条件、指标条件、事件条件。蓝绿发布闸口引擎会按优先级依次评估,任一条件满足即触发冻结。

条件类型 判定依据 典型阈值 冻结动作
时间条件 系统时钟 vs 冻结日历 当前时间 ∈ [2025-11-01 00:00, 2025-11-11 23:59] 自动关闭闸口,拒绝所有非紧急变更
指标条件 实时监控指标 vs 基线 错误率 > 1% 持续5分钟 或 P99延迟 > 500ms 自动触发冻结,锁定蓝绿流量切换
事件条件 外部事件或人工指令 P0故障告警、安全事件、合规冻结指令 强制关闭闸口,已进行的发布立即暂停
避坑提示:不要将闸口触发条件写死在代码中。应使用配置中心(如 Apollo、Nacos)动态管理冻结日历和指标阈值,避免因代码发布导致闸口逻辑无法热更新。蓝绿发布闸口本身应具备“熔断”能力——当配置中心不可用时,默认进入冻结状态(Fail-Close),而非开放状态(Fail-Open)。

3.5 闸口与蓝绿发布的集成点

在自动化蓝绿发布流水线中,变更冻结闸口通常部署在以下三个关键位置:

  1. 前置闸口(Pre-Gate):在构建镜像、生成版本号之前检查。若处于冻结窗口,直接阻断流水线启动。
  2. 切换闸口(Switch-Gate):在流量从蓝集群切向绿集群之前检查。这是最关键的闸口,防止在冻结期内误切流量。
  3. 回滚闸口(Rollback-Gate):在自动回滚触发前检查。若冻结窗口已开启,回滚操作需人工审批,避免回滚引入二次故障。
蓝绿发布流水线中的闸口集成位置 构建镜像 版本生成 前置闸口 部署绿集群 灰度验证 流量切换 蓝→绿 切换闸口 健康观测 自动回滚 回滚闸口 三个闸口独立判定,任一闸口触发冻结则流水线暂停并发送告警。切换闸口为最高优先级。 紧急审批通过后,闸口可临时开放,但审批记录必须归档审计。

3.6 闸口触发后的自动化动作

当闸口触发冻结时,自动化系统应执行以下标准动作序列,确保变更操作安全停止:

  • 阻断流水线:立即暂停当前正在执行的蓝绿发布步骤,标记为“冻结阻断”状态。
  • 发送告警:通过钉钉/企微/邮件/PagerDuty 通知变更负责人、SRE 值班人员、审批委员会。
  • 记录审计日志:将触发条件、触发时间、当前发布版本、冻结窗口信息写入审计数据库。
  • 锁定操作界面:在蓝绿发布控制台禁用“流量切换”、“回滚”、“继续发布”按钮,仅保留“查看日志”权限。
  • 启动计时器:若为动态窗口,启动自动解冻倒计时;若为固定窗口,等待窗口期结束。
自动化冻结检查清单:
✅ 闸口引擎每30秒轮询一次冻结日历和指标阈值
✅ 冻结状态变更时,通过 Webhook 通知下游系统(如监控、CMDB、发布平台)
✅ 紧急审批通道独立于普通变更流程,审批人必须为 SRE 总监或以上级别
✅ 每次冻结/解冻事件生成唯一事件ID,用于事后复盘和合规审计