银行核心背后的落地工程体系丨混沌测试的场景设计与实战演练
内容提要
本文介绍了TiDB分布式数据库在银行核心业务系统中进行混沌测试的场景设计和实践,以及使用Chaosd工具进行混沌测试的收益和实战举例。混沌测试可以确保系统在异常和故障时的稳定性和弹性,评估高可用和容灾能力,验证弹性和应急预案有效性,优化监控和告警机制,评估外围作业的影响。
延伸解读
混沌测试与普通测试的差异
混沌工程与普通测试在质量属性和实施方式上存在明显差异。混沌工程更侧重于系统的健壮性和面对异常时的响应能力,而普通测试则侧重于验证功能正确性和性能指标。在分布式架构下,这种差异尤为重要,因为系统复杂性指数级增长,需要混沌工程来保障生产稳定性。
压力测试的梯度设计
混沌测试中的压力注入建议按梯队逐层展开,从生产预估TPS到总设要求TPS,再到其N倍,直至满足业务时延下的最高压力和基础环境负载打满。这种设计有助于全面评估系统性能边界,同时兼顾测试成本,避免过度细分。
故障注入后的关键观察点
故障注入和恢复后,需要关注业务量、QPS、TPS的影响比例和持续时间,业务端到端时延变化,SQL时延变化,存活节点资源使用变化,集群负载均衡能力以及应用连接池重连能力。这些观察点有助于评估系统的高可用性和容灾能力。
监控告警的优化建议
混沌测试可检验监控告警的有效性。建议确保告警覆盖所有关键指标和组件,设置合理探测频率和适度冗余,以便根因可通过告警直接发现。同时,需考虑TiDB分布式数据库的特点,避免套用集中式数据库的告警思维,并以分类法梳理告警,确保覆盖面。
Q&A
混沌测试的主要目标是什么?
混沌测试的主要目标包括评估系统的高可用性、容灾能力、验证系统弹性、检验应急预案有效性,以及优化监控和告警机制。
TiDB数据库在银行核心系统中进行混沌测试的优势是什么?
TiDB数据库在银行核心系统中进行混沌测试的优势在于其分布式架构能够满足高性能和稳定性要求,确保系统在异常情况下的弹性和可靠性。
混沌测试如何帮助识别系统瓶颈?
混沌测试通过模拟各种故障和高负载场景,能够识别系统中的瓶颈点,从而为优化数据库配置和流量分发提供依据。
Chaosd工具在混沌测试中有什么作用?
Chaosd工具用于在物理机环境中注入故障,提供丰富的故障模拟类型,帮助用户在开发和生产环境中进行混沌测试。
混沌测试如何优化监控和告警机制?
混沌测试通过检验告警系统的有效性和准确性,确保告警能够及时、准确地发现故障,并对告警进行全面的优化。
混沌测试的场景设计应遵循什么原则?
混沌测试的场景设计应尽可能模拟真实的生产情况,推荐使用准生产环境或按照生产环境设计要求搭建1:1仿真测试环境。