DevOps 事后分析
众所周知,系统的变化会带来不稳定,进而引发事故。迁移到 DevOps 使世界各地的组织能够以更小的增量和更高的频率进行发布。这降低了特定版本中失败的风险。另一方面,增加发布数量并不一定会减少待命团队需要响应的事件数量。
事件响应团队的主要职责是量化影响,并在必要时减轻影响。结果,服务恢复到正常运行状态。分析根本原因并实施预防措施不属于这个过程。现在,如果不进行这样的学习和分析,根本原因就得不到解决,预防措施也得不到落实。结果是:事件开始成倍增加,级联错误成为每周例行公事的一部分。最终,DevOps 团队花在事件响应上的时间越来越多,服务质量却不断下降。
进行尸检
为了避免这种死亡螺旋,您的团队必须承认需要从过去中学习以建设更美好的未来。这个学习过程称为事后分析(或post-mortem)。每当事件需要值班工程师做出响应时,就应该触发事后分析。典型的事后剖析从记录客观证据开始:
事件的触发因素
事件影响
检测和缓解的时间
采取的缓解措施
根本原因分析
根据上述证据,应该进行分析。分析通常由响应事件的待命团队成员执行,并且可能包括帮助缓解或分析根本原因的其他团队成员。分析过程需要找到以下问题的答案:
扳机。
我们收到了多少关于该事件的警报?
触发是否及时,或者我们可以提前注册吗?
影响
首先,影响是否足以引发事件?或者我们应该校准触发器吗?
是否采取了足够的措施来减轻影响并且是否遵循了流程?如果没有,我们是否需要投资培训或改进指南?
我们是否设法足够快地减轻影响?我们能做些什么来缩短缓解时间吗?
根本原因
根本原因会得到解决还是我们必须忍受它?
如果根本原因得到解决,那么我们到底需要做什么来解决呢?
根据分析,应撰写总结,包括吸取的教训以及登记和确定优先顺序的后续任务。后续任务通常包括:
解决根本原因的工程任务
DevOps 工程师改进监控设置的任务
管理者改进流程的任务
事后分析简介
向一个历史上从未进行过事后分析的组织引入事后分析并不像听起来那么容易。与每个新的或不断变化的流程一样,引入和持续变革需要组织各个级别的时间和精力。但是,有一些关键原则可以使更改变得更容易:
确保远离指责游戏和相互指责。这是让事情顺利进行的最关键的方面。如果分析的重点是指责造成事件的人,而不是确保团队学习和改进,那么这种举措就会造成伤害而不是好处。
指定专职领导,强制执行每个事件响应并进行事后分析。这些人往往来自 DevOps/on-call 团队,而且大多数情况下他们自己就是团队领导。
协作与分享。确保在适合共享和学习的媒介(例如维基)中记录事后分析。使用上个月的事后分析作为团队的定期学习材料。允许在事后分析期间和之后进行协作和评论。
涉及管理。表现出管理层的支持可以使工程师之间的宣传和教育变得更加容易。为了保持管理层的参与,提前制定目标并展示进展情况。你知道,经理们最喜欢的就是向上和向右的图表。
从小事做起。如果组织规模很大,那么从几个服务和一个团队开始就足以构建一个激励其他团队效仿的示例。最初的团队庆祝胜利通常足以让其他团队加入这股潮流。如果没有组织内部的积极榜样,那么引入变革就会困难得多。
事后检查清单
我们准备了一份清单,列出了您需要问自己的问题,以便以尽可能最好的方式进行 DevOps 事后分析。
检测
影响
对最终用户的影响
对生产力的影响
对基础设施的影响
减轻
缓解时间
缓解步骤#1
缓解步骤#2
根本原因分析
得到教训
后续行动
任务#1(检测/缓解/处理)
任务#2(检测/缓解/处理)
任务#3(检测/缓解/处理)
相关文章:
DevOps 事后分析
众所周知,系统的变化会带来不稳定,进而引发事故。迁移到 DevOps 使世界各地的组织能够以更小的增量和更高的频率进行发布。这降低了特定版本中失败的风险。另一方面,增加发布数量并不一定会减少待命团队需要响应的事件数量。 事件响应团队的…...
fastdfs-client-java-1.30 maven 打包安装
1. 进入源代码目录,打开cmd mvn clean install 或者 mvn package 问题不大的话会在同级目录target目录下生成打包后文件 2. 当前目录下cmd进行maven安装 mvn install:install-file -DgroupIdorg.csource -DartifactIdfastdfs-client-java -Dversion${version} -D…...
【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵
专栏系列文章如下: 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 本章将介绍视觉SLAM的基本问题之一:如何描述刚体在三维空间中的运动? 旋转矩阵 点、向量和坐标系 三维空间由3个轴组成&…...
Linux驱动开发笔记(四):设备驱动介绍、熟悉杂项设备驱动和ubuntu开发杂项设备Demo
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/134533533 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…...
C/C++ 实现Windows注册表操作
Windows注册表(Registry)是Windows操作系统中用于存储系统配置信息、用户设置和应用程序数据的一个集中式数据库。它是一个层次结构的数据库,由键(Key)和值(Value)组成,这些键和值被…...
nginx 模块相关配置及结构理解
文章目录 模块配置结构模块配置指令先看一下 ngx_command_t 结构一个模块配置的demo简单模块配置的案例演示 模块上下文结构模块的定义 模块配置结构 Nginx中每个模块都会提供一些指令,以便于用户通过配置去控制该模块的行为。 Nginx的配置信息分成了几个作用域(sc…...
同时创建多个websoket(初始化多个连接、断开的重连、每个连接定时发消息、每个连接存储接收的数据(vuex或者pinia))
可复制现成代码直接使用!! 1.下边的例子演示了创建10个WebSocket 实例,当其中某一个连接失败时,会自动进行重连 <template><div></div> </template><script setup> import { ref, reactive, onMo…...
C语言——指针(一)
📝前言 这篇文章主要带大家初步认识一下指针,供大家理解参考。 主要归纳与讲解: 1,指针与指针变量 2,指针的基本使用(如何定义,初始化,引用) 🎬个人简介&…...
学习量化交易如何入门?
Python 量化入门很简单,只需 3 步就能快速上手! 题主在程序方向没有相关经验,今天就从量化行业的通用语言-Python 着手,教大家如何快速入门。 一、准备工作 在开始 Python 编程之前,首先需要确保你的计算机上安装了合适的 Pytho…...
CSS3动画
在CSS3中新增了一个很有意思的东西,那就是动画,有了动画我们可以做很多的事情,让我为大家介绍一下动画吧! 本篇文章关于介绍动画,利用小球移动为你们介绍一下动画 默认样式: <!DOCTYPE html> <ht…...
黑马点评-10实现用户点赞和点赞排行榜功能
用户点赞功能 如果用户只要点赞一次就对数据库中blog表中的liked字段的值加1就会导致一个用户无限点赞 PutMapping("/like/{id}") public Result likeBlog(PathVariable("id") Long id) {// 修改点赞数量,update tb_blog set liked liked 1 where id …...
Spring配置其他注解Spring注解的解析原理
Spring配置其他注解 Primary注解用于标注相同类型的Bean优先被使用权,Primary是Spring 3.0引入的,与Component和Bean一起使用,标注该Bean的优先级更高,则在通过类型获取Bean或通过Autowired根据类型进行注入时,会选用优…...
TypeScript 学习笔记 第一部分 语法基础
【视频链接】尚硅谷TypeScript教程(李立超老师TS新课) TypeScript 1. 类型1.1 | 联合类型1.2 字面量类型1.3 any 任意类型1.4 unkown 类型1.5 as 类型断言1.6 object 对象类型1.7 { } 对象类型1.8 ? 对象中的可选属性1.9 对象中的任意属性1.1…...
【element优化经验】怎么让element-ui中表单多语言切换排版不乱
目录 前言: 痛点: 1.左对齐,右对齐在中文和外语情况下字数不同,固定宽度会使名称换行,不在整行对齐,影响美观。 2.如果名称和输入框不在一行,会使页面越来越长 3.label-width值给变量&#…...
软件设计中如何画各类图之一实体关系图(ER图):数据库设计与分析的核心工具
目录 1 前言2 符号及作用:3 绘制清晰的ER图步骤4 实体关系图的用途5 使用场景6 实际应用场景举例7 结语 1 前言 当谈到数据库设计与分析的核心工具时,实体关系图(ER图)无疑是其中最重要的一环。在软件开发、信息管理以及数据库设…...
【神印王座】龙皓晨美妆胜过月夜,魔神皇识破无视,撮合月夜阿宝
Hello,小伙伴们,我是拾荒君。 《神印王座》国漫第82集已更新,拾荒君和大多数人一样,更新就去看了。魔神皇枫秀,威严凛然,突然空降月魔宫,整个宫殿都在这股无与伦比的强大气息中颤栗。为了顺利躲避魔神皇的…...
汽车级全保护型六路半桥驱动器NCV7708FDWR2G 原理、参数及应用
NCV7708FDWR2G 是一款全保护型六路半桥驱动器,特别适用于汽车和工业运动控制应用。六个高压侧和低压侧驱动器可自由配置,也可单独控制。因此可实现高压侧、低压侧和 H 桥控制。H 桥控制提供正向、逆向、制动和高阻抗状态。驱动器通过标准 SPI 接口进行控…...
【小技巧】MyBatis 中 SQL 写法技巧小总结
最近有个兄弟在搞mybatis,问我怎么写sql ,说简单一点mybatis就是写原生sql,官方都说了 mybatis 的动态sql语句是基于 OGNL表达式的。可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类: if 语句 (简单的条件…...
C#编程题分享(4)
换行输出整数问题 输⼊任意⼀个位数未知的整数,输出这个数每⼀位上的数字。输出的时候,从个位开始输出,每输出⼀个数字换⼀⾏。样例输⼊:3547 输出:7 换行输出 4 换行输出5 换行输出3 int n Convert.ToInt32(Conso…...
CTF靶场搭建及Web赛题制作与终端docker环境部署
♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ 写在前面 ╔═══════════════════════════════════════════════════…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
