想象你住的小区,物业突然宣布要搞一场联合消防演练。各楼栋长一脸茫然:“我们平时灭火器检查得好好的,为什么要演戏?”警报真的拉响后,浓烟从3号楼冒出来,你才发现:东门被装修垃圾堵了、物业对讲机频道乱成一团、1号楼的人冲到了2号楼找出口——平时各管各的,真出事全都傻了眼。 GameDay就是这个道理。它是大型技术团队定期组织的“故障消防演习”:在可控的测试环境里刻意给系统注入故障,让所有相关团队像真正发生事故一样响应、协同、恢复。目标不是把系统搞坏,而是让“没着火时觉得一切正常”的团队,在模拟灾难中暴露协作盲区,补齐预案、训练配合、缩短恢复时间。本文就用“小区联合消防演练”这条线,带你完整走一遍GameDay的组织、协同与复盘全流程。
对 AI 从业者的价值:掌握 GameDay 的设计与复盘方法,是 SRE、DevOps 与云架构师验证组织级应急能力、推动跨团队协作落地的核心技能,也是技术管理者在复杂系统中建立韧性文化的关键抓手。
可视化演示
展示GameDay组织流程、故障注入类型及跨团队协同响应的三模态交互动画。
本节配有交互动效(进入视口后自动加载,约 3KB)。
GameDay组织流程 规划 注入 MTTR=T_detect+T_fix 规划场景注入故障团队响应恢复服务复盘改进形成闭环
GameDay概念初识
小区物业每年都组织消防演练,但以前只是“走过场”:检查一下灭火器、让保安演示一次喷水,就算交差了。直到隔壁小区真的起火,物业经理发现自己的疏散预案里连“东门被装修垃圾堵住”这种基本问题都没考虑到。你才会明白:没有一次次逼真的演练,团队的应急能力就是纸面功夫。
GameDay 正是为解决这个问题而生。它是从混沌工程(Chaos Engineering)实践中演化出来的组织级演练活动:在受控条件下,主动向生产或预发环境注入真实故障,让多个团队像处置真实事故一样完成发现、上报、协同、恢复的全流程。它不是随机的破坏性测试,而是一套有剧本、有目标、有复盘的方法论。核心思想很简单:把“意外事故”变成“计划内演练”,把“本能反应”训练成“肌肉记忆”。
从 Netflix 的 Chaos Monkey 开始,混沌工程证明了“主动破坏”比“被动等待”更能暴露系统脆弱点。而 GameDay 把这项技术从单个服务扩展到了组织层面:不仅要验证系统能否扛住故障,更要验证“人”和“流程”能否扛住压力。衡量一次演练价值的关键,就是它的“准备度”——把该练的场景都练到了没有。
小区如果把“厨房火灾”“电动车充电起火”“楼道杂物起火”这几类场景都练过一遍,真起火时就不会手忙脚乱——这就是准备度的含义。GameDay 要做的事,就是让这个比值不断逼近 1。
- 分子已准备场景数:团队已经完整演练过的故障场景数量,比如“数据库主从切换”“缓存雪崩”。
- 分母需覆盖场景数:根据系统架构与历史事故梳理出的全部关键故障场景总数。
- 比值两者相除得到准备度,值越接近 1 表示应急能力越完善。
组织筹备流程
物业经理决定认认真真办一次联合消防演练。他没有直接拉警报,而是先做三件事:写清楚“这次要练什么”,约各楼栋长开会确认分工,再贴出通告让全小区知道“明天上午十点会拉警报,大家别慌”。这三步,恰好对应 GameDay 筹备的核心流程。
组织 GameDay 的第一步是明确目标:这次演练是要验证支付链路的降级预案,还是检验新上线的告警通道?目标越具体,演练越有效。第二步是编排故障场景:以历史事故和系统风险清单为依据,设计一个情节合理、难度可控的故障剧本。第三步是确定参与角色:谁是指挥、谁是响应者、谁是观察员、谁是决策审批人,必须提前约定。最后一步是发布演练通告——这也体现了“无指责文化”(Blameless Culture):提前告知大家这是演练而非真实事故,让大家敢于暴露问题,而不是忙于掩饰。
角色分工中有一个实用工具叫 RACI 矩阵:谁负责执行(Responsible)、谁最终拍板(Accountable)、需要咨询谁(Consulted)、需要告知谁(Informed)。在演练筹备期就把 RACI 画清楚,应急时就不会出现“三个人抢一个操作台、五个人都在等审批”的混乱。筹备是否到位的“参与率”可以用公式衡量:
就像消防演练时有人没来疏散、有人留守在家,演练数据就会失真。参与率是复盘时首先被审视的指标——如果连人都没到齐,演练结论就站不住脚。
- 分子实际到岗角色数:演练开始时,实际到达并参与的关键岗位人数,例如 SRE 值班、后端负责人、DBA。
- 分母应到岗角色数:按 RACI 矩阵规划好的、演练方案中明确要求参与的全部角色数。
- 比值参与率越高,演练越逼近真实事故场景,结果也越有参考价值。
故障注入设计
物业在楼道里放了两枚烟幕弹,而不是把整栋楼点了。他们会控制烟幕范围、定好时间,并告诉保安“只要看到明火就立刻灭火器上”。故障注入也是这个道理:在保证安全的前提下,用可控手段制造“真实的恐慌”。
故障注入的设计有四个关键决策点。第一是故障类型选择:网络延迟、磁盘写满、下游依赖超时、流量突增、进程被杀,不同故障暴露不同问题。第二是注入范围控制:可以只对 1% 的流量注入延迟,或只在一个可用区(可用区:同一机房内相互隔离的多个独立电力网络区域)内扣留部分实例,避免全局雪崩。第三是演练时间窗口:通常选在流量低谷且核心团队在岗的时段,比如工作日上午 10 点,而绝不在大促高峰自动执行。第四是熔断安全机制:每一次注入都必须有“一键回滚”方案——故障工具要内置最大持续时间与自动恢复逻辑,一旦指标越界立即停止注入。
这些设计本质上是“可控的破坏”。混沌工程里有个术语叫爆炸半径(Blast Radius),指一次故障可能影响的范围。好的 GameDay 会把爆炸半径缩到最小,再逐步放大。故障注入的“覆盖率”评估如下:
烟幕弹练的是“看见烟不慌张、按预案撤离”;只有把断电、堵门、暴雨全套都练过,才算真正覆盖了小区的风险清单。GameDay 的故障注入同样追求覆盖面,而不是“一次搞个大新闻”。
- 分子已注入故障模式数:本轮演练实际注入的故障种类,如“缓存集群重启”“数据库连接池耗尽”。
- 分母已知故障模式总数:从历史事故、压测和其他演练中总结出的所有潜在故障模式数量。
- 比值覆盖率用于评估演练的覆盖面,避免每次只练同一种故障,其他隐患长期得不到验证。
跨团队协同机制
疏散警报响起时,最大的风险不是火,而是“人挤人”。如果1号楼的人往2号楼跑、物业喊话和对讲机各说各的,秩序就会崩溃。所以物业提前做了三件事:设一个临时指挥点、规定所有人集中在小区广场统一听指令、给每栋楼指定一个楼长负责清点人数。
GameDay 的跨团队协同机制与此完全同构。第一,成立指挥中心(War Room):一个临时的线上/线下作战室,由总指挥统一掌握全局,所有重大决策都在这里拍板。第二,建立信息同步通道:所有团队在同一张状态页(Status Page)上更新进展,而不是在各自的小群里零散汇报;状态更新有统一模板,包含“当前影响范围、已采取动作、预计恢复时间”三要素。第三,按 RACI 分权与授权:值班工程师有权直接执行预设的降级操作,不必层层上报;只有超出预设权限的决策才需要升级到指挥中心。
衡量协同机制是否高效,不能只看“有没有群聊”,而要看信息从发现到同步给全体的平均延迟。用公式表示:
小区广场上的统一集结,让每个人都清楚“现在该怎么办”;GameDay 的指挥中心和状态页,就是数字世界里的“广场集合点”,让所有团队在同一幅作战地图上行动,而不是各自为战。
- 求和符号把 n 次关键信息的同步耗时全部累加,例如“支付团队发现异常到通知网关团队用了 3 分钟”。
- 平均除以信息条数 n,得到每次信息同步的平均耗时;这个值越小,说明团队间沟通链路越通畅。
- 整体含义如果同步延迟高,即使每个团队都在努力处理,整体响应也会被拖慢——就像喊话传不到后排,队伍必然乱套。
演练过程管控
警报拉响后,物业经理第一件事不是去灭火,而是拿出秒表,站在广场中央盯住三个数字:每栋楼的人什么时候到齐、疏散总共用了多久、是否有人被落下了。没有这些数字,演练就变成了一场闹剧——练完了什么结论也得不出。
GameDay 的过程管控同样是“边演练、边测量、边守边界”。实时状态追踪通过状态页或看板展示每个团队的当前状态:已确认(Seen)、处理中(Working)、已恢复(Recovered),所有变更都带时间戳。恢复时间度量是演练中最核心的客观数据,最经典的指标就是 MTTR(平均恢复时间,Mean Time To Repair):从故障发生到系统完全恢复的平均耗时。它能直观反映应急响应的速度,也是复盘时最有力的事实依据。演练安全边界则需要事先约定一组“熔断条件”:例如错误率超过 5%、核心链路不可用超过 15 分钟、或涉及用户数据安全时,演练立即中止并回滚。意外情况处置则考验组织者的临场判断——如果演练中出现了预设范围之外的故障,必须像处理真实事故一样严肃对待,必要时中止演练转入真实应急。
物业经理的秒表,记下的不是惩罚谁的数据,而是下一次演练要改进的方向。GameDay 中统计的 MTTR,同样不是为了“给团队打分”,而是为了持续缩短系统受伤后的“止血时间”。
- 每次恢复时间 T_i第 i 次故障从发生到恢复的总时长,包括发现、上报、定位、修复、验证五个环节。
- 求和与平均把所有 N 次故障的恢复时间加总后除以 N,得到平均恢复时间。
- MTTR 的意义MTTR 越低,说明组织整体的应急动作越快;但它是一个结果指标,要想改善还得从发现和定位环节入手。
复盘改进方法
傍晚,所有楼栋长坐在小区活动室里看白天的演练录像。物业经理没有指责“你怎么跑那么慢”,而是把时间线投在屏幕上:3 号楼的人 8 分钟才到场,是因为楼道堆了杂物;东门堵了 5 分钟,是因为装修车没提前挪走。“人没问题,流程有堵点。”散会时,每个人带走一张改进卡片,两周后再来验收。
这就是 GameDay 复盘的完整闭环。第一步是时间线复盘:把演练过程按分钟还原成一条时间线,标注每个团队的关键动作与信息同步点,找出“从故障发生到有人响应”之间的空白段。第二步是改进项追踪:每个问题都必须产出可执行的改进项,明确负责人、截止日期与验收标准,而不是停留在“下次注意”。第三步是沉淀故障手册(Runbook):把本次演练中验证有效的排查步骤、恢复命令、联络清单写入文档,让下一次面对类似故障时有据可依。第四步是持续迭代演练:GameDay 不是一次性活动,而是按季度或按重大变更定期举行的常态化机制;每轮演练的剧本都要根据上一轮的改进项更新,形成“演练→发现问题→修复→再演练”的飞轮。
改进是否真正落地,用“改进闭环率”来衡量:
消防演练后没有跟进的整改,等于白白受了一次惊吓。GameDay 复盘的终点不是“问题记录表”,而是“修复已上线、手册已更新、下次演练计划已排期”——这才能让系统的韧性在一次次演习中真实生长。
- 分子已闭环改进项:在约定周期内完成验收的改进项数量,例如“为数据库增加连接池上限告警”已上线并验证。
- 分母总改进项数:复盘会上由所有团队共同确认的全部改进项数量。
- 比值闭环率低于 80% 说明复盘流于形式,只有高闭环率才能保证每轮演练都让系统更健壮。
AI 应用场景
电商大促前全链路GameDay演练
阶段:系统上线前的韧性验证与风险管理
解决的问题:每年双十一前,电商平台都会担心支付、库存、物流链路在流量洪峰下崩溃。过去靠压测只能验证性能,无法验证“人”的协作:一旦真的告警轰炸,值班群往往会乱成一片。GameDay 通过预先编排“支付超时”“库存扣减失败”“消息积压”三大场景,让技术、产品、客服团队在演练中真实走一遍联合响应流程,确保大促当天各团队知道找谁、干什么、怎么升级。
具体案例:某头部电商平台在大促前两周执行 GameDay,注入支付网关 30% 请求超时。演练中发现客服团队比技术团队更早接到用户投诉,但缺少升级通道,导致故障确认延迟了 8 分钟。复盘后新增“客服→SRE 紧急热线”,MTTR 降低了 40%。
金融核心链路故障应急演练
阶段:监管合规驱动的容灾能力建设
解决的问题:金融行业对系统连续性有严格监管要求,单靠灾备切换文档无法确认真发生故障时团队能执行到位。GameDay 在不影响交易的前提下,对影子链路注入数据库主从延迟、网络分区等故障,验证应用层自动切换与手工兜底流程,同时留下可审计的演练报告,满足合规审查。
具体案例:一家股份制银行在核心系统切换演练中,观察到 DBA 团队习惯依赖图形化工具,但故障窗口内远程桌面不可用,导致切换动作停留在“命令不熟悉”状态。复盘后为 DBA 编写了纯命令行切换脚本并纳入 Runbook,二次演练时切换耗时从 25 分钟降到 6 分钟。
云平台故障演练产品化实践
阶段:混沌工程平台建设与产品化输出
解决的问题:大型云厂商要向客户承诺高可用 SLA,但客户往往对“万一故障了怎么办”没底。云厂商将 GameDay 能力产品化为“故障演练服务”,让客户在控制台上一键发起演练,系统自动编排故障注入、过程观测与复盘报告,将组织级演练能力由专家手工操作变成标准化产品。
具体案例:某云厂商在其 PaaS 平台上内置演练模板库,客户可以勾选“消息队列故障”“容器节点宕机”等场景,平台自动生成演练剧本、执行注入并输出包含 MTTR 与改进建议的演练报告,帮助客户建立常态化的自救能力。
Python 演示
import random class GameDaySimulator: def __init__(self, target_mttr=10): self.target_mttr = target_mttr self.round_list = [] def _gen_response(self, rng): return { 'detect': rng.uniform(0.5, 4.0), 'recover': rng.uniform(3.0, 13.0) } def run_round(self, teams, seed=None): rng = random.Random(seed) records = [] for team in teams: resp = self._gen_response(rng) records.append({ 'team': team, 'detect': round(resp['detect'], 1), 'recover': round(resp['recover'], 1) }) mttr = sum(rec['recover'] for rec in records) / len(records) ok = mttr <= self.target_mttr self.round_list.append({ 'records': records, 'mttr': mttr, 'ok': ok }) return records, mttr, ok def report(self): last = self.round_list[-1] lines = ['== GameDay 演练复盘 =='] lines.append('参与团队: ' + ', '.join(rec['team'] for rec in last['records'])) for rec in last['records']: lines.append('%s: 发现%.1fmin 恢复%.1fmin' % ( rec['team'], rec['detect'], rec['recover'])) lines.append('MTTR: %.1f min' % last['mttr']) lines.append('目标(%.1f min): %s' % ( self.target_mttr, '达成' if last['ok'] else '未达成')) return '\n'.join(lines) def main(): sim = GameDaySimulator(target_mttr=10) teams = ['网关', '订单', '支付', '库存', '消息'] records, mttr, ok = sim.run_round(teams, seed=42) print(sim.report()) print('本轮明细条数:', len(records)) if __name__ == '__main__': main()
class GameDaySimulator:定义演练模拟器类,封装目标 MTTR 与每轮演练记录。self.target_mttr = target_mttr设定本轮演练的恢复时间目标,后续用于判断是否达标。def run_round(self, teams, seed=None)执行一轮演练,seed固定随机种子让结果可复现。rng = random.Random(seed)用指定种子创建随机数生成器,保证每次运行结果一致。resp = self._gen_response(rng)为每个团队生成独立的发现时间和恢复时间。mttr = sum(...) / len(records)计算出本轮演练的整体平均恢复时间。ok = mttr <= self.target_mttr判断 MTTR 是否达标,相当于演练是否通过验收。self.round_list.append(...)保存每一轮演练数据,方便多轮迭代对比。lines.append(...)逐行构建复盘报告文本,模拟真实 GameDay 的复盘输出。if __name__ == '__main__':标准程序入口,直接运行即可看到演练复盘报告。
常见误区
误区GameDay 就是混沌工程工具随机杀进程,把系统弄挂,然后看团队手忙脚乱的样子。反正只是一场游戏,跑完数据就结束了。
正解GameDay 的核心目的从来不是“破坏”,而是“验证”。每一轮演练都有一份明确的剧本:要验证什么假设、涉及哪些团队、预期恢复时间是多少。故障注入只是手段,跨团队协同、预案有效性、度量体系才是被检验的对象。就像消防演练点烟幕弹不是为了看大家咳嗽,而是检验疏散路线是否畅通、楼长是否清楚自己的职责。
为何常见:混沌工程强调“主动注入故障”,初学者容易把手段当目的,忽略了 GameDay 背后完整的流程与组织目标。
误区好不容易组织一次 GameDay,应当把网络、存储、中间件、流量全都演练一遍,这样覆盖面越大越划算。
正解一次演练塞入太多故障,会导致问题交织在一起,无法定位哪个环节的响应拖慢了整体恢复;同时各团队精力被分散,很难对每个故障做深入演练。成熟的 GameDay 通常聚焦 1-2 个核心故障,做完复盘、改完问题,再进入下一轮。追求“覆盖率”应该通过多轮演聚集沙成塔,而不是一轮打包。
为何常见:把“演练次数少”解读为“单次要练够本”,忽略了演练质量与问题定位的清晰度比数量更重要。
误区演练结束后,大家一起看时间线,重点讨论“当时是谁没有及时升级”“是谁误判了故障”,并把责任落到个人绩效上。
正解GameDay 建立在无指责文化之上。复盘会的目标不是追责,而是识别系统中导致响应变慢的“结构性堵点”:缺少告警、文档过时、权限不足、沟通通道断裂等。个人在高压下的失误,往往是系统缺陷的投影。把注意力从“人”转移到“流程”,团队才愿意在演练中暴露真实短板,否则演练就变成了“表演”。
为何常见:日常工作中“出事了要找原因”的习惯被带入复盘,人们本能地想找到一个可以“背锅”的对象。
误区GameDay 是技术运维活动,让 SRE 和开发团队参与就行,客服、产品、运营甚至供应商都不需要知道。
正解真实故障的影响面远超技术团队:客服会接到大量用户反馈、产品需要评估功能降级方案、运营需要对外发布公告、上游供应商也会被波及。如果这些角色不在演练中,就无法验证“故障被发现后多久能传到客服”“对外公告由谁审批”等真实协作链路。GameDay 的“组织级”三个字,恰恰要求它跨越部门边界。
为何常见:人们在设计演练时沿用“技术问题只跟技术有关”的惯性思维,低估了故障响应的组织属性。
误区只要本轮演练所有团队都在目标时间内恢复、MTTR 达成,GameDay 就算圆满成功,可以松一口气了。
正解GameDay 的价值不在于“这次过了”,而在于暴露问题并推动改进。如果每轮演练都顺利通过,反而要警惕:场景是否太简单?团队是否对剧本过于熟悉导致“表演式”响应?真正成功的 GameDay 应产出有价值的改进项,哪怕 MTTR 未达标,只要明确了改进方向和责任人,就是一次有价值的演练。系统在演化,风险也在演化,演练必须保持常态化迭代。
为何常见:把演练当作“考试”而非“体检”,习惯用通过率来证明自己做得不错,忽视了韧性建设是一个持续改进的过程。
面试题
Q1. GameDay 最主要的目标是什么?
- A.验证系统能否抵御外部攻击
- B.在真实故障中演练应急协同← 正确答案
- C.定级各团队绩效好坏并追责
- D.用自动化压测替代日常监控
答案:B。GameDay 的核心目标是让团队在受控的模拟故障中演练真实的应急协同流程,从而暴露预案盲区。它不针对外部攻击,也不是绩效工具,更不替代监控。就像消防演练练的是疏散配合,而不是检查灭火器本身。
Q2. MTTR 衡量的是什么指标?
- A.从告警发出到确认收到的耗时
- B.从故障发生到完全恢复的耗时← 正确答案
- C.系统在单位时间内故障的次数
- D.系统可用性百分比的统计口径
答案:B。MTTR(平均恢复时间)衡量的是从故障发生到系统恢复整体的平均耗时,覆盖发现、定位、修复、验证全链路。它不等于告警确认时间,也不等于故障频率。就像消防演练中,MTTR 是“从拉警报到大伙全部撤到广场”的总时长,而不是保安接到电话的时间。
Q3. GameDay 与混沌工程之间是什么关系?
- A.GameDay 是混沌工程的一种活动形式← 正确答案
- B.混沌工程依赖 GameDay 发布故障通告
- C.两者是完全没有关联的独立体系
- D.混沌工程只适用于数据库故障演练
答案:A。GameDay 是混沌工程理念在组织级层面的落地形式:混沌工程提供故障注入的技术手段与理论,GameDay 将其包装成有剧本、有分工、有复盘的组织演练活动。混沌工程并不依赖 GameDay 发布通告,也不仅限于数据库场景。
Q4. 进行故障注入时,下列哪项做法是正确的?
- A.直接在生产环境大范围注入所有故障
- B.只注入已知且具备回滚方案的故障← 正确答案
- C.为了避免惊动团队应临时隐藏告警
- D.由业务侧临时决定注入的故障类型
答案:B。故障注入必须遵循可控、可回滚原则,选用的故障应提前评估影响并有明确的熔断与恢复预案。大范围无差别注入、隐藏告警、临时决定类型都违背了 GameDay 的安全边界要求。就像烟幕弹要放在可控的楼道,而不是把整栋楼都点着。
Q5. 演练中发现故障影响远超预期范围,首要动作是?
- A.继续观察并等待系统自行恢复
- B.立即停止注入并执行熔断恢复← 正确答案
- C.先召集所有团队开会讨论方案
- D.让注入工具自动重试故障多次
答案:B。演练中出现意外扩大是启动熔断机制的最强信号。安全边界与熔断条件必须在演练前约定好,一旦触发就立即回归安全状态。继续观察、开长会、重试注入都会延长不可控窗口。这如同消防演练中发现烟幕弹引发了小规模明火,第一反应必然是先灭火,而不是研究火势。
Q6. 下列哪些属于有效的跨团队协同机制?
- A.建立统一指挥中心协调全局← 正确答案
- B.各团队在私聊群中独立汇报
- C.按 RACI 矩阵明确角色职责← 正确答案
- D.为值班人员预设决策授权范围← 正确答案
答案:ACD。统一指挥中心、RACI 职责矩阵和预设的决策授权都是跨团队协同的关键机制,能让信息汇聚、职责清晰、决策高效。各团队私聊独立汇报会导致信息孤岛,属于典型的低效协同,因此 B 不正确。
Q7. 一场有效的 GameDay 复盘会应当包含哪些内容?
- A.确定责任人并对失误者通报批评
- B.按时间线还原完整的故障链路← 正确答案
- C.输出可追踪的改进项与负责人← 正确答案
- D.更新故障手册和应急预案文档← 正确答案
答案:BCD。复盘的核心是还原时间线、发现问题根因、输出改进项并沉淀文档,整个流程遵循无指责文化。追责批评会让人隐藏问题,违背复盘的初衷,因此 A 不正确。
Q8. 组织一次 GameDay 的第一步应该是什么?
- A.立刻向生产环境注入预设故障
- B.明确本次演练的目标和范围← 正确答案
- C.临时关闭所有告警排除干扰
- D.采购一套全新的监控告警系统
答案:B。先确定“要验证什么”是 GameDay 组织的起点,目标和范围决定了场景设计、参与角色与风险边界。直接注入故障、关告警、换监控系统都是失败的起手式。就像消防演练必须先确定练“疏散”还是练“灭火”,而不是先放烟。
Q9. 关于演练中信息同步通道的设计,下列哪项是最合理的?
- A.仅由指挥中心单向广播通知各团队
- B.每个团队各自更新状态互不干扰
- C.使用统一模板更新并统计同步延迟← 正确答案
- D.只依赖会议纪要保证信息一致性
答案:C。信息同步通道要求统一模板和可度量性:团队用固定三要素(影响范围、动作、预期恢复时间)更新状态,同步延迟被记录并纳入复盘指标,才能持续优化信息链路。单向广播缺乏反馈,各自更新形成孤岛,会议纪要则太慢,都不是高效机制。
Q10. 系统长期保持高可用稳定时,应该如何安排 GameDay?
- A.系统稳定就无需再安排故障演练
- B.保持每年一次固定剧本即可
- C.定期常态化并按重大变更动态调整← 正确答案
- D.只在出现生产事故后补做一次
答案:C。高可用状态恰恰可能掩盖隐性风险,GameDay 应该常态化进行,并根据架构变更、新业务上线和历史事故动态调整剧本。固定频率不更新剧本会变成走过场,完全不做或事后补救都失去了主动验证的意义。就像小区年年有消防演练,但每轮都会根据新装修、新住户调整预案。