如何打赢稳定性之战?

文章目录

  • 前言
  • 为什么总会出现问题呢?
  • 如何证明你的稳定性做的有效果?
  • 既是持久战,也是防御战
    • 1. 提前建筑好防御工事
    • 2. 以攻为守
    • 3. 找外部支援和配合

前言

随着23年年末期间,各大厂争先恐后的出现的各种线上故障,一时间“降本增笑”、“开猿节流”成为了大家调侃的话题,我自己所在的公司其实也因为在年中时出现了几次线上故障,而面临着系统稳定性的考验。因此,也就想借本文跟大家分享、探讨一下到底如何才能打赢稳定性之战?

为什么总会出现问题呢?

“墨菲定律”相信大家都了解:任何可能出错的事情最终都会出错。
也就是说,无论你怎么做,都无法保证系统不出问题,既然如此,那我们其实应该“躺平”?当然不是,相反,我们应该更加重视才是。
在这里插入图片描述

另一方面,我相信无论是哪家公司,当故障发生之后,对于产生故障的原因一定都会高度重视,然后进行复盘,痛定思痛之后制定解决方案,投入人力开始优化。经过一段时间之后,系统运行持续良好,似乎又变的“稳定”了,此时领导也放心了。便语重心长的说道:这一年以来,咱们在稳定性上也投入了这么多精力,现在系统的稳定性也大大提升了,该还业务上欠下的债了。于是乎,需求的压力又上了,设计上各种妥协,逻辑上各种补丁,渐渐地,质量问题又开始被淡忘了,终于又在一年后的某一天,系统故障了!
在这里插入图片描述

如何证明你的稳定性做的有效果?

问:这半年我们什么也没做,也没出啥问题,所以,我们是不是有点杞人忧天了?
答:不出问题,可能只是你运气好而已。

问:自从上次优化后,系统半年都没出问题了,是不是证明我们做的有效果了?
答:不一定,可能只是你的运气好而已。

问:你们做了这么多,怎么还是出问题了呢?你们做的这些到底有没有用?
答:可能我们不做,问题只会更严重。

要向第三者证明你做的这些稳定性是有效果的,其实还是挺难的,毕竟做的都是无法直接看到结果的事,你就很难引起别人对你所做的事的重视,扁鹊与魏文侯的故事,则能很好的说明这一点。

据史书记载,魏文侯曾向扁鹊询问他家中兄弟三人的医术水平。扁鹊回答说他的长兄医术最高,中兄次之,而他自己则是最差的。魏文侯问这是为什么,扁鹊解释说他的长兄治病是在病情发作之前,一般人不知道他能事先铲除病因,所以他的名气无法传出去。而他的中兄治病是在病情初起之时,一般人以为他只能治轻微的小病,所以他的名气只及于本乡里。而他自己治病则是在病情严重之时,一般人都能看到他在经脉上穿针管放血、在皮肤上敷药等大手术,所以以为他的医术高明,名气因此响遍全国。
在这里插入图片描述

大家都非常敬佩救火英雄,但我们也不能忘记那些为了防止让火情发生,以及在火情发生后能将有效将火情控制住的那些人所做的工作,研发稳定性保障工作正是如此!
我们所做的工作就是为了降低发生的频率以及发生后的影响程度,怎么证明你做到了?对不起没法证明,出名的永远只能是扁鹊,背后工作者就需要有奉献精神,不被理解是常态,大家也许偶尔会想起你的好,但你一定无法成为那颗耀眼的星。

既是持久战,也是防御战

系统稳定性之战,我认为既是一场持久战,也是一场防御战,持久战很好理解,正如前面在阐述“为什么总会出现问题”这个观念上,就足以说明。
那为什么又说是一场防御战呢?防御战一般怎么打?

  1. 提前建筑好防御工事
  2. 以攻为守
  3. 找外部支援和配合
    以上3点,也正是做好稳定性工作的方法!

1. 提前建筑好防御工事

在这里插入图片描述

