前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >线上事故应该由谁来承担?

线上事故应该由谁来承担?

作者头像
用户5166556
发布2023-03-18 14:09:18
4130
发布2023-03-18 14:09:18
举报

前不久线上发生了一个事故,主线是这样的,XX 平台对接了 web 端和手机终端,一个伸手不见五指的夜晚,web 端出现了问题,SRE 发现故障后迅速发起了 oncall 机制,建立了作战室。一个小时后,web 端发现是服务端的一条数据导致;这时服务端同学开始介入,发现数据库里面一个字段内容导致,小范围验证后发现置空可以解决问题,执行置空操作后,web 端线上问题解决。凌晨,SRE 再次发起 oncall 机制,手机终端白屏,查明原因是因为服务端数据为空,客户端没有判空;于是服务端升级,皆大欢喜。

领导发话,影响严重,绩效没了,赶快写复盘报告。服务端同学连夜写了一个复盘报告,XX 时间..... 持续.....解决方案..... 另外客户端也要加强逻辑的严谨性。从此客户端和服务端结下了梁子,我这么相信你,你怎么能欺骗我,无缘无故传递空数据。

身处互联网行业的人深有体会,出现问题,解决问题,这是天经地义的事情,谁还没有写过 bug。但写复盘报告,那可是要死的感觉,各种回忆,谁写谁知道。即便如此,还是要写,毕竟这是团队成长的机会。

究其根本我们应该写点啥?

个人认为,我们主要应该关注两点点,事故是怎么引起的解决问题过程用了多久,下次能不能缩短时间

解释下这两点,首先事故究竟是怎么引起了,变更导致的、服务依赖导致的、还是第三方基础设施或者硬件导致;不吭不响变更了线上业务导致别人故障,肯定是变更者的责任,反过来你周知了,别人还是故障了,第一责任应该是别人了。比如执行了 redis 的 keys *拖死了 redis,导致其它服务不能正常使用 redis,你不应该责怪 SRE 为什么没把业务数据库隔离开,为什么没有把 keys * 命令裁掉,自己的锅自己背,不要顾左右而言它,建议报告里面都不要提;事故解决过程一定要详细记录,这直接关乎下次碰到类似问题处理效率,如果说线上出现了一个事故,你一分钟把他解决了,可能就不再是个事故了,所以我们要认真反思解决问题的时间,并想办法缩短解决问题的过程。而不要在事故报告里面写很多放之四海而皆准的大道理,目的就是想让大家一起帮忙担责任,其实没什么意义的。

谷歌有句名言,系统正常,只不过是系统无数异常的一种特例而已。谷歌尚且这样看待故障,更何况我们呢?

说到这里可能有人要说了,这可能关乎我的钱途命运,不公平。个人认为线上事故还是要分情况对待的,比如有个同学为了提高性能引入了一个问题,最终导致事故,这种事故就不应该记入考核或者先观察观察,否则会打消大家的积极性。

到底什么应该记入考核,设置了一个 SOP 标准流程,不按照标准流程开发或者发布,这种应该记入考核,如果没有,出问题,管理者就该反思了,或者想办法制定一个。比如中午吃饭的时候发了个版本,发布完成之后,没有观察是否正常,直接去吃饭了,回来后发现故障发生了,又找不到人一起解决,最终导致了线上事故。

但事故本身都是级别的啊,评论不能用和加入购物车不能用,这完全不能划等号。换句话说,不能同等对待,可能有些看似是故障,但是完全没有影响。这就需要给故障进行定级了,对于电商或者金融交易平台,可以根据界面功能的重要性和金钱相对损失进行定级,而对于大多数后端服务而言我们可以考虑使用请求成功率进行定级,比如从请求次数的维度承诺服务可用性 95%,一个季度总共调用 1000 次;其中 50 次不可用是可以忍受的,如果一次故障消耗了 25 次,也就是 50%,就可以定位 P0 级故障,其它的以此类推。这是一种比较容易落地的方式。生活中也很常见,告诉你喝酒不要开车,非要开,只能把分扣完了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生技术爱好者社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档