Redian新闻
>
语雀 P0 级事故宕机 8 小时,被网友怒喷,运维又背锅?

语雀 P0 级事故宕机 8 小时,被网友怒喷,运维又背锅?

公众号新闻

转自:InfoQ (ID:infoqchina )  整理:凌敏

网友热评:假如语雀的故障修复文档在语雀里,经典死锁案例就诞生了。

10 月 23 日 14 时左右,蚂蚁集团旗下的在线文档编辑与协同工具语雀发生服务器故障,在线文档和官网目前均无法打开。当日 15 时,语雀发布官方声明称,“目前因网络故障,出现无法访问的情况。此故障不会影响用户在语雀存储的数据,不会引起数据丢失,我们正在紧急恢复中,再次抱歉给你带来的损失。”

随后,“语雀崩了”登上话题热搜,有网友表示自己的公司项目文档都在语雀上,文档打不开严重影响工作进度;有网友将自己整理的面试题放在了语雀上,宕机时正好赶上电话面试,想查答案都无从下手;也有网友对语雀的运维提出质疑,认为“长时间的故障明显是存储出现了问题,用户数据可能丢失了,在紧急恢复”。

23 日 22:24,语雀发布声明称,“服务现已全部恢复正常,用户访问各端语雀都可正常使用。今日故障严重干扰了所有语雀用户的使用,对此我们深感抱歉。后续我们将发布正式公告同步情况。”

从故障发生到完全恢复正常,语雀整个宕机时间将近 8 小时,如此长时间的宕机已经达到了 P0 级事故,并在网络上引发巨大讨论。

10 月 24 日 21 时,语雀发布官方公告,详述了 23 日故障原因及处理过程,并发布了赔偿方案。语雀表示:“这次的故障让我们深切地感受到了用户对语雀的依赖以及语雀肩上的重大责任。再次向所有语雀用户表达我们诚挚的歉意。我们将持续提升语雀的服务质量和服务稳定性,不辜负每一位用户的信任!”

故障原因及处理过程

据语雀公告,10 月 23 日下午,服务语雀的数据存储运维团队在进行升级操作时,由于新的运维升级工具 bug,导致华东地区生产环境存储服务器被误下线。受其影响,语雀数据服务发生严重故障,造成大面积的服务中断。为了尽快恢复服务,语雀和数据存储运维团队全力进行数据恢复工作,但受限于恢复方案、数据量级等因素,整体用时较长。具体过程如下:

  • 14:07 数据存储运维团队收到监控系统报警,定位到原因是存储在升级中因新的运维工具 bug 导致节点机器下线;

  • 14:15 联系硬件团队尝试将下线机器重新上线;

  • 15:00 确认因存储系统使用的机器类别较老,无法直接操作上线,立即调整恢复方案为从备份系统中恢复存储数据;

  • 15:10 开始新建存储系统,从备份中开始恢复数据,由于语雀数据量庞大,此过程历时较长,19 点完成数据恢复,同时为保障数据完整性,在完成恢复后,用时 2 个小时进行数据校验;

  • 21 点存储系统通过完整性校验,开始和语雀团队联调,最终在 22 点恢复语雀全部服务。用户所有数据均未丢失。

语雀表示,作为一款服务千万级客户的文档产品,通过这次故障深刻认识到,应该做到更完善的技术风险保障和高可用架构设计,尤其是面向技术变更操作的“可监控,可灰度,可回滚”的系统化建设和流程审计,从同 Region 多副本容灾升级为两地三中心的高可用能力,设计足够的数据和系统冗余实现快速恢复,并进行定期的容灾应急演练。只有这样,才能提升严重基础设施故障时的恢复速度,并从根本上避免这类故障再次出现。

为此语雀制定了如下改进措施:

  1. 升级硬件版本和机型,实现离线后的快速上线。该措施在本次故障修复中已完成;

  2. 运维团队加强运维工具的质量保障与测试,杜绝此类运维 bug 再次发生;

  3. 缩小运维动作灰度范围,增加灰度时间,提前发现 bug;

  4. 从架构和高可用层面改进服务,为语雀增加存储系统的异地灾备。

此外,语雀团队还公布了赔偿方案:

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

  • 针对语雀空间用户,由于情况比较复杂,语雀团队会单独制定赔偿方案。请空间管理员留意语雀站内信。

语雀崩了,开发者怎么看?


语雀的宕机事件在网络上引发巨大讨论,有网友对在线文档的可靠性提出质疑,有网友调侃语雀的运维手册是不是写在了语雀文档上,也有网友分析语雀创始人玉伯离职后,语雀是否已经走到了“生死局”,有被阿里放弃的可能?