提前建筑好防御工事的关键在于,你能坚持多久,毫无疑问大家都知道要建筑好防御工事,但要建到什么程度?年久失修后,要不要更新换代?这才是问题的关键。
因为我习惯跑步,也常有人问我,跑步对减肥或身体健康到底有没有好处?一开始你可能会觉得奇怪,跑步对身体有益,这难道还需要证明吗?但你会发现有些人跑了1,2个礼拜后,发现体重也没变化,身体也没感觉变好,甚至还会因为跑步后抵抗力下降出现感冒、发烧等症状,也有一些人急功近利,在1,2个礼拜内,不顾自己身体状况,拼了命的跑,导致身体出现损伤。
想想,这些是不是与我们做稳定性工作之后所期望的结果很像呢?说实话,要想通过跑步看到身体的变化,也是需要以年为单位来衡量。稳定性工作同样如此,稳定性工作靠的不是激情,不是打个兴奋剂,突击几个月就能完事了,而是要在思想上统一意识,要在每一次产品设计、每一次需求迭代这样的常规工作上做功夫,当你意识到自己放松时,要能立即提醒自己,保持警惕!

2. 以攻为守

有时候我们也需要通过招兵买马来主动提升团队战斗力,并不断通过培训、分享等形式营造一个良好的技术团队的探究氛围,这样才能时刻保持着我们的战斗力!
除此之外,太平久了也难免会松懈,京东在经营过程中有一个很重要的理念,就是保护好老二老三。其中一个重要的原因就是因为一旦你没有了竞争的压力,那么你可能也会慢慢变得消沉!
所以,有一种有效的方式就是自己攻击自己,没有对手就自己创造一个对手出来,同样的,没有问题就自己制造点问题出来,混沌工程的出现很好的说明了这一点。
请记住,无论采取何种方式,以攻为守强调的是通过一种积极的防御态度,让自己能够掌握更多的主动权、控制权!

3. 找外部支援和配合

最后,正如前面所说,除了研发内部的松懈怠慢之外,外部支持程度同样也会有类似的现象,外部支持的态度也会在一定程度上左右防御工程的建筑质量,领导是否愿意持续投入去做这些看不到收益的事?业务部门是否愿意持续配合你们做升级改造?
所以,稳定性之战是一场没有硝烟的战争,拼的不仅仅是能力,更重要的是在拼整个公司的意志力与决心!

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

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

相关文章

帆软使用总结-动态分组背景变色

1.开发界面设计 提示: ROUNDUP((ROW() - M) / N, 0) % 2 0row() 获取当前行号 M 标题行数 N 间隔行数 ROUNDUP() 向上取整 如果被2整除,改变背景颜色 当前公式:ROUNDUP((ROW() - 2) / 3, 0) % 2 02.效果演示

Python while循环实现猜字谜游戏

python的while更多地应用于程序的一般性循环,而不是遍历迭代对象。与其他的计算机编程语言不同,python没有do...while这样的while循环。接下来,我们将详细介绍一下Python的while循环,并用寥寥数行代码开发一个小游戏,作…

【题解】—— 每日一道题目栏

2024.1 【题解】—— LeetCode一周小结1 1. 1599. 经营摩天轮的最大利润 2. 466. 统计重复个数 3. 2487. 从链表中移除节点 4. 2397. 被列覆盖的最多行数 5. 1944. 队列中可以看到的人数 6. 2807. 在链表中插入最大公约数 7. 383. 赎金信 【题解】—— LeetCode一周小…

【前端框架】Vue2合集

一、Vue快速上手 1、Vue概念 vue 是一个用于构建用户界面的渐进式框架&#xff0c;由数据驱动 vue 的两种使用方式 vue 核心包开发&#xff1a;局部模块改造vue 核心包与 vue 插件 工程化开发&#xff1a;整站 开发 2、 创建实例 1、准备容器 <div id"app"&…

网站万词霸屏推广系统源码:实现关键词推广,轻松提高关键词排名,带完整的安装部署教程

现如今&#xff0c;互联网的快速发展&#xff0c;网站推广成为企业网络营销的重要手段。而关键词排名作为网站推广的关键因素&#xff0c;一直备受关注。罗峰给大家分享一款网站万词霸屏推广系统源码&#xff0c;该系统可实现关键词推广&#xff0c;有效提高关键词排名&#xf…

【教3妹学编程-算法题】回文串重新排列查询

3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2哥 : 这已经是你今年的第几次抖啦&#xff1f; 3妹&#xff1a;昨天20度&#xff0c;今天7度&#xff0c;直降13度呢&#xff0c;能不抖嘛 2哥 : 继哈尔滨之后&#xff0c;全国各地的城市也在发展旅游业。 河北喊话赵丽颖回…

使用mamba替换conda和anaconda配置环境安装软件

使用mamba替换miniconda和anaconda&#xff0c;原因是速度更快&#xff0c;无论是创建新环境还是激活环境 conda、mamba、anaconda都是蟒蛇的意思… 下载mambaforge wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh ba…

