当前位置: 首页 > news >正文

混沌工程/混沌测试/云原生测试/云平台测试

背景

  • 私有云/公有云/混合云等具有复杂,分布式,环境多样性等特点,许多特殊场景引发的线上问题很难被有效发现。所以需要引入混沌工程,建立对系统抵御生产环境中失控条件的能力以及信心,提高系统面对未知风险得能力。

目标

  • 帮助测试/研发/运维工程师提前发现各种异常场景引发的问题;
  • 持续进行故障演练,暴露系统问题,提升产研对质量的信心;
  • 全场景,便捷的故障注入方式,使其与研发流程更紧密结合,发挥更大价值;

什么是混沌工程?

混沌工程是一种通过主动制造故障场景并根据系统在各种压力下的行为表现确定优化策略的系统稳定性保障手段。简单来说,混沌工程通过主动注入故障的方式,提前发现问题并解决问题,从而规避风险

混沌工程的核心概念

混沌工程的核心在于通过模拟生产环境中的各种极端情况,如硬件故障、网络延迟、资源耗尽等,来测试系统的稳定性和可靠性。通过这些实验,可以暴露系统中的薄弱环节,并采取措施进行优化。

原则

建立一个围绕稳定状态行为的假说

“稳定状态”是指系统正常运行时的状态。具体来说,系统的稳定状态可以通过一些指标来定义,当系统指标在测试完成后,无法快速恢复稳态要求,可以认为这个系统是不稳定的。

  • 系统指标:CPU 负载、内存使用情况、网络 I/O等
  • 业务指标:吞吐率,错误率,p99延迟,数据一致性,消息触达准确性,时效性等
    因此需要建立稳定状态行为模型

复杂多变的系统运行环境

只要运行时间足够长,都会受到不可预测的事件和条件的影响。
在这里插入图片描述

基于这些情况:

  • 需要建立业务系统的故障模型

故障分级

故障等级:P0,P1,P2
故障等级=故障发生概率*故障发生影响
在生产环境中运行实验
越接近生产环境,对实验结果的信心就越足。

持续自动化运行实验

系统不断变化,越来越复杂,手动执行,难以长久持续。需要通过自动化来降低实验成本,并定期执行。

  • 固化典型混沌场景
  • 自动化进行结果分析
  • 降低创建新实验的门槛

怎么做:

  • 混沌场景梳理
  • 自动化工具&平台调研

最小化爆炸半径

暴露薄弱环节而不会意外造成更大规模的故障。

  • 范围可控
  • 随时停止实验并消除影响

步骤

  1. 选择一个假设
  2. 选择试验的范围
  3. 明确需要观察的 metric 指标
  4. 通知相关的团队
  5. 执行试验
  6. 分析结果
  7. 增大试验的范围
  8. 自动化
  9. 成熟度

复杂度

暂时无法在飞书文档外展示此内容

接受度

在这里插入图片描述

分产品混沌场景

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

自动化平台方案

chaosblade
自研命令行工具自动化

企业内部演进

在这里插入图片描述

常见混沌场景

混沌异常场景来源于两类,梳理了常见异常,只做举例,大家参考

  • 资源类
  • 组件&服务类

资源类

在这里插入图片描述
在这里插入图片描述

组件&服务类

在这里插入图片描述

相关文章:

混沌工程/混沌测试/云原生测试/云平台测试

背景 私有云/公有云/混合云等具有复杂,分布式,环境多样性等特点,许多特殊场景引发的线上问题很难被有效发现。所以需要引入混沌工程,建立对系统抵御生产环境中失控条件的能力以及信心,提高系统面对未知风险得能力。 …...

CQ 社区版 2024.11 | 新增“审批人组”概念、可通过SQL模式自定义审计图表……

CloudQuery 社区 11 月新版本来啦!本月版本依旧是 CUG(CloudQuery 用户组)尝鲜版的更新。 针对审计模块增加了 SQL 模式自定义审计图表;在流程模块引入了“审批人组”概念。此外,在 SQL 编辑器、连接管理等模块都涉及…...

【maven-4】IDEA 配置本地 Maven 及如何使用 Maven 创建 Java 工程

IntelliJ IDEA(以下简称 IDEA)是一款功能强大的集成开发环境,广泛应用于 Java 开发。下面将详细介绍如何在 IDEA 中配置本地 Maven,并创建一个 Maven Java 工程,快速上手并高效使用 Maven 进行 Java 开发。 1. Maven …...

