Google 灾难恢复测试指南:保障系统可靠性的秘诀
灾难测试的科学方法与前期准备
在进行系统的灾难测试时,我们应将其视为一项科学实验。这就如同混沌原则与科学方法相呼应一样,因为宇宙本身就是一个大规模的分布式系统。当你心中有了想要进行灾难测试的系统后,还需将想法转化为可行的测试方案。
在谷歌,团队常向 DiRT 测试的资深人员咨询,以完善初始想法并将其打磨成实用的测试。测试应具有科学性,尽可能控制系统中的无关变量,明确针对系统的操作及其影响的测量方式。同时,要为测试结果提出假设,这有助于准确了解系统在故障场景下的行为,或发现意外情况。
确定测试内容也很关键。你要明确是在测试人类的应急响应、事件管理流程的执行情况,还是系统本身、复杂故障模式或自愈设计等。尽量一次只测试一个假设,避免同时测试自动化系统反应和人类反应。
测试时可同时注入多个故障,因为现实中单个看似无大碍的故障相互作用,可能导致严重的系统中断。当然,要设置好安全控制措施,明确如何停止测试以及预期系统的行为。
测试沟通与时间安排的要点
对系统施加压力测试其应对故障的能力时,要让值班工程师知晓测试情况。提前沟通能让你了解其他可能存在的问题,也便于区分系统自动缓解措施和值班工程师的操作。
沟通方面,除非有明确原因,否则应尽量多沟通。若测试目的是评估应急响应中的人为因素,适度的意外情况可能有帮助,但仍可提前告知测试可能发生的时间段,避免冲突并及时应对突发的真实事件。在测试前数周和数天,向相关方和可能受影响的团队发送提醒,以避免意外并提高大家对测试影响的警觉。
测试的时间选择和时长对测试效果影响巨大。测试时间过长可能导致面向外部
超级会员免费看
订阅专栏 解锁全文

98

被折叠的 条评论
为什么被折叠?



