混沌工程/混沌测试/云原生测试/云平台测试
背景
- 私有云/公有云/混合云等具有复杂,分布式,环境多样性等特点,许多特殊场景引发的线上问题很难被有效发现。所以需要引入混沌工程,建立对系统抵御生产环境中失控条件的能力以及信心,提高系统面对未知风险得能力。
目标
- 帮助测试/研发/运维工程师提前发现各种异常场景引发的问题;
- 持续进行故障演练,暴露系统问题,提升产研对质量的信心;
- 全场景,便捷的故障注入方式,使其与研发流程更紧密结合,发挥更大价值;
什么是混沌工程?
混沌工程是一种通过主动制造故障场景并根据系统在各种压力下的行为表现确定优化策略的系统稳定性保障手段。简单来说,混沌工程通过主动注入故障的方式,提前发现问题并解决问题,从而规避风险
混沌工程的核心概念
混沌工程的核心在于通过模拟生产环境中的各种极端情况,如硬件故障、网络延迟、资源耗尽等,来测试系统的稳定性和可靠性。通过这些实验,可以暴露系统中的薄弱环节,并采取措施进行优化。
原则
建立一个围绕稳定状态行为的假说
“稳定状态”是指系统正常运行时的状态。具体来说,系统的稳定状态可以通过一些指标来定义,当系统指标在测试完成后,无法快速恢复稳态要求,可以认为这个系统是不稳定的。
- 系统指标:CPU 负载、内存使用情况、网络 I/O等
- 业务指标:吞吐率,错误率,p99延迟,数据一致性,消息触达准确性,时效性等
因此需要建立稳定状态行为模型
复杂多变的系统运行环境
只要运行时间足够长,都会受到不可预测的事件和条件的影响。

基于这些情况:
- 需要建立业务系统的故障模型
故障分级
故障等级:P0,P1,P2
故障等级=故障发生概率*故障发生影响
在生产环境中运行实验
越接近生产环境,对实验结果的信心就越足。
持续自动化运行实验
系统不断变化,越来越复杂,手动执行,难以长久持续。需要通过自动化来降低实验成本,并定期执行。
- 固化典型混沌场景
- 自动化进行结果分析
- 降低创建新实验的门槛
怎么做:
- 混沌场景梳理
- 自动化工具&平台调研
最小化爆炸半径
暴露薄弱环节而不会意外造成更大规模的故障。
- 范围可控
- 随时停止实验并消除影响
步骤
- 选择一个假设
- 选择试验的范围
- 明确需要观察的 metric 指标
- 通知相关的团队
- 执行试验
- 分析结果
- 增大试验的范围
- 自动化
- 成熟度
复杂度

接受度

分产品混沌场景
梳理产品维度混沌场景,多用于多业务线合作的方式,开放自己的组件或基础服务时,需要先保障自己服务依赖的其他服务/系统/服务器得一些异常尽可能对自身造成最低的影响,以及当依赖服务/资源恢复时,自身可以主动进行服务恢复/数据同步/数据校验等
自动化平台方案
chaosblade
自研命令行工具自动化
企业内部演进

常见混沌场景
混沌异常场景来源于两类,梳理了常见异常,只做举例,大家参考
- 资源类
- 组件&服务类
资源类


组件&服务类

