攻击五年内飙升了700%
可见,影响系统可用性的指标包括2个方面:MTTF(不出故障的时间)和MTTR(出故障后的恢复时间),所以,要提高系统可用性,要从2个方面入手:
对故障应急来说,也要从这两个方面入手,首先要增加无故障时间,包括日常的风险发现和风险治理,借大促机会进行的链路梳理和风险治理。只有不断的发现风险,治理风险,才能防止系统稳定性腐烂,才能增加无故障时间。 其次,要缩短出故障之后的恢复时间,这一点上,首先要把功夫花在平时,防止出现故障时的慌张无助。平时的功夫,主要就是场景梳理和故障演练。 2 场景梳理
故障场景梳理,重点在于要把可能出现故障的核心场景、表现、定位方法、应对策略梳理清楚,做到应对人员烂熟于心,为演练、故障应急提供脚本。 日常报警数量限制 一般来说,如果一段时间内,报警短信的数量超过99条,显示了99+,大家就会失去查看报警的兴趣,因此,一定要不断调整报警的阈值,使其在业务正常的情况下,不会频繁报警。在盒马履约,我们基本可以做到24小时内,报警群内的报警总数,在不出故障/风险的情况下小于100条;这样的好处是明显的,因为我们基本上可以做到1个小时以上才查看报警群,只要看到报警群的新增条数不多(比如只有10条左右),就能大致判断过去的一个小时内,没有严重的报警发生;减少报警的方法,可以采用如下手段:
报警要能够互补 我们经常提到监控的覆盖率,但是覆盖还是不够的,因为监控可能出现多种可能性的缺失(丢日志、通信异常等),因此要能够从多个维度覆盖,比如,除了要直接用指标覆盖qps,还需要通过日志来覆盖一遍,除了要用日志覆盖一些订单趋势,还要从db统计上覆盖一遍,这样一个报警丢失,还至少有另外一个报警可以backup。 4 有效发现监控问题 作为一个SRE人员,很容易发现一个点,如果有几次线上问题或报警响应不及时,就会被老板和同事质疑。同样的,如果每次线上问题都能先于同事们发现和响应,就会赢得大家信任,那要如何做到先于大家发现呢?我的建议是:像刷抖音一样刷监控群和值班群。 一般来说,一个团队的稳定性问题在3类群里发现:BU级消防群、团队的监控报警群、业务值班群;所以没有必要红着眼睛盯着监控大盘,也没必要对每个报警都做的好像惊弓之鸟,这样很快自己就会疲惫厌烦。 我的经验是按下面的步骤:
要做到“有效”两个字,SRE人员,需要有一个精确的判断:当前报警是否需要处理?当前报警是否意味着问题?当前报警的影响范围和涉及人员是谁?当前工单/问题是否可能进一步扩大,不同的判断,采取的行动是不同的。 三 故障应急 前面1.4.1中,有提到如何及时、快速的响应,这一点是作为SRE人员在故障应急时的关键,也是平时处理线上问题的关键。除此之外,在应对故障方面,还有很多事情需要做。 1 系统可用性的定义
ufried 在2017年的经典弹性设计PPT:《Resilient software design in a nutshell》中,对系统可用性的定义如下: (编辑:吉安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |