第六篇:稳定性之提升团队潜意识【减少人工操作、敬畏之心】

本文主要是介绍第六篇:稳定性之提升团队潜意识【减少人工操作、敬畏之心】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

减少人工操作

减少人工干预是对系统的配置变更、测试、部署等等,对线上的所有的操作尽可能减少人工操作,这里说的人工操作是不建议直接对线上操作,可以通过平台、工具、自动化等可视化的方式操作,这样可以降低操作失误的风险,因为人工操作时掺杂太多不可控因素等等,而这些因素都可能导致操作失误,出现风险,造成事故。

配置变更

对线上配置进行变更,配置包括基础配置(数据库配置、缓存配置)、各种功能开关、其他文案的配置、服务通信地址配置等等。

传统的做法是配置变更可以通过git代码库方式进行管理包括版本,便于旧版版本对比回滚等,传统的做法显然是可行的方法,随着业务的发展,架构不断升级,分布式演化,服务数据量不断增多,那么传统做法的缺点也就是很凸显了,缺点如下:

    ■ 每次配置变更都需要发版部署。
    ■ 时效性不够,原因是发布和部署不是随时可以操作的,需要等窗口期。
    ■ 局限性:无法支持动态调整,例如开关这类配置。
    ■ 容易出错、无法快速回滚。

为了解决上述问题,配置变更演进成了分布式配置中心,其实将手动操作这类东西,做成平台化,平台化的好处是可以通过权限、版本对比、提升时效性,随时可以变更,审核机制,完全吊打传统的方式,这种方式简直太舒服了。同时也降低了人为操作风险的可能性,还可及时回滚,版本比对等等。

业界流行的平台有:Apollo、Nacos、Spring Cloud Config等等

CICD

测试的全流程覆盖最好能做到全自动化,很多测试用例可以沉淀下来,用来做全流程回归,当然这需要系统支持。我也见过太多犹豫QA没精力进行全流程回归而导致问题没有提前发现而产生的事故,所以测试的原则是尽可能自动化和全流程覆盖,让宝贵的人力资源投入到只能人工测试的环节。

部署也是如此,如果所有的部署都需要人工干预,那么整个过程很不爽,成本非常高,并友好,失误概率也很高,一旦操作失误也无法快速回滚,整个部署严重影响线上的稳定性,为了解决这种问题,演进至今的CICD持续集成持续部署,CI有助于降低风险,通过自动处理项目不同开发人员的代码变更实现生产均等化。另一方面,CD使开发人员能够无缝地将集成代码交付给生产,从而提供快速有效的自动化流程,以便在不费工夫的情况下向客户发布新功能和更新。好处如下:

    ■ 卓越的代码质量
    ■ 减少变更和审核时间
    ■ 加速发布周期
    ■ 故障检测和隔离
    ■ 增强测试可靠性
    ■ 减少任务堆积
    ■ 改善平均解决时间

业界流行的平台有:GoCD、GitLab CI、Jenkins等等

举例:很多奶茶店或连锁店,可以快速扩张的原因是将自己餐饮标准化、流程化之后,可以将这些东西下发到各个分店,分店按照配比调料搭配即可,举这个例子是想说明:在架构设计或者变更之类操作,尽可能减少人工操作,将操作的动作标准化、流程化,这样一方面可以降低失误的概率,另外可以降低人力成本,可以去做更多需要人的事情。

小结

减少人工操作是因为人工操作,掺杂太多不可控因素,操作也非标准化,更不提流程化了,这样操作失误的概率大大增加,只有将操作和标准化、流程化这样才能减少操作失误的概率,从而提升稳定性,整体的演进目标是简单化、标准化、流程化、平台化、自动化,基于是标准化和流程化的操作,可以大大降低操作的失误概率。​

敬畏之心

心有敬畏者,方能行有所止,进而行之高远。对于稳定性建设也是如此,而敬畏之心,就是谨言慎行,遵守规章,就像一根底线时刻在警示我们,所谓“千里之堤,溃于蚁穴”,意味着失去敬畏,便有随时面临巨大损失的风险,不论是架构设计、还是做业务、稳定性建设,线上变更都要心存敬畏。

例如:线上环境是运行用户正在使用的系统环境,如果我们粗心的进行变更操作,或意识不到线上环境的重要性,或变更操作可能存在的风险,或可能带来其他的风险,也有可能导致线上机器宕机,出现重大生产事故,让用户受到重大损失,带来不好的体验,敬畏说的是对线上变更操作需要慎重,考虑周全,对所变更的操作合理评估,及可能存在的风险,及预案都考虑到位,应不断回顾检查、梳理反思。

可参考,变更操作的checklist,自我拷问:
  ○ 变更内容是什么?可能带来哪些影响?影响范围?影响用户群体?
  ○ 变更操作路径是否合乎流程规范?
  ○ 变更操作是否需要double-check?
  ○ 变更操作失败是否可以快速回滚?
  ○ 变更操作操作是否可以小范围验证?
  ○ 变更操作内容是否需要先后顺序?
  ○ 变更操作可能需要哪些业务方关注?

再例如:在架构设计使用某些技术或者中间件,如果对该技术不深入了解,包括应用场景、特性、有什么优缺点,或者了解一点,对很多默认的参数配置,不去针对参数了解,直接使用的话,必然将会带来风险,敬畏是就像一根底线时刻在警示我们,通过不断自查、分析、总结,我们能更审慎地控制风险,自我约束,不怕繁琐。

为什么会没有敬畏之心?我认为有以下原因:

  • 不知道自己不知道
  • 知道自己不知道或者不确定,但有试错的资本
  • 人生太顺,没有体验过失败或者挫折

小结

敬畏是一种态度,在架构设计或稳定性建设,我们也要心存敬畏,就像一根底线时刻在警示、不断鞭策我们,通过各种手段和方法,避免风险。海因里希法则告诉我们,一次重大事故的背后必然有一百次未遂事件和几十次轻度损失。这个法则对于我们有两个启示:一是事故的发生必然有其关联起因和先发信号;二是事故发生前一定有足够的提示,我们要及时遏制苗头,防患于未然。

关于稳定性建设之道大纲速览

目录:关于【稳定性建设之道】大纲速览_jackl-CSDN博客从理论、方法、实践多维度阐述稳定性、从全局视野出发、由内到外、从组织到文化,从风险识别到风险预防、从面向失败到主动失败多个阶段,多维度去描述如何打造一个高可用的系统。https://blog.csdn.net/liu_dudu/article/details/122333724?spm=1001.2014.3001.5501

这篇关于第六篇:稳定性之提升团队潜意识【减少人工操作、敬畏之心】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298857

相关文章

RedHat运维-Linux文本操作基础-AWK进阶

你不用整理,跟着敲一遍,有个印象,然后把它保存到本地,以后要用再去看,如果有了新东西,你自个再添加。这是我参考牛客上的shell编程专项题,只不过换成了问答的方式而已。不用背,就算是我自己亲自敲,我现在好多也记不住。 1. 输出nowcoder.txt文件第5行的内容 2. 输出nowcoder.txt文件第6行的内容 3. 输出nowcoder.txt文件第7行的内容 4. 输出nowcode

Linux系统稳定性的奥秘:探究其背后的机制与哲学

在计算机操作系统的世界里,Linux以其卓越的稳定性和可靠性著称,成为服务器、嵌入式系统乃至个人电脑用户的首选。那么,是什么造就了Linux如此之高的稳定性呢?本文将深入解析Linux系统稳定性的几个关键因素,揭示其背后的技术哲学与实践。 1. 开源协作的力量Linux是一个开源项目,意味着任何人都可以查看、修改和贡献其源代码。这种开放性吸引了全球成千上万的开发者参与到内核的维护与优化中,形成了

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

SQL Server中,always on服务器的相关操作

在SQL Server中,建立了always on服务,可用于数据库的同步备份,当数据库出现问题后,always on服务会自动切换主从服务器。 例如192.168.1.10为主服务器,12为从服务器,当主服务器出现问题后,always on自动将主服务器切换为12,保证数据库正常访问。 对于always on服务器有如下操作: 1、切换主从服务器:假如需要手动切换主从服务器时(如果两个服务

JavaWeb系列二十: jQuery的DOM操作 下

jQuery的DOM操作 CSS-DOM操作多选框案例页面加载完毕触发方法作业布置jQuery获取选中复选框的值jQuery控制checkbox被选中jQuery控制(全选/全不选/反选)jQuery动态添加删除用户 CSS-DOM操作 获取和设置元素的样式属性: css()获取和设置元素透明度: opacity属性获取和设置元素高度, 宽度: height(), widt

PS的一些操作~持续抄袭中....

套索工具使用时移动图片——按住空格键,鼠标左键按住,拖动!

帆软报表常用操作

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 帆软报表常用操作 多序号实现使用数据集作为参数空白页或者竖线页修改页面Title金额,或者保留两位小数等等设置日期格式显示图片使用公式 多序号实现 所用函数为SEQ(),如果一张报表中需要用到多个序号,那么就需要加入参数SEQ(1),SEQ(

IPython小白教程:提升你的Python交互式编程技巧,通俗易懂!

IPython是一个增强的Python交互式shell,它提供了丰富的功能和便捷的交互方式,使得Python开发和数据分析工作更加高效。本文将详细介绍IPython的基本概念、使用方法、主要作用以及注意事项。 一、IPython简介 1. IPython的起源 IPython由Fernando Pérez于2001年创建,旨在提供一个更高效的Python交互式编程环境。 2. IPyt

el-upload 上传图片及回显照片和预览图片,文件流和http线上链接格式操作

<div v-for="(info, index) in zsjzqwhxqList.helicopterTourInfoList" :key="info.id" >编辑上传图片// oss返回线上地址http链接格式:<el-form-itemlabel="巡视结果照片":label-width="formLabelWidth"><el-upload:action="'http: