混沌工程 了解

   参考:Linux内核调试技术——Fault-injection故障注入 - 代码先锋网

Chaos Engineering is the discipline of experimenting on a systemin order to build confidence in the system’s capability to withstand turbulent conditions in production.   

    混沌工程和其他方法之间的主要区别在于,混沌工程是一种生成新信息的实践,而故障注入是测试一种情况的一种特定方法。当

    混沌工程非常适合揭露生产系统中未知的弱点,但如果确定混沌工程实验会导致系统出现严重问题,那么运行该实验就没有任何意义。先解决这个弱点,然后回到混沌工程,它将发现你不了解的其他弱点,或者它会让你发现你的系统实际上是有弹性的。混沌工程的另一个基本要素是可用于确定系统当前状态的监控系统。

 可以从该书《混沌工程:Netflix 系统稳定性之道》中获取到

混沌工程 了解_第1张图片

混沌工程原则

混沌工程 了解_第2张图片

  混沌工程实验是混沌工程研究的核心工作,即混沌工程以实验为最小单元研究发现系统的稳定性缺陷,实验的一般流程是:实验设计、实验实施和结果分析。具体内容一般包括:实验需求和对象、实验可行性评估、观测指标设计、实验场景环境设计、实验工具平台框架选择、实验计划和沟通、实验执行及指标收集、环境清理与恢复、实验结果分析、问题追踪、自动化持续进行验证。

    当通过混沌工程发现了系统稳定性缺陷时,需要根据实际情况给出对应的解决方案,如果存在架构的缺陷,则需针对性得采用韧性设计对稳定性缺陷进行改进,其他如边界条件和极端情况未考虑或者编码错误的缺陷,若占比较高且反复出现,则需要评估是否需要在制度规范上对软件开发过程进行更好的管控。

业界混沌工程实践平台

业内的混沌工程平台一般由:用户界面、任务调度模块、故障注入、监控告警系统四个部分组成。

用户界面: 为实验平台提供混沌工程实验任务的编排和配置服务,使得用户方便管理各类混沌工程实验任务。当混沌工程实验开始后,用户可以通过任务进度条、服务器指标等展示图实时的查看实验进度和系统指标情况。当混沌工程实验结束后,用户可以看到最后的混沌工程实验报告。

任务调度模块: 该模块负责用户界面和故障注入之间的交互,核心功能是实现混沌工程任务的批量下发和调度。

故障注入: 故障注入负责接收任务调度模块下发的故障注入任务,实现相应的故障注入事件,并反馈故障注入任务的执行状态。

监控告警系统: 该系统负责记录和管理系统产生的所有数据,生成告警和相关统计并反馈给用户。

阿里提出一些通用的故障场景并按照IaaS层、PaaS层、SaaS层的角度绘制了故障画像。

混沌工程 了解_第3张图片

你可能感兴趣的:(测试框架,运维,集成测试)