安全生产——从别人的故障中学习

目录

1、幂等失败

2、 运营同学调整配置,引发某些规则失效,大盘数据下跌

3、压测造数据问题,导致集群fullGC

4、配置错误,误操作了线上

5、容量不足,外加没有限流,导致无法提供服务

6、大流量下DB内存出现雪崩,写入慢

7、上下游交互的API的结果不一致,导致资损

8、线上和预发的缓存没有隔离,导致线上缓存数据格式转换问题

9、分支代码合并解冲突问题引发线上问题

10、内存泄露导致OOM-killer后无法提供服务

安全生产思考

安全生产的几个抓手


1、幂等失败

思考:

凡涉及【幂等】设计修改,需要做好代码review;

测试需要做专项测试;

上线前,需要灰度发布;

2、 运营同学调整配置,引发某些规则失效,大盘数据下跌

思考:

缺少监控机制,没有发现大盘数据异常;

3、压测造数据问题,导致集群fullGC

思考:

压测数据,数据倾斜、分布、量级等等,需要充分评估;
压测场景数据,需要和真实用户场景数据,做充分比对;

压测时,需要先预热,然后缓慢增加压力;

4、配置错误,误操作了线上

思考:

核心配置,需要增加double check审批人;

配置更改后,增加灰度;

代码设计考虑配置错误情况(比如,只要配置不正确(格式,大小写等),就按不配置处理、或直接不允许保存)

5、容量不足,外加没有限流,导致无法提供服务

思考:

核心业务,可能临时突增流量部分,需要添加限流;

需要新增前期压测;

6、大流量下DB内存出现雪崩,写入慢

思考:

压测模型没有充分评估,缺少场景,加入压测场景;

7、上下游交互的API的结果不一致,导致资损

思考:

涉及资金,一律需要严格上下游对焦 + 链路测试;

链路上需要对账;

8、线上和预发的缓存没有隔离,导致线上缓存数据格式转换问题

思考:

线上和预发共用缓存和DB,本身感觉没太大问题,但问题是需要线上和预发数据做好某个角度的隔离。 比如,电商业务,可以做门店维度隔离、权限维度隔离

9、分支代码合并解冲突问题引发线上问题

思考:

代码review粒度不够,需要加强

回归测试场景覆盖不够,需要全面评估

风险高的改动上线前必须灰度

10、内存泄露导致OOM-killer后无法提供服务

思考:

需要check 监控覆盖程度、机器探活能力、机器快速下线

增加上线前灰度


安全生产思考

线上发生了严重故障,影响了大规模的用户,一般来说,这个问题都逃过了安全生产防护:

1、代码实现/变更检查

2、线下测试

3、灰度

4、监控

5、快速止血

根据业务本身需要,安全生产需要不同侧重点的投入,但这里貌似有个悖论:

线上没有故障,感觉不到安全生产投入的价值/或者没有太大动力投入安全生产;

线上频出故障,感觉安全生产投入也没有价值。

其实这里关乎一个问题: 安全生产的产出衡量问题。 

安全生产的几个抓手

1、面向失败设计,深耕细作好代码review,这需要boss层的大力推动和支持;

2、监控告警,需要未雨绸缪,同时防止被太多的“干扰性”报警;

3、核心业务,特别是可能产生资损的地方,需要做好对账和监控、以及快速止血

4、可能引发重大问题的改动,最好经过double check

5、避免线上场景裸奔,即做好 功能测试、压测、针对性专项测试。

6、快速发现、快速止血、容灾、自愈是种能力,只有试了,才知道系统&团队有没有,所以故障演练必不可少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多则惑少则明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值