一张图讲清楚业务稳定性要如何做:SRE体系化稳定性方案

news2025/1/11 8:09:32

概述:作为一个SRE、运维工程师,当我们在治理系统稳定性时,方法有很多,但往往无从下手。本文以一张逻辑图的形式,为读者提供治理稳定性的体系化思路。

先上图:

1、治理目标

我们做稳定性的目标,借用GoogleSRE提出的一个理念:故障无感化。我们不是要消除故障,且故障也没法消除,只要这世上还有bug存在,故障就无法消除。

所谓故障无感化,就是指我们可以对故障抱着更加open的态度,当故障发生时,一切有序地执行、恢复、整改,就像它不曾发生一样。当然做到这个的前提,是要将稳定性建设做到比较好的程度。

2、治理对象

有上可知,我们治理的对象就是故障,那么问题来了,如何定义一个故障?我们需要一个基线,于是故障等级定义由此而来。

2.1 故障等级定义

故障等级定义要表达清楚具体业务域下某业务指标影响范围和影响时长,举例如下:

  • ​P0:订单交易成功量下跌10%
  • ​P1:首页打开错误率大于5%

制定的逻辑可先定场景,再定影响。场景代表客户真是的体感,可由业务团队明确;有了场景就可以搜罗对应的监控,并按周、按月观察监控趋势,以影响客户数量为基准确定故障等级。举例:订单交易成功量下跌的数量、支付失败的数量、履约失败的数量必须一致或同一量级,可归为同一个故障等级。

2.2 故障生命周期

故障生命周期可归纳为:发生--发现--响应--恢复--复盘

2.2.1 发现阶段

在发现阶段,我们主要依赖于三类型的监控:基础架构、业务监控、客户反馈/投诉。基础架构的监控一般不会直接影响到业务指标,主要还是依靠后两者。是不是发现和故障等级定义串起来了?

2.2.2 响应阶段

在响应阶段,要明确应急小组里的每个角色以及指责。试想下,当你们公司交易下跌10%时,一时间call上来过多少人?每个人七嘴八舌没有组织,恢复效率可想而知。

应急小组主要由:SRE、领域专家、决策人、其他组织架构构成。

SRE作为响应阶段的控场人物,首先要发起组织,其次记录故障时间线并间歇同步,同时以最小化原则协调资源,并在恢复会议或者沟通群中控制所有人的发言,避免信息泛滥。在排查问题时把控方向,并在关键时刻找到特殊领域专家帮助定位,同时在执行方案上做风险把控。

2.2.3 恢复执行

恢复执行没什么好说的,重点是观测业务指标的回升,以及准备好回滚方案。

2.2.4 复盘

复盘重点关注过程分析和根因分析。

过程分析即发现、响应和恢复的过程中具体指标是多少,比如阿里提出的1-5-10指标:1分钟发现、5分钟响应、10分钟恢复。在复盘中问自己三个问题:发现阶段有没有监控覆盖?响应阶段有没有高效执行?恢复阶段有没有应急预案?

根因分析围绕是否变更导致。如果是变更导致,那需要review变更的三板斧是否有对应策略和方案;如果不是变更导致,则需思考从架构层面的高可用和高可靠性是否做的充分。

3、治理专项

到此,大家应该也能大致猜到专项治理是要治理什么了,我们不妨以应急SLA:1-5-10作为目标,从监控覆盖、应急预案、应急演练三个方向展开治理。

3.1 监控覆盖

以故障等级定义为基线,整体review所有的故障等级定义是否都有相应的业务监控覆盖,可以是多个监控对应一个故障场景。

3.2 应急预案

同样是以故障等级定义为参考,是否每个条目都有对应的预案可以及时恢复,就算有的场景实在恢复不了,是否有止血方案可以组织故障影响的扩大。

3.3 应急演练

再做足监控覆盖和应急预案之后,不定期地组织演练。演练需要关注两个点:我们的应急组织是否完善、各个角色的应急响应是否及时;方案是否有效,是否可以自动化执行,方案的可读性是否足够高能让任何一个工具人都可以执行恢复。

总结:

稳定性治理,依托于故障等级定义、围绕着故障生命周期展开。故障的生命周期中每个节点都是我们可以去展开、去思考如何做的更优,并同时反哺到故障等级定义中,二者相辅相成,密不可分。希望本文对在做稳定性的读者们有所启发。

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

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

相关文章

MySQL 基础学习笔记(二)

目录 1 约束1.1 约束概述1.2 非空约束1.3 唯一约束1.4 主键约束1.5 默认约束1.6 外键约束 2 数据库设计2.1 数据库设计概述2.2 表关系 3 多表查询3.1 多表查询概述3.2 内连接查询3.3 外连接查询3.4 子查询 4 事务4.1 事务概述4.2 四大特征 1 约束 1.1 约束概述 约束是作用于表…

Whatsapp企业号如何增粉?5个措施帮到你

收集粉丝关注的方法有很多种,本文将会介绍九种有效的方式,可以参考。 在传播信息的过程中,我们要需要把客户放在第一位,你能提供给客户什么,实用价值或情绪价格。给人的感觉真实吗?足够透明吗?…

[黑马程序员Pandas教程]——Pandas快速体验

目录: 为什么要使用Python做数据开发Python在数据开发领域的优势为什么要学习Pandas其他常用Python库介绍主要内容介绍Anaconda安装Anaconda的虚拟环境管理虚拟环境的作用可以通过Anaconda界面创建虚拟环境通过命令行创建虚拟环境通过Anaconda管理界面安装包也可以…

