安稳性,咱们都在聊些什么

安稳性的内容领域

Google SRE 工程师在 2013 年提出了一个 7 层金字塔模型,用来描述体系可靠性(Dickerson’s Hierarchy of Service Reliability),这个模型简直涵盖了安稳性话题下的所有内容领域:

关于安稳性,你需求知道的二三事

安稳性的管理计划

安稳性管理的两个重要准则:

  • 控制新增,管理存量。控制那些迸发问题的蔓延,周期性、有节奏地安排那些疑问的存量问题修正。
  • 先急后缓,先易后难。优先修正那些迸发的问题,优先解决相对容易、修正周期短的问题。

安稳性管理的几个要害环节:

关于安稳性,你需求知道的二三事

摘自:《字节跳动怎么体系性管理 iOS 安稳性问题》

安稳性建造一般性参阅思路

技能视角

从技能上来看,安稳性的辅导思想:

关于安稳性,你需求知道的二三事

改变红线

有这么一条不成文的规则:“90% 以上的安稳性问题都是由改变引起的”,因此互联网各个厂商对于改变都尤为注重。比如阿里就有一个“改变红线”准则:“可发现、可预案、可灰度”,以一次新需求发布为例:

  • 首要,新的功用会引入新危险,如在线上呈现危险了,要有能够及时发现危险的手法,此为可发现。
  • 然后,发布前,要针对可能呈现的问题做好预案,当发现了问题后立即履行相应的预案,此为可预案。
  • 最终,发布时,主动调查是否会有问题产生,逐步敞开线上流量,此为可灰度。

有用监控

树立有用监控是及时发现线上问题的最重要的手法,而针对使用体系具体需求监控的哪些关键,笔者找到以下一份比较靠谱的参阅:

关于安稳性,你需求知道的二三事

摘自:《安稳性管理方法论》

有用预案

树立有用预案是保证线上问题发生时能有条不紊及时止损的最重要的手法,而针对不同的使用体系具体要树立哪些预案,则依据实际情况各有不同。可是也不乏共性,共性就在于你要对你担任的使用体系进行全面的整理,首要要了解哪些环节可能呈现哪些问题。

关于安稳性,你需求知道的二三事

摘自:《也聊一聊服务安稳性建造》

管理视角

从管理上来看,安稳性包含以下几个方面:

关于安稳性,你需求知道的二三事

而站在团队管理者的视点,考虑安稳性建造的问题,其实就是在考虑怎么进步团队的输出质量,而相应的流程机制、标准规范建造通常是必经之道。关于安稳性流程机制,一般性辅导定见:

关于安稳性,你需求知道的二三事

安稳性,难就难在没有银弹

“安稳性,难的不是技能,难就难在没有银弹,只能靠很多的细节来落地做好安稳性这个体系工程的事情,这意味着的是很多的投入,能不能在安稳性这件事上保持持续的必定的投入,乃至当成做业务功用完成一样的有必要的投入,这才是真实做好安稳性最难的,究竟就算有辅导思想、解决计划、才干,但没有相应的投入,那天然只能有必定的取舍。”

——毕玄:安稳性,难的不是技能,而是……

安稳性,它至关重要但又是一个长时间的挑战。 正如咱们常说的:“呈现问题并不可怕,可怕的是问题重复呈现”,必定程度上咱们默认了线上问题无法被完全消除,咱们努力在阻挠已知问题重复发生,同时想尽办法降低线上危险的可能性,缩小故障发生后的爆炸半径。

安稳性,难就难在没有银弹,需求依赖很多的资源投入、很多的细节落地才干做出效果。虽然有成熟的技能辅导思想、安稳性建造方法论,咱们仍然很难做好安稳性:

  • 安稳性的资源投入无法保证。当时商业竞赛如此激烈的互联网环境里,资源要优先保证给商业需求的交给,在安稳性上的资源投入总是有限的,导致当下很多公司的其实是“滚动式”安稳性管理,一阵一阵的。
  • 安稳性的环节冗长细致入微。安稳性建造涉及软件开发整个生命周期,想每个环节同时都做到抱负状况简直不可能。
  • 安稳性的成果不容易被认可。安稳性即便做的好,也是很难被认可的。做的好,不出问题,不明白的人不知道你做了什么;做到欠好,出了问题,不明白的人又跳出来说你到底做了什么。

可是,咱们仍然要保持清醒,安稳性建造没有银弹,需求细节和耐心

参阅文档