DevOps 事后分析

众所周知,系统的变化会带来不稳定,进而引发事故。迁移到 DevOps 使世界各地的组织能够以更小的增量和更高的频率进行发布。这降低了特定版本中失败的风险。另一方面,增加发布数量并不一定会减少待命团队需要响应的事件数量。

事件响应团队的主要职责是量化影响,并在必要时减轻影响。结果,服务恢复到正常运行状态。分析根本原因并实施预防措施不属于这个过程。现在,如果不进行这样的学习和分析,根本原因就得不到解决,预防措施也得不到落实。结果是:事件开始成倍增加,级联错误成为每周例行公事的一部分。最终,DevOps 团队花在事件响应上的时间越来越多,服务质量却不断下降。


进行尸检
为了避免这种死亡螺旋,您的团队必须承认需要从过去中学习以建设更美好的未来。这个学习过程称为事后分析(或post-mortem)。每当事件需要值班工程师做出响应时,就应该触发事后分析。典型的事后剖析从记录客观证据开始:

事件的触发因素
事件影响
检测和缓解的时间
采取的缓解措施
根本原因分析
根据上述证据,应该进行分析。分析通常由响应事件的待命团队成员执行,并且可能包括帮助缓解或分析根本原因的其他团队成员。分析过程需要找到以下问题的答案:

扳机。
我们收到了多少关于该事件的警报?
触发是否及时,或者我们可以提前注册吗?
影响
首先,影响是否足以引发事件?或者我们应该校准触发器吗?
是否采取了足够的措施来减轻影响并且是否遵循了流程?如果没有,我们是否需要投资培训或改进指南?
我们是否设法足够快地减轻影响?我们能做些什么来缩短缓解时间吗?
根本原因
根本原因会得到解决还是我们必须忍受它?
如果根本原因得到解决,那么我们到底需要做什么来解决呢?
根据分析,应撰写总结,包括吸取的教训以及登记和确定优先顺序的后续任务。后续任务通常包括:

解决根本原因的工程任务
DevOps 工程师改进监控设置的任务
管理者改进流程的任务
事后分析简介
向一个历史上从未进行过事后分析的组织引入事后分析并不像听起来那么容易。与每个新的或不断变化的流程一样,引入和持续变革需要组织各个级别的时间和精力。但是,有一些关键原则可以使更改变得更容易:

确保远离指责游戏和相互指责。这是让事情顺利进行的最关键的方面。如果分析的重点是指责造成事件的人,而不是确保团队学习和改进,那么这种举措就会造成伤害而不是好处。
指定专职领导,强制执行每个事件响应并进行事后分析。这些人往往来自 DevOps/on-call 团队,而且大多数情况下他们自己就是团队领导。
协作与分享。确保在适合共享和学习的媒介(例如维基)中记录事后分析。使用上个月的事后分析作为团队的定期学习材料。允许在事后分析期间和之后进行协作和评论。
涉及管理。表现出管理层的支持可以使工程师之间的宣传和教育变得更加容易。为了保持管理层的参与,提前制定目标并展示进展情况。你知道,经理们最喜欢的就是向上和向右的图表。
从小事做起。如果组织规模很大,那么从几个服务和一个团队开始就足以构建一个激励其他团队效仿的示例。最初的团队庆祝胜利通常足以让其他团队加入这股潮流。如果没有组织内部的积极榜样,那么引入变革就会困难得多。
事后检查清单
我们准备了一份清单,列出了您需要问自己的问题,以便以尽可能最好的方式进行 DevOps 事后分析。

检测
影响
对最终用户的影响
对生产力的影响
对基础设施的影响
减轻
缓解时间
缓解步骤#1
缓解步骤#2
根本原因分析
得到教训
后续行动
任务#1(检测/缓解/处理)
任务#2(检测/缓解/处理)
任务#3(检测/缓解/处理)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/161781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023.11.22 homework

七年级数学 五年级数学 也不知道可以教到几年级,估计很快就教不动了。人生啊。

读像火箭科学家一样思考笔记06_初学者之心

1. 专业化是目前流行的趋势 1.1. 通才(generalist)是指博而不精之人 1.2. 懂得的手艺越多,反而会家徒四壁 1.2.1. 希腊谚语 1.3. 这种态度代价很大,它阻断了不同学科思想的交融 2. 组合游戏 2.1. 某个行业的变革可能始于另一…

Pycharm的程序调试

有如下代码需要进行调试&#xff1a; i 1 while i < 10:print(i)步骤一&#xff1a;设置断点 步骤二&#xff1a;进入调试视图 方式1&#xff1a;右键单击编辑区&#xff1a;点击’Debug模块名’ ​ 方式2&#xff1a;ShiftF9 ​ 方式3&#xff1a;单机工具栏上的调试按钮…

Django报错:RuntimeError at /home/ 解决办法

错误提示&#xff1a; RuntimeError at /home/ Model class django.contrib.contenttypes.models.ContentType doesnt declare an explicit app_label and isnt in an application in INSTALLED_APPS. 原因剖析&#xff1a; 博主在使用pycharm创建Django项目的时候&#xff0…

vector的简单模拟实现_C++

目录 一、vector的数据结构 二、vector的构造 三、vector的增删查改及空间管理 四、全部代码 一、vector的数据结构 vector以线性连续空间为基础来定义数据结构以及扩展功能。vector的两个迭代器&#xff0c;分别是start和finish&#xff0c;分别指向配置得来的已被使用的空…

网络渗透测试(wireshark 抓取QQ图片)

