Skip to content

从《关于语雀 23 日故障的公告》学习复盘

背景

INFO

为啥要写这篇复盘的分析了,一呢我也是程序员,我知道生产事故对用户的造成的影响和损失,特别是严重的事故问题,所以我也会特别重视自己写的代码,敬畏生产吧;二是想学习一下大厂比较官方正式生产事故复盘说明,以备不时之需(程序员都希望自己写的代码没有任何 bug),可以当机立断,快速应对问题,解决问题,做好对内复盘、对外公告等事情,不至于手忙脚乱,不知所措的好,特此有感而发的记录

事情的前因后果简单地说:在 2023 年 10 月 23 日下午,具体时间两点钟左右开始陆续有群友反馈语雀网站崩了,访问不了,到三点多一点语雀公众号发通知确定是系统崩了(图一),当天晚上系统恢复通知(图二)。到 24 日晚上语雀公众发公众通知说明问题原因及补偿措施一文学习语雀团队是如何对生产事故


图一

图二
复盘分为几个步骤进行说明,条理清晰和循序渐进

第一步:交代问题及道歉

10 月 23 日语雀出现重大服务故障,且持续 7 个多小时才完全恢复

先说明发生了什么问题,以及最终结果(什么时候恢复、多久恢复使用等用语,时间影响范围)

给用户使用造成极大不便,对此我们深感抱歉

然后向用户诚恳的道歉,语言一定要承认自己错了

经过复盘,我们在这里向大家进一步说明故障原因、修复过程和改进措施。

如果可以的话,进一步说明事故的前因后果,增加道歉的心意及事故问题的前因后果、后续如何改进,希望得到用户的认可和谅解。增加用户的同理心和共鸣感

第二步:说明事故原因

10 月 23 日下午,服务语雀的数据存储运维团队在进行升级操作时,由于新的运维升级工具 bug,导致华东地区生产环境存储服务器被误下线。受其影响,语雀数据服务发生严重故障,造成大面积的服务中断

说明时间(不用太具体),事故是怎么造成的

第三步:具体过程

  • 14:07 数据存储运维团队收到监控系统报警,定位到原因是存储在升级中因新的运维工具 bug 导致节点机器下线;
  • 14:15 联系硬件团队尝试将下线机器重新上线;
  • 15:00 确认因存储系统使用的机器类别较老,无法直接操作上线,立即调整恢复方案为从备份系统中恢复存储数据;
  • 15:10 开始新建存储系统,从备份中开始恢复数据,由于语雀数据量庞大,此过程历时较长;
  • 19 点完成数据恢复;同时为保障数据完整性,在完成恢复后,用时 2 个小时进行数据校验;
  • 21 点存储系统通过完整性校验,开始和语雀团队联调;
  • 22 点恢复语雀全部服务。

从事故的发现、修复解决、验证、恢复上线的几个角度简单明了说明在做的哪些事情

用户所有数据均未丢失。

最重要一点就是必须说明强调用户关心的核心——数据没问题。镇定剂,防止用户恐慌或投诉

第四步:改进措施

技术变更操作的“可监控,可灰度,可回滚”的系统化建设和流程审计,从同 Region 多副本容灾升级为两地三中心的高可用能力,设计足够的数据和系统冗余实现快速恢复,并进行定期的容灾应急演练。只有这样,才能提升严重基础设施故障时的恢复速度,并从根本上避免这类故障再次出现

官方术语,作为一个专业的、成熟的、靠谱的技术团队必备说明,特别是专有术语的应用,可以起到锦上添花的作用

1、升级硬件版本和机型,实现离线后的快速上线。该措施在本次故障修复中已完成; 2、运维团队加强运维工具的质量保障与测试,杜绝此类运维 bug 再次发生; 3、缩小运维动作灰度范围,增加灰度时间,提前发现 bug; 4、从架构和高可用层面改进服务,为语雀增加存储系统的异地灾备。

从根本上避免这次事故的发生,及采取的措施角度进一步说明。由小到大的顺序改进措施

第五部:赔偿方案

针对语雀个人用户,我们赠送 6 个月的会员服务。操作流程:进入工作台「账户设置」,点击左侧「会员信息」,在会员信息页面点击「立即领取」,即可获得赠送服务

C 端产品一般都比较重视这一块,防止用户流失或口碑不好,给用户一点补偿和心理安慰

第六步:再次道歉

这次的故障让我们深切地感受到了用户对语雀的依赖以及语雀肩上的重大责任。再次向所有语雀用户表达我们诚挚的歉意

首尾呼应,再次增加道歉的心意

我们将持续提升语雀的服务质量和服务稳定性,不辜负每一位用户的信任!

表达团队做好的决心

总结

总体是很中规中矩的公告说明,跟我工作中生产事故的复盘基本差不多。公告中每一个步骤顺序和阐述的内容措辞,都是很专业的,不是虽然敷衍了事的。很有借鉴和参考价值,万一真的需要自己做生产事故复盘的时候,说不定可以参考下这篇文章,当然希望用不到最好了

总而言之,生产事故,作为一个程序员是最不想发生的,但有些事情不是自己的控制范围或能力范围,很难避免的。所以我们要做的就是写好每一行代码,重视自己所做的事情,敬畏生产。当然,如果真的不可避免或不知道的情况下发生了,也不要慌乱,首先先解决问题,紧急上线。然后在进行复盘分析,避免类似的事情再次发生。还有我们都是普通的程序员,不是天才,不要完美主义心态,不然会给自己很大的压力,做好该做的事情,力所能及的做好自己

原文阅读:
关于语雀 23 日故障的公告

还有一个号主对此次事件的解读(评论有点意思):
语雀,这波故障,放眼整个互联网也是炸裂般的存在。


想想好像确实是这么一回事,哈哈哈

推荐阅读:
语雀 P0 事故复盘,这 9 个字亮了!

关于“语雀故障” 的思考:可监控!可灰度!可回滚!