从证券公司交易系统故障,来认识混沌工程

Connor 欧易app 2022-09-20 271 0

近期,多家券商交易系统接连出现不同程度的系统故障,不能显示实时行情,投资者陷入“买不了”、“卖不出”、“撤不了”的困局中,回顾事情发展:3月15日有投资者表示,有两家证券公司交易软件行情一度无法刷新显示,上述问题在当日上午持续十分钟左右,后来得到解决。

3月14日,有网友称“某证券系统买卖不了“,“一个小时都没有能解决故障”。还有网友称:“问了客服,说是深圳总部系统故障”。”

从证券公司交易系统故障,来认识混沌工程

随着金融行业的高速发展,业务需求不断激增、产品迭代速度越来越快,从而导致金融行业内的系统规模变得越来越大,传统的单体架构模式已无法满足金融行业当前业务的发展需求,分布式微服务架构正在越来越多地被应用到金融行业之中。同时,因为金融行业需要涉及到大量的资金交易,系统会涵盖到多数据中心、多活、灾备、容器、虚拟机等众多复杂的基础设施,系统间的交互会尤为的复杂,分布式架构技术的应用,增加了基础设施复杂交互的难度,使系统的运行增加了更多不确定性。

而传统的高可用测试方式,是通过经验来对系统的已知可能情况,注入特定故障来判断对系统的影响,这种测试方法属于给定条件下的变量输入验证,测试范围有限,对于复杂的分布式系统,很难测试真实生产中遇到的各种情况,因此传统高可用测试的方式越来越不适用于分布式系统的测试。

金融业务的特点对系统的稳定性、可用性、可靠性都有着极高的要求,那么如何保障金融行业内分布式系统的稳定性和可靠性?混沌工程可在一定程度上给出一定的解法。

混沌工程最早是由 Netflix 提出的新思维方式,是指通过受控的实验去观察分布式系统运行的过程。混沌工程是在分布式系统上进行实验的学科 , 旨在提升系统容错性,建立系统抵御生产环境中发生不可预知问题的信心。

混沌工程并不意味着”混乱”,它的实施过程涉及到系统、设施、场景、人员等各方面资源,必须是有原则,有序的,只有这样才能组织和协调各方资源来实现最终的目的。

1、建立一个围绕稳定状态行为的假说:关注系统的可测量输出,而不是系统的属性,吞吐量、容错率、延迟百分点都可能是表示稳态行为的指标,验证系统是否正常工作, 而不是试图验证如何工作

2、多样化真实世界的事件:混沌变量反映现实事件,通过潜在影响或估计频率来排定这些事件的优先级,考虑与硬件故障类似的事件, 任何能破坏稳态的事件都是混沌实验的一个潜在变量

3、持续自动化运行实验:手动运行实验是劳动密集型的, 最终是不可持续的,所以要实现实验自动化并持续运行,在系统中构建自动化的编排和分析

4、最小化爆炸半径:生产试验过程中,必不可少的会对线上系统造成影响,造成用户投诉,最小爆炸半径就是结合方案和目标,减少对用户的影响。爆炸半径越小,越容易得到控制,但是暴露问题会较少;爆炸半径越大,影响就越大,暴露的问题会更多,爆炸半径的选择与各阶段的目标以及实施能力是相匹配的。

展开全文

混沌工程作为发现系统潜在风险、提升应用系统弹性的重要手段,针对以分布式微服务架构为核心的金融行业交易系统,可以通过故障注入、可靠性演练等方式,让潜在的问题浮出水面,从而提升整个分布式系统的高可用能力,为提升金融行业IT系统的稳定性做更好的服务。

由分布式系统稳定性建设信通院标准主要贡献者主导,PerfMa混沌工程平台可为企业软件项目提供平台化易用、安全、丰富场景的故障演练能力,帮助企业发现分布式应用架构、庞大资源和业务子系统等导致的复杂故障问题,提升IT系统稳定性。

从证券公司交易系统故障,来认识混沌工程

平台功能主要包括演练计划、流程编排、安全执行、演练观测、演练报表、演练报告、专家场景、架构视图等功能;支持主机、Docker、Kubernetes等多种部署类型的故障演练。

场景丰富:

基于最佳实践,支持基础资源、JVM、容器化、中间件、K8S等多种演练场景

内置专家经验库,简化演练流程

演练过程中的系统指标直观展示

演练效果直接平台可见

安全防护:

内置保护策略,自动触发并终止演练,避免系统因演练而引发的预期外故障

演练编排:

提供级联演练编排能力

可进行串行或者并行演练

评论