1.打开wireshark 这里我用的wifi连接 所以点开wifi就好 打开wifi之后就开始在本机上进行抓包了 我们先给我们的QQ发送一张图片&#xff0c;用自己的手机发送给电脑 然后点击左上角的正方形&#xff0c;停止捕获抓包 QQ的关键词是oicq&#xff0c;所以我们直接找 打开oicq …

十二、h.264解码

前言 测试环境&#xff1a; ffmpeg的4.3.2自行编译版本windows环境qt5.12 完整代码&#xff1a; H264DncodeThread.h #ifndef H264DNCODETHREAD_H #define H264DNCODETHREAD_H#include <QObject> #include <QThread>extern "C" { #include <libavu…

【论文阅读笔记】Emu Edit: Precise Image Editing via Recognition and Generation Tasks

【论文阅读笔记】Emu Edit: Precise Image Editing via Recognition and Generation Tasks 论文阅读笔记论文信息摘要背景方法结果额外 关键发现作者动机相关工作1. 使用输入和编辑图像的对齐和详细描述来执行特定的编辑2. 另一类图像编辑模型采用输入掩码作为附加输入 。3. 为…

鸿蒙4.0开发笔记之ArkTs语言基础与基本组件结构(四)

文章声明&#xff1a;本文关于HarmonyOS系统的部分内容和描述借鉴于华为官网的“HarmonyOS开发者学堂”&#xff0c;有需要的也可以进入官网查看。<HarmonyOS第一课>ArkTS开发语言介绍 一、ArkTs语言介绍 ArkTS是鸿蒙系统&#xff08;HarmonyOS&#xff09;优选的主力应…

设计模式-创建型模式-工厂方法模式

一、什么是工厂方法模式 工厂模式又称工厂方法模式&#xff0c;是一种创建型设计模式&#xff0c;其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例化对象的类型。工厂方法模式是目标是定义一个创建产品对象的工厂接口&#xff0c;将实际创建工作推迟到子类中。…

解读可解释性机器学习:理解解释性基准模型(EBM)

解读可解释性机器学习&#xff1a;理解解释性基准模型&#xff08;EBM&#xff09; 近年来&#xff0c;随着机器学习模型的复杂性不断增加&#xff0c;研究人员和从业者对模型的可解释性提出了更高的要求。可解释性机器学习&#xff08;Explainable Machine Learning, XAI&…

SHAP - 机器学习模型可解释性工具

github地址&#xff1a;shap/docs/index.rst at master shap/shap (github.com) SHAP使用文档&#xff1a;欢迎使用 SHAP 文档 — SHAP 最新文档 SHAP介绍 SHAP&#xff08;SHapley Additive exPlanations&#xff09;是一种用于解释预测结果的方法&#xff0c;它基于Shapley…

实现el-input-number数字框带单位

实现的效果展示&#xff0c;可以是前缀单位&#xff0c;也可以是后缀单位。实现的思路就是动态修改伪元素 ::before 和 ::after 的 content值 实现二次封装数字框的代码如下&#xff1a; <template><el-input-numberref"inputNumber"v-model"inputVal…

opencv-直方图

直方图是一种对图像亮度分布的统计表示&#xff0c;它显示了图像中每个灰度级别的像素数量。在OpenCV中&#xff0c;你可以使用cv2.calcHist() 函数计算直方图。 以下是一个简单的示例&#xff0c;演示如何计算和绘制图像的直方图&#xff1a; import cv2 import numpy as np …

【C++容器】优先级队列 仿函数 反向迭代器

优先级队列&#xff0c;仿函数&#xff0c;反向迭代器 优先级队列认识优先级队列模拟实现优先级队列 浅谈仿函数仿函数的大致了解仿函数的实现 反向迭代器什么是反向迭代器&#xff1f;反向迭代器的实现 结语 优先级队列 认识优先级队列 优先级队列&#xff08;priority_queue…

Doris分区与分桶(八)

接上篇----------Doris 建表示例 Doris 支持两层的数据划分。第一层是 Partition&#xff0c;支持 Range 和 List 的划分方式。第二层是 Bucket&#xff08;Tablet&#xff09;&#xff0c;仅支持 Hash 的划分方式。 也可以仅使用一层分区。使用一层分区时&#xff0c;只支持…

低成本打造便携式无线网络攻防学习环境

1.摘要 一直以来, 无线网络安全问题与大众的个人隐私息息相关, 例如: 为了节省流量, 连接到一个看似安全的免费WiFi, 在使用过程中泄露自己的各类密码信息甚至银行卡账号密码信息。随着家用智能电器的普及, 家中的各类智能设备连入家里的无线网络, 却突然失灵, 甚至无法正常连…

模拟Spring源码思想,手写源码,理解注解

1、BeanDefinition package com.csdn.myspring; import lombok.AllArgsConstructor; import lombok.Data; Data AllArgsConstructor public class BeanDefinition {private String beanName;private Class beanClass; }2、扫描包的工具类MyTools package com.csdn.myspring; im…

@Scheduled注解 定时任务讲解

用于在Java Spring框架中定时执行特定任务的注解 Scheduled&#xff0c;它能够指定方法在特定时间间隔或特定时间点执行。默认参数是cron&#xff0c;cron参数被用来定义一个Cron表达式&#xff0c;它代表了任务执行的时间规则 参数如下 Cron 这是是一种时间表达式&#xff…

【应用程序启动过程-三种加载控制器的方式-上午内容复习 Objective-C语言】

一、我们先来回忆一下,上午所有内容 1.首先呢,我们先说的是这个“应用程序启动过程”, 应用程序启动过程里面,有三方面内容 1)UIApplication对象介绍 2)AppDelegate对象介绍 3)应用程序启动过程 现在不知道大家对这个应用程序启动过程有印象吗, 2.首先,这个UIAp…