网友想喝阔落 de 阿七认为,最基础的信息安全是知识库类工具最根本的竞争力,如果今后再出现类似情况导致数据丢失,亡羊补牢的赔偿都是无济于事的。而且语雀的后续改进方案中只字未提本地离线存储功能的开发,那么将如何保证用户数据的万无一失?

知乎网友 @段小草从云服务故障角度进行了分析,他认为在线文档的可靠性和信任问题是所有云服务面临的问题:

云服务不可靠性的问题是无解的,只能从理论上讲,用户越多的大厂产品,运维保障能力越强,理论上会越有保障。但这样的时候我们是需要取舍的,比如像 OpenAI 的 API 服务,如果没有任何的一家产品能提供与之相当的服务,那就只能祈祷它不出问题;但如果可以,就要有容灾的备选,甚至做一个本地模型顶上,哪怕性能不如 GPT-4 也可以最大程度地保证业务不中断。


但像笔记软件这种,其实可选产品很多,本地软件也有,再把身家性命系到唯一的在线服务上就没那么明智了。如果没有协作需求,完全可以自己离线。即便有多人联网协作需求,语雀这次的宕机过后,相信笔记软件之间的互相备份,或者像题主提到的本地存储 + 云端备份 + 多人协作的想法,也会有相应的解决方案。

知乎网友 @王半山认为,语雀在蚂蚁体系内是巨大的负担,成本远大于收益:

语雀在未商业化之前,是集团内部代替 confluence 存在的,因为内部的文档资料实在太多,confluence 的性能不够,所以在内部就做了一个 yuque,而且这个东西是前端的团队维护的。团队规模还小的话,用起来还好,但是一旦商业化,大规模用了,那性能就肯定是巨大的瓶颈了。这个产品主要是前端团队主导,大量的后端都是用 NodeJS 写的,这就养了一批独立集团内部 Java 体系之外开发人员,这样无论是现有的集团账号架构、高可用架构都没法直接复用,所有就有了大量需要重复造轮子的事情发生,这些都是要成本的。

语雀的技术架构演进历程

公开信息显示,语雀于 2016 年孵化自蚂蚁科技。当时,蚂蚁金融云需要一个工具来承载它的文档,负责的技术同学利用业余时间搭建了这个文档工具。当时,语雀底层服务完全基于体验技术部内部提供的 BaaS 服务和容器托管平台:

  • Object 服务:一个类 MongoDB 的数据存储服务;

  • File 服务:阿里云 OSS 的基础上封装的一个文件存储服务;

  • DockerLab:一个容器托管平台。

2017 年,为了应对业务发展带来的挑战,语雀团队主要从下面几个点进行改造:

  • BaaS 服务虽然使用简单成本低,但是它们提供的功能不足以满足语雀业务的发展,同时稳定性上也有不足。所以语雀团队将底层服务由 BaaS 替换成了阿里云的 IaaS 服务(MySQL、OSS、缓存、搜索等服务)。

  • Web 层仍然采用了 Node.js 与 Egg 框架,但是业务层借鉴 rails 社区的实践开始变成了一个大型单体应用,通过引入 ORM 构建数据模型层,让代码的分层更清晰。

  • 前端编辑器从 codeMirror 迁移到 Slate。为了更好的实现语雀编辑器的功能,语雀团队内部 fork 了 Slate 进行深入开发,同时也自定义了一个独立的内容存储格式,以提供更高效的数据处理和更好的兼容性。

2018 年初,语雀开始正式对外提供服务,进行商业化。为了应对业务发展,语雀的架构也随之发生了演进:将底层的依赖完全上云,全部迁移到了阿里云上,阿里云不仅仅提供了基础的存储、计算能力,同时也提供了更丰富的高级服务,同时在稳定性上也有保障:

  • 丰富的云计算基础服务,保障语雀的服务端可以选用最适合语雀业务的的存储、队列、搜索引擎等基础服务;

  • 更多人工智能服务给语雀的产品带来了更多的可能性,包括 OCR 识图、智能翻译等服务,最终都直接转化成为了语雀的特色服务。

