浅谈容灾测试
上一篇博客整理了关于灾难恢复的些许知识,这篇博客,主要内容是和灾难恢复息息相关的知识:容灾测试。
一、容灾的定义
1、定义
当各种灾难发生时,在保证生产系统的数据尽量少丢失的情况下,保持生产系统的业务不间断的运行。任何针对可能发生的灾难,提高系统可靠性和可用性的措施都可以称为容灾。
2、目的
在灾难发生时,减少数据丢失和计划外的宕机时间,保证业务平台可以连续性的正常运行。
3、容灾类型
①、硬件容灾
比如自然灾害、设备故障、人为破坏三种典型的灾难中任何一种灾难发生时,保证生产系统的数据尽可能的少丢失的情况下,保证生产系统的主业务不间断运行。
关注点:自然灾害、设备故障、人为破坏、意外断电等情况,大多数都是可以进行模拟测试。
②、数据容灾
指的是建立一个异地的数据备份和恢复系统,该系统是关键应用数据的一个实时复制和备份恢复中心。这也是几种类型中最重要的一种容灾措施。
③、应用容灾
在数据容灾的基础上,异地建立一套完整的与本地生产系统相同的备份应用系统,可以是互为备份。在在灾难发生的情况下,远程系统迅速接管并保证平台业务正常运行。
4、容灾建设示意图
二、容灾的区别
1、容灾与备份
一般而言,容灾指的是在不同机房的数据或者应用系统备份,备份指的是本地数据或者系统备份。
通常说的灾备是将容灾与备份结合起来描述,即本地结合远程数据复制,实现完善的数据保护。示意图如下,仅供参考:
2、容灾与容错
容错测试:主要检查系统或平台的容错能力, 检查软件在异常情况下是否具有自动恢复性的措施或者某种灾难性恢复手段,主要是自我恢复能力。
区别:容灾必须通过系统亢余、灾难检测和系统迁移等技术来实现。
3、容灾与灾难恢复
容灾:灾难发生时,保证生产系统的数据尽量少丢失的情况下,保持生产系统业务不间断的运行。
灾难恢复:灾难发生后,将系统恢复到正常运行的能力。
三、容灾的细节
1、容灾项目的特性
①、需求无法提前计划,所有容灾的设计都是在持续优化和测试过程中不断发现新的需求;
②、容灾测试点相互交错复杂,并行测试难度高,测试效率低;
③、项目测试环境依赖较多,复杂度高;
④、项目研发涉及到的业务场景覆盖广,涉及人员多,测试数据准备工作量大;
⑤、测试难度较其他普通业务项目要求高,需要同步根据日志定位所有的测试场景出现原因。
2、容灾测试遵循的标准
①、模拟极端错误发生,测试业务恢复功能和业务持续性流程;
②、发现平台潜在的隐患,确保出线突发情况时平台能够正常运行;
③、在极端流量冲击下,牺牲一小部分非主要业务功能或者一小部分用户体验,保障整体系统的稳定以及主要功能的正常运行(分流、服务降级);
④、进行测试时,需要同步分析日志(确认当前展示的结果是否是因为容灾测试用例生效而出现的)。
3、容灾测试的要点
①、核心原则:基于业务影响分析,全面提高IT系统的抗风险能力;
②、关注两个重要指标:RTO(恢复时间)和RPO(数据丢失量);
③、做好三件事:数据传输、业务切换、容灾演练和监控;
④、实现操作系统、文件、数据库、应用四项恢复。
PS:以上内容都是基于自己看过的资料整理的内容,更详细的资料和实践请自行查找相关资料。