python 八大排序_python-打基础-八大排序

## 排序篇 #### 二路归并排序 - 介绍 - 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排序方法。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列…

乐意购项目前端开发 #3

一、icon的使用 前往网站挑选要的图标 iconfont-阿里巴巴矢量图标库https://www.iconfont.cn/?spma313x.manage_type_myprojects.i3.2.2f173a81fQSVOU 创建项目添加图标 选择Font Class 下载到本地 解压后会看到这个页面 在asserts目录下创建iconfont目录,然后将最底下的6…

数据库第一次作业

1.创建一个英雄表 create table t_hero ( id int primary key auto_increment, name varchar(10) unique not null, gender char(5) check (gender in (男,女)), grade char(5) default 5星, groups char(5) check (groups in (毁灭,巡猎,智识,存护,…

GPT与文心一言大模型的比较与展望

目录 前言1 GPT和文心一言简介2 GPT和文心一言的技术原理和基础架构3 GPT和文心一言的模型规模和参数数量4 GPT和文心一言的语言理解表现5 展望GPT和文心一言未来的发展5.1 技术改进5.2 应用扩展 结语 前言 随着人工智能技术的飞速发展&#xff0c;自然语言处理领域的两个引领…

linux报错bash: ./configure:/bin/sh^M:

bash: ./configure&#xff1a;/bin/sh^M&#xff1a;解释器错误: 没有那个文件或目录 用cat -A urfile时你可以看到这个\r字符被显示为^M&#xff0c;这时候只需要删除这个字符就可以了。可以使用命令sed -i s/\r$// urfile 。

swing快速入门(四十四)拖动、编辑JTree结点

注释很详细&#xff0c;直接上代码 新增内容&#xff08;源码细节知识点巨多&#xff0c;建议细看&#xff09; 1.设置JTree可编辑 2.使用JTree关联的数据模型实现节点的增删改 3.鼠标拖动节点事件设计及处理方法 4.手动刷新视图与自动刷新的方法区别 5.自定位节点视图方法 源码…

linux环境中一次启动多个jar包,并且设置脚本开机自启

1、编写启动脚本 我们在通过jar启动项目时&#xff0c;有时候会比较多&#xff0c;启动会比较麻烦&#xff0c;需要编写shell脚本启动&#xff0c;将启动脚本存放在需要启动的jar包路径下。&#xff08;文档存放在 /home/process_parent &#xff09; vim start.sh#! /bin/sh…

【python】11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景&#xff0c;而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词&#xff0c;可能需要先科普一下关于文件系统的知识&#xff0c;但是这里我们并不浪费笔墨介绍这个概念&#xff0c;请大…

动态规划算法的应用

动态规划算法的应用 LeetCode&#xff1a;一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级台阶。求该青蛙跳上一个 10 级的台阶总共有多少种跳法。 思考&#xff1a; /*** 一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级台阶。求该青蛙跳上一个 10 级的台阶总…

为什么会被诊断为发作性睡病?

发作性睡病的诊断主要基于患者的症状和相关医学检查的结果。具体来说&#xff0c;医生会根据患者是否出现白天发作性嗜睡、猝倒、睡眠瘫痪和入睡前幻觉等症状来做出初步诊断。这些症状可能在不同的患者身上表现程度不同&#xff0c;但它们通常是发作性睡病的典型特征。 为了进…

Vue报错 Cannot find module ‘../../modules/es6.symbol‘解决办法

在进行webpack打包的时候&#xff0c;会出现Cannot find module XXX’的错误&#xff0c;找不到某个模块的错误&#xff0c;今天给出解决方法&#xff1a; 直接进行npm install重新打包&#xff1b;如果npm install重新打包之后&#xff0c;仍然出现这个问题&#xff0c;可以进…

NLP论文阅读记录 - 2021 | WOS 智能树提取文本摘要深度学习

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.前提三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 An Intelligent Tree Extractive Text Summarization Deep Learning …

迁移mysql8.x数据到monggodb数据库

因流量逐步增加随即数据库要从mysql换成monggodb&#xff0c;所以有了数据迁移的需求 首先需要导出mysql的数据&#xff0c;导出格式为.CSV的文件 使用navicat链接mysql数据库注意&#xff0c;需要使用拥有所有权限的用户 登录mysql mysql -u root -pZxcvbnm2024 CREATE USER …