而在应用层,语雀的服务端依然还是以一个基于 Egg 框架的大型的 Node.js Web 应用为主。但是随着功能越来越多,也开始将一些相对比较独立的服务从主服务中拆出去,可以把这些服务分成几类:

  • 微服务类:例如多人实时协同服务,由于它相对独立,且长连接服务不适合频繁发布,所以语雀团队将其拆成了一个独立的微服务,保持其稳定性。

  • 任务服务类:像语雀提供的大量本地文件预览服务,会产生一些任务比较消耗资源、依赖复杂。语雀团队将其从主服务中剥离,可以避免不可控的依赖和资源消耗对主服务造成影响。

  • 函数计算类:类似 Plantuml 预览、Mermaid 预览等任务,对响应时间的敏感度不高,且依赖可以打包到阿里云函数计算中,语雀团队会将其放到函数计算中运行,既省钱又安全。

随着编辑器越来越复杂,在 Slate 的基础上进行开发遇到的问题越来越多。最终语雀还是走上了自研编辑器的道路,基于浏览器的 Contenteditable 实现了富文本编辑器,通过 Canvas 实现了表格编辑器,通过 SVG 实现了思维导图编辑器。

参考链接

https://mp.weixin.qq.com/s/WFLLU8R4bmiqv6OGa-QMcw

https://www.zhihu.com/question/627418678

https://www.infoq.cn/article/DSCQEMsmoIEXjFLtuw5C?utm_campaign=geek_search&utm_content=geek_search&utm_medium=geek_search&utm_source=geek_search&utm_term=geek_search

END

官方站点:www.linuxprobe.com

Linux命令大全:www.linuxcool.com

刘遄老师QQ:5604215

Linux技术交流群:2636170

(新群,火热加群中……)

想要学习Linux系统的读者可以点击"阅读原文"按钮来了解书籍《Linux就该这么学》,同时也非常适合专业的运维人员阅读,成为辅助您工作的高价值工具书!


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
语雀,这波故障,放眼整个互联网也是炸裂般的存在。滴滴P0级故障,又是降本增笑?澳洲富豪怒喷"打工人太傲慢",需要教训?!网友喷到他道歉,然而...我家的小貓咪笑喷,南京一头野猪12分钟横渡长江火了,我却笑死在网友的评论区微信的聊天记录占比,被网友玩成了新一代 MBTI ?华裔百万富翁和选美冠军办奢华婚礼后,遭全网怒喷,急得疯狂删帖...丢下老公,带娃去见“初恋男神”,被网友偷拍火上热搜?网友:这个显眼包当得太值了芝大UChiago房源HP02 | 不收中介费装修惹纠纷,又背高利贷,纽约这家传奇川菜馆申请破产语雀突发 P0 级事故!宕机 8 小时被网友怒喷,运维又背锅?天山 · 天池 二首每日原则:在设计组织时,运用五步流程是通往成功的捷径,不同员工能在不同步骤发挥良好作用暴跌1.4万亿,中国背锅?日本还想夺咱们生产线……BIG、Sasaki、隈研吾等十家顶级事务所,联合打造欧洲最大规模的城市再生项目抖音涨粉300多万的普通大学生,被网友们当成了敌人。「最佳睡眠时长」竟不是“8小时”!Nature子刊:睡眠少于7小时,心脏风险激增!超8小时死亡风险大幅增加!经销商暴动、消费者抗议,慕思和辛巴谁该为“破价床垫”背锅?澳洲物价持续飞涨,“托尼老师”要背锅?澳联储行长言论引争议,网友:秃顶拯救经济英国7大顶级事务所、9个经典设计项目、独家私宅参访装一点点东西就烂了!Coles纸袋被狂喷,大批网友复议!WPP上海多个办公室被警方突击搜查;海底捞回应招聘传菜员要985本科/211硕士学历;语雀大规模服务器故障长达10小时丨雷峰早报她41岁生三胎后,被网友吐槽“从维密天使变大妈”:妈惹你了?这一次,以色列籍女子诺雅和她的母亲李春红,被网友扒了个底朝天第十一章第二节 金融资本和货币政策一百 二大娘互联网大厂宕机事件大比拼!网友:开“猿”节流,降本增“笑”?新版ChatGPT太火爆,导致宕机两小时?用户崩溃:“我明天9点DDL,快修好啊!”程序员篡改 ETC 余额,一年私吞 260 余万元;语雀公布故障原因及赔偿方案;各家财报发布,创始人们:就很难受|Q资讯澳亚裔家庭Qantas降级事件,要求退款,目前仍在索要差价温村这地点开车太崩溃! 网友们怒喷插队的司机警惕!澳洲前总理因发了一张照片,被网友扒出隐私!专家警告:不要在网上发布它!揭露最严重的后果...九十九 闲话原来顶级事务所的设计师,都这样偷懒!运维人如何少背锅?这 7 种常见监控工具,你是否全用过?
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。