相关文章:
混沌工程/混沌测试/云原生测试/云平台测试
背景 私有云/公有云/混合云等具有复杂,分布式,环境多样性等特点,许多特殊场景引发的线上问题很难被有效发现。所以需要引入混沌工程,建立对系统抵御生产环境中失控条件的能力以及信心,提高系统面对未知风险得能力。 …...
研发设计数字化:PLM、PDM、ERP介绍及其区别
一、产品全生命周期管理的定义 1.1 产品全生命周期(PLM)发展背景 目前,数字化设计与制造的技术(如CAX、DFX等)已经在产品开发中得到广泛应用,而各种企业和产品管理软件(如ERP、SCM、PDM、CRM等…...
Python练习51
Python日常练习 题目: 调用函数fun判断一个三位数是否“水仙花数”。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。 说明: 所谓“水仙花数”是指一3位数,其各位数字立方和 等于该数本…...
Qt 前置课程 QtNFC
文章目录 详解 Qt NFC 模块(QtNFC)1. 什么是 NFC?2. NFC 的原理2.1 主动设备与被动设备2.2 三种工作模式2.3 数据交换 3. QtNFC 模块概述4. 使用 QtNFC 模块4.1 配置 .pro 文件 5. NFC 的常见应用场景6. QtNFC 模块的主要类6.1 QNearFieldMan…...
【论文阅读】 Learning to Upsample by Learning to Sample
论文结构目录 一、之前的上采样器二、DySample概述三、不同上采样器比较四、整体架构五、设计过程(1)初步设计(2)第一次修改(3)第二次修改(4)第三次修改 六、DySample四种变体七、复…...
堆排序(含证明)
引言 前面我们讲过堆的基本操作的实现,现在给定一个int类型的数组,里面存放的数据是无序的,我们如何利用堆的思想来实现数组内数据的升序排列或降序排列呢? 通过前面讲到的堆的实现,我们可以想到,我们再开…...
蓝桥杯模拟题不知名题目
题目:p是一个质数,但p是n的约数。将p称为是n的质因数。求2024最大质因数。 #include<iostream> #include<algorithm> using namespace std; bool fun(int x) {for(int i 2 ; i * i < x ; i){if(x % i 0)return false;}return true; } int main() …...
C#中的工厂模式
在C#中,工厂模式(Factory Pattern) 是一种常见的设计模式,它属于创建型模式,主要用于定义一个用于创建对象的接口,让子类决定实例化哪一个类。通过使用工厂模式,客户端代码不需要直接实例化具体…...
深度学习与持续学习:人工智能的未来与研究方向
文章目录 1. 持续学习与深度学习1.1 深度学习的局限1.2 持续学习的定义 2. 目标与心智2.1 奖励假说2.2 心智的构成 3. 对研究方法的建议3.1 日常写作记录3.2 中立对待流行趋势 1. 持续学习与深度学习 1.1 深度学习的局限 深度学习注重“瞬时学习”,如ChatGPT虽在语…...
OGRE 3D----4. OGRE和QML共享opengl上下文
在现代图形应用开发中,OGRE(Object-Oriented Graphics Rendering Engine)和QML(Qt Modeling Language)都是非常流行的工具。OGRE提供了强大的3D渲染能力,而QML则用于构建灵活的用户界面。在某些应用场景中,我们需要在同一个应用程序中同时使用OGRE和QML,并且共享OpenGL…...
【Umi】常用配置
具体见:alias 1. 基础配置 1)配置别名alias 2)配置sourcemap devtool 配置项 3)添加hash 4)图片转base64 inlineLimit 配置项 5)设置JS压缩方式 jsMinifier (webpack) 、jsMinifierOptions 配置项 6)设置umi插件 plugins 配置项 7)设置打包后资源导入的路…...
Windows加固脚本
echo off REM 清屏 cls title 安全策略设置批处理 color f0 echo **************************************** echo write by afei echo https://www.jianshu.com/u/ea4c85fbe8c7 echo **************************************** pause cls color 3f echo ********************…...
玩游戏常常出现vc++runtime library error R6025 这是什么意思,该怎么解决?
当玩游戏时常常出现“vc runtime library error R6025”错误,这通常表明微软C开发运行库组件存在问题。以下是对该错误及其解决方法的详细解释: 错误含义 “vc runtime library error R6025”是一个与Visual C运行时库相关的错误,该错误表明…...
AGX orin下电控制
AGX orin下电主要有两种,一种通过软件控制下电,另一种通过按键强制关机。下电流程和电脑关机流程类似。 AGX orin核心板与扩展板 AGX orin核心板由英伟达生产,不提供原理图,通过下图所示连接器与扩展板连接。 AGX orin扩展板&am…...
flutter 报错 error: unable to find git in your path.
项目issue:WIndows: "Unable to find git in your PATH." if terminal is not in admin mode Issue #123995 flutter/flutter 解决办法, 方法一:每次想要运行flutter的时候以管理员方式运行,比如以管理方式运行vsco…...
芯科科技率先支持Matter 1.4,推动智能家居迈向新高度
Matter 1.4引入核心增强功能、支持新设备类型,持续推进智能家居互联互通 近日,连接标准联盟(Connectivity Standard Alliance,CSA)发布了Matter 1.4标准版本。作为连接标准联盟的重要成员之一,以及Matter标…...
C语言数据相关知识:静态数据、越界与溢出
1、静态数组 在 C 语言中,数组一旦被定义后,占用的内存空间就是固定的,容量就是不可改变的,既不能在任何位置插入元素,也不能在任何位置删除元素,只能读取和修改元素,我们将这样的数组称为静态…...
文本分析之余弦相似度
余弦相似度(Cosine Similarity)是一种用于衡量两个非零向量之间相似度的指标,尤其常用于文本分析和自然语言处理领域。其核心思想是通过计算两个向量的夹角余弦值来评估它们的相似性。具体而言,余弦相似度的值范围从-1到1,其中1表示两个向量完全相同,0表示它们之间没有相…...
【VUE3】【Naive UI】<n-button> 标签
【VUE3】【Naive UI】<n-button> 标签 **type**- 定义按钮的类型,这会影响按钮的颜色和样式。**size**- 设置按钮的大小。**disabled**- 布尔值,控制按钮是否处于禁用状态。**loading**- 布尔值,表示按钮是否处于加载状…...
css使盒子在屏幕的地点固定
在 CSS 中,要将一个元素固定在页面的某个位置,可以使用 position: fixed 属性。以下是详细的代码示例和中文解释: <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta n…...
选吉他不踩坑:合板、单板、全单材质深度解析,新手看懂这篇就够
对于新手来说,挑选吉他时最容易被“合板”“单板”“全单”这些专业术语绕晕。其实,这三者的核心区别在于木材的构成方式,而木材直接决定了吉他的音色、手感以及使用寿命。今天我们就抛开品牌干扰,纯科普这三种材质的底层逻辑&…...
Ubuntu 20.04 LTS下FinalShell安装全攻略(附一键脚本及常见问题解决)
Ubuntu 20.04 LTS下FinalShell终极配置指南:从安装到高阶应用 为什么开发者需要FinalShell? 作为一名长期使用Ubuntu进行远程服务器管理的开发者,我深知一款优秀的SSH工具对工作效率的影响。FinalShell作为跨平台的国产SSH工具,…...
【FastAPI 2.0流式AI响应终极指南】:20年架构师亲授异步SSE/Chunked Transfer实战避坑清单
第一章:FastAPI 2.0流式AI响应面试概览在现代AI应用开发中,面试场景下的实时交互体验正成为关键评估维度。FastAPI 2.0 引入了对原生异步流式响应(StreamingResponse)的深度优化,支持 Server-Sent Events(S…...
别再只盯着GPS了!从手机导航到无人机测绘,聊聊SPP、DGPS、RTK、PPP这几种定位技术到底该怎么选?
定位技术实战指南:从厘米级精度到全球覆盖的智能决策 站在一片待测绘的工地上,无人机工程师小王正面临一个关键抉择——该为这批新设备配置哪种定位模块?RTK的厘米级精度令人心动,但架设基准站的成本让他犹豫;PPP技术号…...
本地Cookie导出终极指南:Get cookies.txt LOCALLY 安全使用教程
本地Cookie导出终极指南:Get cookies.txt LOCALLY 安全使用教程 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 你是否曾担心浏览器Coo…...
基于ZLMediaKit API的Java流媒体服务实战:从配置到核心功能封装
1. ZLMediaKit快速入门与环境搭建 第一次接触ZLMediaKit时,我被它的轻量级和高性能所吸引。作为一款开源的流媒体服务器,它支持RTSP、RTMP、HLS等多种协议,特别适合中小型视频项目的快速部署。记得当时为了测试性能,我在一台2核4G…...
5分钟解锁WeMod专业版:开源工具让你的游戏修改体验全面升级
5分钟解锁WeMod专业版:开源工具让你的游戏修改体验全面升级 【免费下载链接】Wemod-Patcher WeMod patcher allows you to get some WeMod Pro features absolutely free 项目地址: https://gitcode.com/gh_mirrors/we/Wemod-Patcher 还在为WeMod专业版的订阅…...
Git提交时Personal Access Token权限不足:如何正确配置workflow scope
1. 为什么Git提交会提示Personal Access Token权限不足? 最近在团队协作中遇到一个典型问题:当开发者尝试推送包含.github/workflows目录的代码到GitHub仓库时,系统突然报错refusing to allow a Personal Access Token to create or update w…...
Qwen3.5-35B-A3B-AWQ-4bit开源镜像实战:法律合同关键条款图示定位与文本提取
Qwen3.5-35B-A3B-AWQ-4bit开源镜像实战:法律合同关键条款图示定位与文本提取 1. 引言:当AI遇到法律合同 想象一下,你是一位法务人员,面前摆着一份长达50页的PDF合同。老板急着要你找出所有关于“违约责任”的条款,并…...
Sourcetrail实战:如何利用可视化分析加速大型C++项目代码理解
1. 为什么大型C项目需要可视化分析工具 接手一个百万行级别的C项目是什么体验?我第一次接触MariaDB源码时,面对层层嵌套的类继承、错综复杂的函数调用链,光是理清handler类的派生关系就花了整整两天。这种经历让我深刻意识到:传统…...
