混沌工程,是一套通过在(准)生产环境,对IT架构和业务系统进行压力与故障模拟实验,主动曝露实验对象脆弱性的方法论,能有效地帮助探索和避免潜在的稳定性缺陷,检验和提升系统高可用性和容错性,提升故障响应修复效率,减小事故影响,从而打造更具弹性、更抗风险的系统,掌握系统运行时各种行为规律,持续提高技术团队的应急能力和抗压素养。
但是传统的混沌工程也有自身的缺陷。根据反脆弱性理论,IT组织的脆弱性来自于内部随机事件和外部压力事件,但现阶段混沌方案,只侧重于来自内部,面向架构的故障注入;而欠缺来自外部,面向业务的故障注入。同时由于历史原因,大部分混沌工程方案,并未形成跨架构的能力,在“软件定义一切”的大背景下,绝大多数的故障注入,又都会对IaaS,PaaS和SaaS产生影响。
一、“三位一体”超级混沌工程的提出
基于传统混沌工程的局限性,广州掌动智能科技有限公司首次提出“三位一体”超级混沌工程方案,即在原有混沌工程的基础上,增加了“业务级故障”注入能力和实验过程中实时“跨栈跟踪”能力,是一套IT系统稳定性和可靠性的保障方案。
二、何为“三位一体”?
1.混沌业务级故障注入
通过配置不同参数,组合不同业务报文,播放不同类型的业务交易,实现对被测对象的容量爆破,容错爆破,风险爆破。
2.混沌架构级故障注入
通过执行不同策略的故障脚本,实现对架构级、应用级的混沌爆破,主要以资源耗尽,错误配置,人工切换等方法,实现故障注入。
3.跨架构全栈观测能力
通过资产、指标(KPI/KQI)和业特征务(API/SQL/报文),实现基于性能异常方法的故障注入监控告警以及基于故障定位方法的故障爆炸半径测量
三、具备哪些主要能力?
1、业务级故障注入能力
●业务压力注入:无规律,瞬时随机的大规模业务并发,通过响应时间、办理成功率等数据,检测系统对尖峰流量的抗冲击能力,伸缩性以及自恢复能力
●业务错误注入:构建错误数据、错误流程、重复数据等场景,通过返回报文的正确性校验,检测系统对非正常数据的容错能力
●业务风险注入:构建业务敏感数据、攻击性数据等场景,通过对系统返回的报文进行校验,检测系统管对与风险业务的应对能力。
2、架构级故障注入能力
从“主机与网络”、“中间件”、“数据库”、“微服务”等层面对IT基础架构进行故障注入。平台内置117个原子故障用例,支持场景编排和私有故障脚本编排。同时平台内置70+实践场景库,可以帮助用户快速开展混沌工程实验。
3、跨架构全栈观测能力
支持对传统架构、虚机云、容器云进行细粒度指标的观测能力,主要表现在如下几个方面:
●丰富的TCP/UDP的会话指标:实时的分析全部或特定网卡的TCP/UDP会话,并可以将分析结果,以UDP封装JSON格式的数据,实时转发到外部的数据接收端;主要的通信指标包括,聚合后的四元组信息,MAC,VXLAN/GRE编号,以及全部标志位信息
●丰富的业务级监控指标:实时分析HTTP/URL/XML等会话和负载内容,并可以将其内容和主要指标,以UDP封装的JSON数据,实时转发到外部的数据接收端
●DB/SQL的指标和内容:实时分析SQL会话内容,并可以将其内容和主要指标,以UDP封装的JSON数据,实时转发到外部的数据接收端;支持的DB包括但不限于Oracle,MySQL,SQLserver等结构化数据库
●进程信息:如上三类功能,都可以与宿主机的进程相关联,通过分析进程的活跃程度(CPU/MEM用量),进一步定位业务安全风险
四、应用场景包含哪些?
1.判断微服务容错能力
通过模拟调用延迟、服务不可用、机器资源满载等,查看发生故障的节点或实例是否被自动隔离、停止执行、下线,流量调度是否正确,预案是否有效。
2.验证容器编排配置是否合理
通过模拟杀服务Pod、杀节点、增大Pod资源负载,观察系统服务可用性,验证副本配置、资源限制配置以及Pod下部署的容器是否合理。
3.验证监控告警的时效性
通过对系统注入故障,验证监控指标是否准确,监控维度是否完善,告警阈值是否合理,告警是否快速,告警接收人是否正确,通知渠道是否可用等,提升监控告警的准确性和时效性。
4.验证PaaS层是否健壮
通过模拟上层资源负载,验证调度系统的有效性;模拟依赖的分布式存储不可用,验证系统的容错能力;模拟调度节点不可用,测试调度任务是否自动迁移到可用节点;模拟主备节点故障,测试主备切换是否正常。
5.验证SaaS层应用是否健壮
通过对系统注入业务压力、业务错误故障、业务风险故障等,验证系统的对尖峰流量的抗冲击能力、伸缩性以及恢复能力是否符合预期,以及系统面对瞬时压力是,IaaS层和PaaS层的各种表现是否符合预期。
6.提升定位与解决问题的应急能力
通过故障突袭,随机对系统注入故障,考察相关人员对问题的应急能力,以及问题上报、处理流程是否合理,达到以战养战,锻炼人定位与解决问题的能力。
五、方案有什么优势?
1、架构级故障和业务级故障聚合爆破实验方案
●业务级全类型故障注入能力
通过不同的业务压力,量化IT架构的劣化趋势、通过业务错误故障用例,验证业务容错能力、通过注入安全风险样本,验证风险防护能力。
●故障演练场景多样化
自动化演练平台,丰富多样和持续拓展的故障演练场景库,包括了各种场景:常见的基础设施资源场景,应用级别的故障注入式场景,云原生领域的演练场景。
●数据支持赋能管理
数据赋能运维团队能力,深入挖掘复杂系统潜在风险,持续提升系统、资源、人员等各方面保障能力,可管、可控、可视化、可考核、可提升。
●混沌能力市场
打造共享、共赢的场景库生态, 积累专家实践经验,聚合专业服务, 并可量化贡献;提供上传及下载服务,后台审核与验证, 提供专业可靠安全保障。
●自定义脚本能力
提供支持自定义脚本底层故障注入的实现支持;提供完善故障注入的能力和效率。主机层/云原生层环境跨栈(跨架构)感知, 构建服务间调用链,实时显示服务间连接状态,对攻击中的故障注入点和故障是否排除实时动态可视化展示。
●领先双引擎驱动(chaos blade/chaos mesh)
chaos blade/chaos mesh将故障演练的环节分为多个节点,用户可以根据需要添加自己的流程节点。同时,灵活的流程编排支持一次演练包含多个场景,通过不同的策略配置来达到不同的故障注入效果。
●实验直播监看,全局演练沙盘
运维人员保障工作量化,并提供可视化直播与回放实时记录,运维人员的操作可细粒度操作记录。
●可扩展性支持
以插件方式提供支撑服务, 实现更多更好得扩展性;结合多方插件, 实现更多的实验场景覆盖。
2、跨架构全栈的观测能力
从传统架构,网络,到云IaaS,PaaS,再到SaaS业务级的Metrics和Tracing的可观测性能力;简单可靠,方法统一,对租户和业务无扰,对云网环境无压力。
3、经验丰富的一、二线实施团队
●一线实施团队,具备超大型混沌项目的实施经验,高效率、高安全性的工程实施方案;
●二线顾问团队,具备业界知名的技术背景,为用户制订专业的IT脆弱性监控与加固方案。
六、方案价值所在
1、主动暴露实验对象的脆弱性,赋予稳态系统赋予更多弹性特征。将风险事件实例化,并根据混沌工程的输出,完善系统应急措施,降低故障发生时爆炸影响,强化系统“自愈”能力
2、混沌变量反映了现实世界中的事件,从内部IT到业务错误事件的模拟注入,可以快速了解他们正在构建的服务是否健壮,是否可以弹性扩容,是否可以处理计划外的故障
3、沉淀通用的故障模式,以可控成本在线上重放,以持续性的演练和回归方式运营来暴露问题,不断推动系统、工具、流程、人员能力的不断前进
4、提前进行混沌工程,进行预警备案,提高事故预测和预警能力,有效降低事故率
5、采用自动化故障注入,追踪观测,节省人力资源,降低成本
如对“三位一体”超级混沌工程方案感兴趣,欢迎关注掌动智能官网了解。
(来源:新视线)