Linux C语言进阶-D2字符数组和字符串

字符数组:元素的数据类型为字符类型的数组 char c[10],ch[3][4]; 字符数组的初始化 逐个字符赋值,无\0 在下图中,剩余的会自动添加上\0,而在int中会自动添加0,和NULL其实是一个意思 用字符串常量有\0 字符数组长度计算 下图中&am…

你知道什么是 Ping 吗?

欢迎到我的博客浏览 胤凯 (oyto.github.io) 这次我们来看一下什么是 Ping 操作,以及它有什么用处,并且我们来动手实现一个简易版的 Ping 工具。 Ping 是什么? ​ ping 是一个计算机网络工具,通常用于测试网络连接的可达性和测…

服务器带宽忽然暴增,不停的触发告警

问题: 线上环境,服务器的外网下行带宽达到某个阈值,触发告警,查了下服务器的带宽监控信息,是从某个时间开始突然串上去的,然后监控图形非常有规律,都是每秒达到顶峰后,又立马下去了…

信息系统项目管理师教程 第四版【第9章-项目范围管理-思维导图】

信息系统项目管理师教程 第四版【第9章-项目范围管理-思维导图】 课本里章节里所有蓝色字体的思维导图

2023年云栖大会来啦!!(2022年就已经深受震撼)

2023云栖大会已经开始啦,让我们来回顾回顾去年的云栖大会吧。 云栖大会是中国阿里巴巴集团每年举办的一项技术盛会,前身可追溯到2009年的地方网站峰会,2011年演变为阿里云开发者大会,2015年正式更名为“云栖大会”,并且…

DL Homework 5

目录 习题4-1 对于一个神经元​编辑,并使用梯度下降优化参数w时,如果输入x恒大于0,其收敛速度会比零均值化的输入更慢。 习题4-5 如果限制一个神经网络的总神经元数量(不考虑输入层)为N1,输入层大小为​编辑,输出层大…

回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测

回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测 目录 回归预测 | Matlab实现RIME-CNN-SVM霜冰优化算法优化卷积神经网络-支持向量机的多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.RIME-CNN-SVM霜冰优化算…

[SHCTF 2023 校外赛道] reverse

week1 ez_asm 想不到第1题是个汇编,咱也不知道拿啥能弄成c,不过这题也不难,直接能看懂,关键部分。 取出异或0x1e然后保存,再取出-0xa再保存。 .text:0000000000401566 loc_401566: …

赛宁网安多领域创新成果亮相第五届“纵横”论坛

10月27日,第五届“纵横”网络空间安全创新论坛在安徽合肥举办,来自中央国家机关、地方政府、军队有关单位、高校、科研院所和部分高新技术企业的领导、专家和代表500余人参加。 本届论坛由军事科学院和国防科技大学等单位共同主办,国防科技大…

电脑出现找不到d3dcompiler_43.dll的情况怎么办,分享d3dcompiler_43.dll丢失的办法

在使用电脑时你是不是也遇到过“未找到d3dcompiler_43.dll”的情况?是使用电脑的过程中d3dcompiler_43.dll丢失是一个经常出现问题,是一件大概率的事情,但是对于不了解这个文件的小伙伴而言出现这个问题是一件棘手的事情,那么今天…

postman做接口测试

之前搞自动化接口测试,由于接口的特性,要验证接口返回xml中的数据,所以没找到合适的轮子,就自己用requests造了个轮子,用着也还行,不过就是case管理有些麻烦,近几天又回头看了看postman也可以玩…

悠络客携新品UMind亮相安博会,从深耕商业连锁出发,正式进军ToG、ToC领域

2023年10月25日,第十九届中国国际社会公共安全博览会(CPSE安博会)在深圳会展中心隆重开幕。悠络客作为以公有云为核心的人工智能企业,联合海外事业部以全新面貌亮相展会现场。 本次参展,对悠络客而言有着非同寻常的重要…

【c++|opencv】二、灰度变换和空间滤波---4.高斯滤波

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 1. 高斯滤波 #include <iostream> #include <opencv2/opencv.hpp> #include"Salt.h"using namespace std; using namespace cv;/…

Android 13 Handler详解

1.Handler 简介 Handler 是一套 Android 消息传递机制。在多线程应用场景中&#xff0c;将子线程中需要更新 UI 的操作消息&#xff0c;传递到 UI 主线程&#xff0c;从而实现子线程通知 UI 更新最终实现异步消息处理。说白了是用于线程之间的通信。 Handler主要有4个重要类&a…

对xss-labs靶场的一次XSS攻击

1、首先我们进入靶场&#xff0c;提示我们开始测试 2、我使用AWVS工具进行了先行扫描&#xff0c;发现爆出XSS漏洞 3、然后对症下药 在输入框中输入&#xff1a; <script>alert(document.cookie)</script> 4、进入下一关 5、我们直接执行<script>…

priority_queue 的模拟实现

priority_queue 的底层结构 我们已经学习过栈和队列了&#xff0c;他们都是用一种容器适配出来的。今天我们要学习的 prority_queue 也是一个容器适配器。在 priority_queue 的使用部分我们已经知道想要适配出 priority_queue&#xff0c;这个底层的容器必须有以下接口&#x…

040-第三代软件开发-全新波形抓取算法

第三代软件开发-全新波形抓取算法 文章目录 第三代软件开发-全新波形抓取算法项目介绍全新波形抓取算法代码小解 关键字&#xff1a; Qt、 Qml、 抓波、 截获、 波形 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object …