版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(一)建设背景 1(二)建设目标 2 3(一)功能要求 3(二)适配性要求 7(三)集成要求 7 8(一)系统构成 8(二)技术架构 9(三)功能模块 10(四)故障种类 12 13(一)测试目标 13(二)测试内容 14(三)测试过程 15 271一、混沌测试平台背景与目标(一)建设背景随着数字化转型,金融行业加快了新一代架构转型的步伐,由传统的SOA架构向分布式架构、去中心化发展,当前还进阶到注重云化支持和异构化微服务支持的服务网格模式。系统规模日益庞大,交易链路长、数据流转复杂,微服务架构由于技术异构性、具备弹性伸缩、可扩展性等优势,得到广泛推广;同时微服务架构在使用过程中又面临诸多挑战,由于系统级依赖增多而带来的不确定性风险指数级增长;通过传统手段进行高可用验证、代码健壮性审查、加大测试范围、提高监控敏感度等手段,都无法有效发现系统潜在风险。在微服务架构下,系统的风险管理越来越重要,提高系统韧性成为必然发展趋势。微服务架构转型的驱动下,“混沌工程”实践可以通过规范化,流程化的方案对系统进行一定程度的“随机破坏”,让故障在可控范围内频繁发生,在此过程中可以深入地认知故障和系统,并达到持续改进的效果。混沌工程是通过向系统中引入软件或硬件的异常状态(扰动制造故障场景并根据系统在各种压力下的行为表现确定优化策略的一种系统稳定性保障手段。其原则是可量化的稳定状态、可反映真实场景,但风险未知的假设、影响最小化。混沌工程利用实验提前探知系统风险,通过架构优化和运维模式的改进来解决系统风险,真正提升系统架构韧性,增强故障免疫力。2混沌工程是在分布式系统上进行实验的学科,首次提出是在在SimainArmy项目中开源,SimianArmy成为首个开源的混沌工程工具集。2019年开始,国内企业纷纷引入并实践混沌工程。混沌工程通过主动向系统中引入软件或者硬件的异常状态(扰动制造故障场景并根据系统在各种压力下的行为表现确定优化策略。应用混沌工程可以对系统抵抗扰动并保持正常运作的能力进行校验和评估,还可以提前识别未知隐患并进行修复,进而保障系统更好地抵御生产环境中的失控条件。目前国内混沌工程领域主要集中在一些大型互联网企业,应用领域和范围较小,商业化程度不高。金融行业建行、兴业、中并开展混沌实验。例如,建信金科混沌工程故障演练平台应用于分布式平台相关组件,如应用路由、配置中心、分布式缓存、分布式消息、索引维护服务、分布式数据库等;在场景方面,建信金科在两地三中心多AZ故障、银行核心冲正交易异常时序、代收代付慢交易、应用路由服务治理、应用路由堵塞问题模拟等场1.业务目标为丰富微服务和分布式系统的故障测试手段,解决分布式系统故障高发且难以预测的问题,通过研发自动化水平高、通用性3好、易用性强的混沌工程测试平台,帮助金融机构提升开展混沌实验的效率,降低开展混沌实验的成本,不断提升分布式系统的稳定性和容错能力。在现有研究基础上,重点突破全类型故障模在金融行业不同业务场景开展示范应用,进一步推动混沌工程方法普及,促进软件产业健康发展。混沌实验是指在混沌工程测试平台上面向复杂系统开展故障模拟、故障编排、故障注入、状态监测和故障恢复等一系列操作的集合。2.技术目标研究故障编排引擎、深入底层的故障注入、有效控制最小爆炸半径等关键技术,在混沌测试平台上提供混沌实验设计、实验编排、故障注入、状态检查、监控告警、实验报告等功能,实现高度自动化和可视化的操作,做到故障对应用无侵入,减少组件依赖,构建完整的混沌工程闭环生态。二、混沌测试平台建设要求主要功能应包括混沌实验模块、故障模拟发压模块、可观测性模块、权限管理模块、专家库模块5大部分。混沌实验模块支持对待测底层设施物理机/虚拟机、容器进行管理;故障模拟发压模块支持对混沌实验的过程进行管理,同时还对演练过程混沌实验事件进行标注;可观测性模块支持对实验全过程的监测和分析;权限管理模块支持进行混沌实验人员管理。专家库模块支持4沉淀典型故障业务场景,提供平台人员使用产品的效率。各个功能模块具体如下描述:1.混沌实验模块混沌实验调度组件。该组件基于自定义资源对象CRD设计,可以用来创建、配置和管理多种类型的混沌实验,组件接收到混沌实验对象的创建、更新等事件后,获取到具体混沌实验的最新配置。在通过解析调度规则以及实验配置后,执行具体的混沌实验。使用该组件,用户可以通过YAML文件的方式自定义混沌实实现完全无侵入的故障注入,并且提供了很强的拓展性,用户可以直接在此组件上增加新的故障注入类型。故障注入组件。组件提供不同类型原子故障的注入和恢复功能,以DaemonSet方式运行在每一个物理节点上,在接受来自调度组件的故障注入请求后,按照故障请求的配置,修改具体容器的cgroup,或者进入具体Pod命名空间下,通过tc、iptables、ipset等工具干扰具体的网络资源对象。同时该组件使用eBPF提供了内核故障注入的能力。物理节点(虚拟机)编排引擎。该引擎提供多节点混沌实验编排的能力,用户将目标节点注册到该组件后,可以使用该引擎对已注册的节点执行各类故障注入。用户可以直接使用该引擎自定义混沌实验的步骤,配置检查程序等,并且提供复用已有的混沌实验场景能力。该引擎包含任务定义、任务调度、任务执行模5块,将基于KubernetesCRD事件机制和Golang语言开发,将每个可调度的物理节点和编排任务抽象为具体的CRD对象并使用Watch机制监控任务的具体变化,并实现特有的controller组件去处理具体的事件变化,并按照具体的配置解析成具体的任务交给任务执行模块,任务由入口任务和节点任务组成,入口任务会被最先调度,后根据入口任务内定义的子任务调度具体的节插件系统。不同应用由于环境不同会产生完全不同的故障场景,很难在一个平台中涵盖所有可能的故障。为了能够重复利用社区的力量,以及收集实现世界中可能出现的场景,插件系统提供了用户自定义故障类型能力。用户可以使用此插件系统来定制化自己的混沌故障类型,如RabbitMQChaos、TiDBChaos等。插件系统是整个混沌工程生态中关键部分,用户将自定义的插件提交到插件库,这样其他用户可以直接复用此插件,很大程度降低了用户使用混沌实验的成本,避免重复的工作。2.故障模拟发压模块故障模拟发压模块以命令行工具方式提供服务,用户可以在物理节点或者虚拟机节点上直接运行相关命令,该工具会根据提供的命令配置,解析成对应的故障规则,随后执行具体操作。使用该组件,用户可以方便的在单物理节点或者虚拟机节点上,CPU繁忙,内存压力等,同时提供历史查询,故障恢复等功能,6方便用户快速的实现故障的模拟。该故障工具基于Golang语言3.可观测性模块可观测性模块进一步降低简化混沌实验的步骤和提供对混沌实验的可观测性,让用户可以通过鼠标和填写简单的表单实现混沌实验和场景的设计,并且在可观测性模块上提供方便的混沌实验检查机制和完整的实验报告。整个可观测性模块包括独立混沌实验的定义,需要支持定义混沌实验范围,实验具体行为,并且支持暂停和恢复操作。可观测性模块还包含设计整个混沌实验场景,需要满足应用状态定义,展示应用监控信息,多个混沌实验场景的编排,以及告警规则设置和报告信息设置等。可观测性模块同时还提供服务监控和健康检查服务。在进行混沌实验过程中,首先需要确认系统的稳态,并且基于稳定状态提出假设。为了简化用户进行混沌实验操作步骤,本方案计划在混沌工程平台中提供定义应用系统稳定状态方式,支持用户在自定义任务通过HTTP状态接口或者访问健康系统的指标方式判断系统的稳定状态。具备的应用系统稳态的判断能力,标志着混沌系统平台具备了混沌工程操作闭环的能力。4.权限管理模块权限管理模块。混沌实验要求能够有效的控制最小爆炸,并且不同用户之间有一定的隔离,只有提供有效的安全保障,用户才能放心的开展自己的混沌实验。为了达到此目标,权限管理模7块构建自己的权限机制,用户可以根据混沌实验的范围分配实验人员和实验环境的权限,有效的控制混沌实验的范围和保障混沌实验的安全。同时用户可以使用此权限系统进行混沌实验人员管理,可以创建不同角色的实验人员,如可以分配至具有查看权限的观察者角色等。5.专家库模块专家故障库模块。可以编辑与展示录入实验过程中发现的问题,作为平台的知识积累;具有实验流程说明,可指导进行实验设置与执行演练计划。沉淀各种典型故障测试场景,用户在创建场景时可以直接导入故障场景,降低故障创建复杂度和提供产品使用效率。(二)适配性要求混沌测试平台运行环境应该运行在开放的软硬件平台之上,更加贴近国内客户生产环境需求,适配多种架构与类型分布式数据库,支持X86、C86、ARM硬件平台,支持Windows、统信、麒麟等软件平台。(三)集成要求混沌工程与被测系统、监控系统、上层应用、底层设施等模块的整体集成部署逻辑分为管控组件和执行组件,管控组件需要独立部署,支持集成部署在独立的物理环境和Kubernetes环境,执行组件需要部署在应用运行环境,并且与控制组件保持网络互通,测试人员只需要通过控制组件即可完成混沌实验。8三、混沌测试平台建设情况混沌测试平台各个模块之间通过一定的调用关系来完成每主要管理整个平台的用户权限;场景管理模块是整个故障演练的入口,串联起发压监控、混沌实验一系列故障演练的步骤;对于有价值的故障场景则可以通过推送沉淀到专家库,并开放给所有用户共享使用;实验报告模块为已结束的实验提供了可视化的聚合报告;环境管理模块则是发压监控的前置工作,用户可以在此上传压测脚本、被测环境以及发压插件,保证后续发压步骤的顺利执行。通过打造混沌测试平台,可以实现混沌实验与压测、监控的集成整合,通过专家库中的实际案例沉淀与调用,使混沌实验具备更好的操作性与可观测性,从而达到混沌实验能方便进行常态化全链路压测与监控的目的。整体系统构成情况如下图1所示:9混沌测试平台基于Kubernetes进行部署。主要包含管理系统、监控报表系统、JMeter发压系统、混沌实验系统和部署在待测系统中的故障注入执行介质和监控代理。其中,管理系统部署在物理机环境,监控报表系统、JMeter发压系统、混沌实验系统部署在k8s集群,故障注入执行介质和监控代理的部署方式则根据待测系统的不同而不同。平台技术架构如下图2所示:(三)功能模块实验报告、专家库五个核心功能模块。1.权限管理对平台的登录进行权限级别、环境使用、混沌实验各个维度的权限管理,大的不同程度的隔离。2.发压监控发压提供了整个故障演练过程的背景压力用以模拟真实生产环境的流量,监控则对整个发压过程中涉及的服务器资源、压力机资源、业务指标、系统指标、错误信息等各种指标进行实时的监控展示,同时还对演练过程中的混沌实验事件进行标注。3.混沌实验支持各种常见类型的故障,覆盖物理机/虚拟机、容器不同底层基础设施,同时利用实验编排可以自动定时实现故障的并行/串行/挂起模拟注入以及故障的自我恢复。通过编排的能力可以构造复杂的故障场景而非只能完成单一故障任务的模拟。以串行场景编排为例,可以在该场景的workflow中添加多个故障子任务,同时每个子任务又可以嵌套多层的子任务,从而能够更真实地模拟生产环境中遇到的故障。4.实验报告为整个故障演练过程提供了可视化的聚合报告,包含了压测的数据(TPS、响应时间、失败数等),监控数据(CPU、内存、IO、网络等),混沌实验数据(实验事件、执行事件、执行状态5.专家库用以沉淀各种高可用典型故障测试场景,用户在创建场景时可直接导入这些典型场景进行演练,降低了故障演练的难度同时提升了故障演练的效率。功能模块如下图3所示:(四)故障种类混沌工具支持虚拟机/K8s容器不同底层基础设施的故障模内核、HTTP、生命周期等多种故障类型。具体到每种故障类型,又包含了常见的磁盘读写、磁盘填充、杀死进程、CPU打满、网络延迟、网路丢包等典型故障。混沌工具支持的故障类型丰富,同时还可以借助混沌测试平台的实验编排功能,构建复杂的故障演练场景,满足模拟生产环境中真实复杂场景的需求。故障种类四、混沌平台测试方案与测试实践分布式数据库是重要的基础软件,数据库发生故障所引发的一系列的后果是无法想象的,对于分布式数据库而言,其故障有可能是多种情况组合下才发生,从而引发严重的生产事故。传统的高可用测试,很难对各种情况进行同时或不同排列组合的模拟,难以在测试中进行系统性验证。通过引入混沌测试的方式可以增强和补充整个分布式数据库系统的健壮性。根据分布式数据库产品架构和银行业务交易场景,混沌测试平台针对分布式数据库产品做以下故障验证测试:1.模拟分布式数据库计算和存储节点进程故障。2.模拟分布式数据库数据盘读写负载故障。3.模拟分布式数据库数据节点、控制节点、计算节点网络延迟丢包故障。4.模拟分布式数据库节点CPU和内存负载高故障。5.模拟分布式数据库系统负载高故障场景。6.模拟分布式数据库混合故障场景。故障演练平台通过触发预先设置的故障用例,在生产环境发生故障之前把问题暴露出来,分布式数据库产品尽可能提早地处理这类故障,再加上自动化、冗余、回滚策略,以及其他健壮性设计的最佳实践,分布式数据库产品
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《市场营销岗位介绍》课件
- 《创造创新方法概论》课件
- 护理服务全过程案例运用
- 《胃炎胃溃疡》课件
- 三年级上册科学教科版课件《天气预报是怎样制作出来的》
- 外贸合同范本(2篇)
- 《石油和天然气》课件
- 2024年辽宁省葫芦岛市公开招聘警务辅助人员(辅警)笔试必刷经典测试卷(2)含答案
- 2021年黑龙江省黑河市公开招聘警务辅助人员(辅警)笔试专项训练卷(1)含答案
- 2024-2025学年山东省济宁市梁山县人教版四年级上册期中考试数学试卷(原卷版)-A4
- 国家开放大学《计算机绘图(本)》章节测试参考答案
- 《生命 生命》课堂记录观察表
- 汽轮机安装工程工序流程图
- 新教科版五年级科学下册课件2.5给船装上动力
- 基坑安全监测~个人年终总结
- 手术质量与安全监测分析制度
- A9.安规设计规范
- 消防安全操作规程
- 衬里工业管道施工工艺标准
- 号间冷塔冷却三角组合及安装作业指导书
- 突发公共卫生事件处理流程图
评论
0/150
提交评论