c语言结构体

c语言结构体 1. 结构体的定义 在C语言中,结构体是一种用户自定义的数据类型,它允许你将不同类型的数据组合成一个单一的实体。结构体的定义以struct关键字开头,后面跟着结构体标签(可以省略,但为了方便后续引用&#…...

洛谷二分题

P1024 [NOIP2001 提高组] 一元三次方程求解 题目描述 有形如:𝑎𝑥3𝑏𝑥2𝑐𝑥𝑑0ax3bx2cxd0 这样的一个一元三次方程。给出该方程中各项的系数(𝑎,&#x1d44…...

vue3的项目目录和关键文件

注意换插件 vue2的是 Vetur ;vue3的是volar 这里注意volar插件已更名为Vue - Official vite.config.js 放跟vite配置相关的内容 区别于vue2;vue2是vue.config.js;vue2是基于webpack的,vue3是基于vite的 main.js import { creat…...

rabbitmq原理及命令

目录 一、RabbitMQ原理1、交换机(Exchange)fanoutdirecttopicheaders(很少用到) 2、队列Queue3、Virtual Hosts4、基础对象 二、RabbitMQ的一些基本操作:1、用户管理2、用户角色3、vhost4、开启web管理接口5、批量删除队列 一、Ra…...

洛谷 P1308 [NOIP2011 普及组] 统计单词数 C语言

题目: https://www.luogu.com.cn/problem/P1308 复制Markdown 展开 题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。 现在,请你编程实现…...

vue基础之5:vue数据代理、事件处理、事件修饰符、键盘事件

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…...

RK3568平台开发系列讲解(PWM篇)sysyfs 操作 pwm 原理讲解

🚀返回专栏总目录 文章目录 一、高精度定时器介绍沉淀、分享、成长,让自己和他人都能有所收获!😄 📢使用 sysfs 和内核 API 函数对硬件 PWM 进行控制, 而当硬件 PWM 不够用的时候, 可以使用 GPIO 来模拟实现 PWM, 也可以称之为软件 PWM, 软件 PWM 是通过软件编程实…...

python 练习题

目录 1,输入三个整数,按升序输出 2,输入年份及1-12月份,判断月份属于大月,小月,闰月,平月,并输出本月天数 3,输入一个整数,显示其所有是素数因子 4&#…...

SprinBoot整合KafKa的使用(详解)

前言 1. 高吞吐量(High Throughput) Kafka 设计的一个核心特性是高吞吐量。它能够每秒处理百万级别的消息,适合需要高频次、低延迟消息传递的场景。即使在大规模分布式环境下,它也能保持很高的吞吐量和性能,支持低延…...

CSS学习记录03

CSS背景 CSS 背景属性用于定义元素的背景效果。 CSS background-color background-color属性指定元素的背景色。 页面的背景色设置如下: body {background-color: lightblue; } 通过CSS,颜色通常由以下方式指定: 有效的颜色名称-比如“…...

在Java中使用Apache POI导入导出Excel(二)

本文将继续介绍POI的使用,上接在Java中使用Apache POI导入导出Excel(一) 使用Apache POI组件操作Excel(二) 14、读取和重写工作簿 try (InputStream inp new FileInputStream("workbook.xls")) { //Inpu…...

Vue3学习宝典

1.ref函数调用的方式生成响应式数据&#xff0c;可以传复杂和简单数据类型 <script setup> // reactive接收一个对象类型的数据 import { reactive } from vue;// ref用函数调用的方式生成响应式数据&#xff0c;可以传复杂和简单数据类型 import { ref } from vue // 简…...

Unity开发FPS游戏之完结篇

这个系列的前几篇文章介绍了如何从头开始用Unity开发一个FPS游戏&#xff0c;感兴趣的朋友可以回顾一下。这个系列的文章如下&#xff1a; Unity开发一个FPS游戏_unity 模仿开发fps 游戏-CSDN博客 Unity开发一个FPS游戏之二_unity 模仿开发fps 游戏-CSDN博客 Unity开发一个F…...

基于BM1684的AI边缘服务器-模型转换,大模型一体机(二)

目标追踪 注&#xff1a;所有模型转换都是在docker环境中的 先进入docker 这里我们是要在docker环境里编译的&#xff0c;所以先进入docker :~/tpu-nntc# docker run -v $PWD/:/workspace -it sophgo/tpuc_dev:latest初始化环境 root2bb02a2e27d5:/workspace/tpu-nntc# s…...

IDEA连接Apifox客户端

IDEA连接Apifox客户端 一、下载Apifox安装包二、IDEA配置三、配置Apifox和IDEA项目同步 一、下载Apifox安装包 Apifox官网&#xff0c;根据自己的操作系统下载对应的Apifox安装包&#xff0c;我是windows系统所以下载的是windows版。 下载 默认仅为我安装&#xff0c;点击下一…...

vue中引用svg图标

要在 Vue 项目中引用 SVG 图标&#xff0c;有几种常见的方法。这里我将介绍两种方法&#xff1a;一种是直接在组件中内联 SVG 代码&#xff0c;另一种是将 SVG 作为单独的文件引用。 方法一&#xff1a;内联 SVG 代码 你可以直接在 Vue 组件的模板中嵌入 SVG 代码。这种方法适…...

【Laravel】模型封装属性基础

文章目录 概要什么是封装模型属性&#xff1f;使用访问器和修改器封装属性访问器&#xff08;Accessor&#xff09;修改器&#xff08;Mutator&#xff09;测试业务实现 运行结果小结 概要 随着项目规模的扩大&#xff0c;模型中的属性和方法可能会变得越来越复杂&#xff0c;这…...

【ROS编译未来时间戳报错修正】一种无需重零编译的文件时间戳更新方法分享

问题描述 无论在ROS1还是ROS2使用catkin_make或者colcon build指令后&#xff0c;有时候会出现文件时间戳的问题&#xff0c;通常报错的内容大致如下文件的修改时间在未来XX秒后&#xff0c;警告&#xff1a;检测到时钟错误。您的构建版本可能是不完整的。 解决方法 不完美的…...

tauri使用github action打包编译多个平台arm架构和inter架构包踩坑记录

这些error的坑&#xff0c;肯定是很多人不想看到的&#xff0c;我的开源软件PakePlus是使用tauri开发的&#xff0c;PakePlus是一个界面化将任何网站打包为轻量级跨平台软件的程序&#xff0c;利用Tauri轻松构建轻量级多端桌面应用和多端手机应用&#xff0c;为了实现发布的时候…...

事务常见分类

目录 1.扁平事务 2.带有保存点的扁平事务 3.链事务 4.嵌套事务 5.分布式事务 从事务理论的角度来看&#xff0c;可以把事务分为以下几种类型&#xff1a; 扁平事务&#xff08;Flat Transactions&#xff09; 带有保存点的扁平事务&#xff08;Flat Transactions with Sa…...

深度学习案例:ResNet50模型+SE-Net

本文为为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 一 回顾ResNet模型 ResNet&#xff0c;即残差网络&#xff0c;是由微软研究院的Kaiming He及其合作者于2015年提出的一种深度卷积神经网络架构。该网络架构的核心创新在于引入了“残差连接”&…...

第三方Cookie的消亡与Google服务器端标记的崛起

随着互联网用户对隐私保护的关注日益增强&#xff0c;各大浏览器正在逐步淘汰第三方Cookie。这一变革深刻影响了广告商和数字营销人员的用户跟踪和数据分析方式。然而&#xff0c;Google推出的服务器端标记技术为这一挑战提供了新的解决方案。 什么是第三方Cookie&#xff1f; …...

arkTS:使用ArkUI实现用户信息的持久化管理与自动填充(PersistentStorage)

arkUI&#xff1a;使用ArkUI实现用户信息的持久化管理与自动填充&#xff08;PersistentStorage&#xff09; 1 主要内容说明2 例子2.1 登录页2.1.1登陆页的相关说明2.1.1.1 持久化存储的初始化2.1.1.2 输入框2.1.1.3 记住密码选项2.1.1.4 登录按钮的逻辑2.1.1.5 注册跳转 2.1.…...

01-Zabbix监控快速入门

01-Zabbix监控快速入门 1、监控知识基本概述1.1 什么是监控1.2 为何需要监控1.3 如何进行监控 2、单机时代如何监控2.1 监控CPU2.2 监控内存2.3 监控磁盘2.4 监控⽹络2.5 监控TCP2.6 监控脚本示例 3、常⻅的监控⽅案3.1 Cacti3.2 Nagios3.3 Zabbix3.4 Prometheus3.5 商业监控⽅…...

docker 怎么启动nginx

在Docker中启动Nginx容器是一个简单的过程。以下是启动Nginx容器的步骤&#xff1a; 拉取Nginx镜像&#xff1a; 首先&#xff0c;你需要从Docker Hub拉取Nginx的官方镜像。使用以下命令&#xff1a; docker pull nginx运行Nginx容器&#xff1a; 使用docker run命令来启动一个…...

1-1 Gerrit实用指南

注&#xff1a;学习gerrit需要拥有git相关知识&#xff0c;如果没有学习过git请先回顾git相关知识点 黑马程序员git教程 一小时学会git git参考博客 git 实操博客 1.0 定义 Gerrit 是一个基于 Web 的代码审查系统&#xff0c;它使用 Git 作为底层版本控制系统。Gerrit 的主要功…...

数据库深入(学习笔记)

多表查询 概述&#xff1a; 多表查询&#xff1a;指从多张表中查询数据笛卡尔积&#xff1a;笛卡尔积是指在数学中&#xff0c;两个集合(A集合&#xff0c;B集合)的所有组合情况。 分类&#xff1a; 连接查询 内连接&#xff1a;相当于查询A、B交集部分数据 隐式内连接:sele…...

PostgreSQL17.x创建数据库及数据库信息查看命令

PostgreSQL17.x创建数据库及数据库信息查看命令 文章目录 PostgreSQL17.x创建数据库及数据库信息查看命令1.创建数据库1. 使用 SQL 命令创建数据库2. 创建数据库并指定字符集3. 验证数据库是否创建成功3. 远程连接1. 修改 PostgreSQL 配置文件2. 修改客户端认证配置4. 指定某个…...

Canal mysql数据库同步到es

Canal与Elasticsearch集成指南 [可视化工具](https://knife.blog.csdn.net/article/details/126348055)下载Canal 1.1.5版本 (alpha-2) 请从GitHub Releases下载Canal 1.1.5版本中间版本alpha-2。仅需下载canal.deployer和canal.adapter组件。 安装Elasticsearch 确保已安装…...

React 前端框架1

一、React 简介 &#xff08;一&#xff09;什么是 React React 是一个用于构建用户界面的 JavaScript 库&#xff0c;由 Facebook 开源并维护。它采用了组件化的开发思想&#xff0c;允许开发者将复杂的 UI 拆分成一个个独立、可复用的小组件&#xff0c;就如同搭积木一般&am…...

什么是Batch Normalization?

一、概念 Batch Normalization是在2015年提出的数据归一化方法&#xff0c;主要用在深度神经网络中激活层之前。它的主要作用是加快模型训练时的收敛速度&#xff0c;使模型训练过程更加稳定&#xff0c;避免梯度爆炸或消失&#xff0c;并起到一定的正则化作用&#xff0c;有时…...

rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable

解决方法&#xff1a; 1、先测量pcf8563电源电压&#xff0c;是否满足要求。 2、pcf8563首次操作。第一次读取pcf8563的时间&#xff0c;未初始化&#xff0c;非法&#xff0c;芯片门槛电压检测配置不合理。使用hwclock命令写入一次&#xff0c;即可解决。 hwclock -f /dev/…...

tauri下的两个常用rust web框架:Leptos和Trunk

tauri下有两个常用rust web框架&#xff0c;就是Leptos和Trunk Leptos Leptos 是一个基于 Rust 的 Web 框架。您可以在他们的官方网站上了解更多关于 Leptos 的信息。本指南适用于 Leptos 的 0.6 版本。 Leptos Leptos 是一个用 Rust 编写的现代、高效且安全的 Web 框架。它…...

vscode + conda + qt联合开发

安装vscode 安装conda 清华大学开源软件镜像(Anaconda下载)_清华大学镜像-CSDN博客 conda create新建一个环境&#xff0c;激活这个环境&#xff0c;然后安装pyside6 pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simple 安装成功后输入 pip list查看是否安装…...

mac终端自定义命令打开vscode

1.打开终端配置文件 open -e ~/.bash_profile终端安装了zsh&#xff0c;那么配置文件是.zshrc&#xff08;打开zsh配置&#xff0c;这里举&#x1f330;使用zsh&#xff09; sudo open -e ~/.zshrc 2.在zshrc配置文件中添加新的脚本&#xff08;这里的code就是快捷命令可以进…...

关于单片机的原理与应用!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///目前正在学习C&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于单片…...

【手术显微镜】市场高度集中,由于高端手术显微镜的制造技术主要掌握于欧美企业

摘要 HengCe (恒策咨询&#xff09;是全球知名的大型咨询机构&#xff0c;长期专注于各行业细分市场的调研。行业层面&#xff0c;重点关注可能存在“卡脖子”的高科技细分领域。企业层面&#xff0c;重点关注在国际和国内市场在规模和技术等层面具有代表性的企业&#xff0c;…...

速盾高防cdn支持移动端独立缓存

随着移动互联网的快速发展&#xff0c;移动端网页访问量也越来越大。然而&#xff0c;移动端的网络环境相对不稳定&#xff0c;用户体验可能会受到影响。因此&#xff0c;使用高防CDN来加速移动端网页访问&#xff0c;成为越来越多网站运营者的首选。 速盾高防CDN是一种分布式…...

java中的运算符

大家好&#xff0c;今天来看看java中运算符的一些知识点&#xff0c;理解好运算符是我们在写代码的一大重点&#xff0c;那么我们就来看看吧。 运算符:对操作数进行操作时的符号.,不同运算筹操作的含义不同. 一、算术算片. 1、基本四则运算符:加减乘除模(一*/%) 注意:都是二元…...

视频流媒体服务解决方案之Liveweb视频汇聚平台

一&#xff0c;Liveweb视频汇聚平台简介: LiveWeb是深圳市好游科技有限公司开发的一套综合视频汇聚管理平台&#xff0c;可提供多协议&#xff08;RTSP/RTMP/GB28181/海康Ehome/大华&#xff0c;海康SDK等&#xff09;的视频设备接入&#xff0c;支持GB/T28181上下级联&#xf…...

什么是六边形图?

什么是六边形图&#xff1f;&#xff09; 为什么用六边形图&#xff1f;六边形图的构造原理如何绘制六边形图&#xff1f;&#xff08;代码示例&#xff09;结果解读总结 六边形图是一种特殊的二维数据可视化方法&#xff0c;用来展示两个变量之间的关系。它用许多小的六边形&a…...

淘宝天猫API接口探索:店铺商品全览与拍立淘图片搜索实战

在当今的电商时代&#xff0c;淘宝和天猫作为两大巨头&#xff0c;为开发者提供了丰富的API接口&#xff0c;以实现与平台的数据交互。本文将带您探索如何使用淘宝天猫的API接口来获取店铺所有商品列表&#xff0c;以及如何通过拍立淘&#xff08;图片搜索&#xff09;功能找到…...

.net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)

说一下情况&#xff1a; 代码没问题&#xff0c;能成功从数据库里查到数据&#xff0c;能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值&#xff0c;但是发布到线上后报这个错&#xff1a; Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 …...

电子电气架构 --- 面向服务的汽车诊断架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...

困扰解决:mfc140u.dll丢失的解决方法,多种有效解决方法全解析

当电脑提示“mfc140u.dll丢失”时&#xff0c;这可能会导致某些程序无法正常运行&#xff0c;给用户带来不便。不过&#xff0c;有多种方法可以尝试解决这个问题。这篇文章将以“mfc140u.dll丢失的解决方法”为主题&#xff0c;教大家有效解决mfc140u.dll丢失。 判断是否是“mf…...

OpenCV_Code_LOG

孔洞填充 void fillHole(const Mat srcBw, Mat &dstBw) {Size m_Size srcBw.size();Mat TempMat::zeros(m_Size.height2,m_Size.width2,srcBw.type());//延展图像srcBw.copyTo(Temp(Range(1, m_Size.height 1), Range(1, m_Size.width 1)));cv::floodFill(Temp, Point(…...

【python】OpenCV—Tracking(10.5)—dlib

文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、涉及到的库函数dlib.correlation_tracker() 6、参考 1、功能描述 基于 dlib 库&#xff0c;实现指定类别的目标检测和单目标跟踪 2、代码实现 caffe 模型 https://github.com/MediosZ/MobileNet-SSD/tree/master/…...