当前位置: 首页 > news >正文

语雀P0级故障复盘,有9个字亮了

大家好,我是洋子

最近语雀不是出了个号称 “载入史册” 的 P0 级事故嘛 —— 连续宕机接近8个小时无法使用,作为一个大厂知名产品,这个修复速度属实让人无法理解

故障公告原文:https://mp.weixin.qq.com/s/WFLLU8R4bmiqv6OGa-QMcw

很快,官方就发布了《故障公告》。有一说一,这个公告写得还是挺不错的,按照时间线梳理出了各时间节点的处理过程

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

在这里插入图片描述
在改进措施一栏中,先不说具备两地三中心的高可用能力,洋子发现了9个核心关键字可监控,可灰度,可回滚,可以说是维持系统可用性的最基本的保命措施

先举个例子,讲一下这三种能力的用处

可灰度

将系统的新版本全量部署给所有用户之前,先仅对一小部分用户进行试用。这样可以通过收集这部分用户的反馈和监控数据就能评估新版本的稳定性,并及时进行调整和修复,从而减少对全体用户的潜在风险。

灰度发布又有很多策略。比如经典的按流量阶段性发布,先随机给 5% 的用户使用新版本,验证没问题后,再给 20%、50%、75% 的用户使用新版本逐渐放量,直到覆盖 100% 的用户。

还有很多策略,列举几个常见的:

1)按照用户的业务属性灰度,比如 VIP 用户先用、老用户先用。

2)按人群灰度,比如特定地域、特定年龄、特定偏好、特定客户端的用户。

3)按渠道灰度,比如通过某平台注册的用户先体验等等。

灰度做的好,可以避免很多线上问题,及时控制影响。因此很多知名产品发布时都会采用灰度或者内测的策略,这也就是为什么有些同学能第一时间体验到微信新功能,有些同学却没有

可监控

可监控是指能够实时地收集和展示系统运行时的数据和指标,以便开发和运维同学可以及时发现系统问题、更快进行故障排查和性能调优。需要监控的信息可以包括系统性能指标(内存、CPU、带宽等)、业务日志、错误信息等。

可回滚

线上系统出现问题时,可以将已经部署的新版本回退到之前的稳定版本。这样做可以快速恢复系统,减少对用户的影响,并给开发同学足够的时间来排查和修复问题

如果我们的系统具备这样的能力,按照一般的研发测试流程,在我们测试完成测试后,如果是服务端,则进入上线阶段,如果是客户端,则进入发版阶段。在上线和发版阶段,一般来说都是需要先进去一个小流量的范围,先影响一小部分用户,若期间测试验证没有问题,则扩大范围,直到全量,这就是灰度发布的意思,如果灰度期间有监控报警,则可以及时回滚止损,回退到线上的历史版本,避免影响线上用户

如果我们的系统不具备这样的灰度的能力,一方面只能一次性推全新版本,看起来省了不少事,但一旦出现问题,影响线上的全部用户。如果没有监控,出现问题后,我们无法第一时间及时感知,只能被动等着线上用户来反馈问题。如果没有回滚能力,有Bug只能等着再次上线修复,也会拉长造成影响的时间

语雀作为阿里旗下的产品,有千万级用户的体量,内部不应该没有这样的监控平台、灰度发布和部署管理平台,总之令人匪夷所思,另外这次Bug的原因是由于运维工具有Bug,是否经过充分的测试?该不会又有个小同学背锅了

最后,面对这样超级严重的事故,我想说一定要牢记,先止损!先止损!语雀给的赔偿方案还是比较有诚意的,直接给六个月会员,用语雀的小伙伴可以去领取了
在这里插入图片描述

相关文章:

语雀P0级故障复盘,有9个字亮了

大家好,我是洋子 最近语雀不是出了个号称 “载入史册” 的 P0 级事故嘛 —— 连续宕机接近8个小时无法使用,作为一个大厂知名产品,这个修复速度属实让人无法理解 故障公告原文:https://mp.weixin.qq.com/s/WFLLU8R4bmiqv6OGa-QMc…...

在 openresty 中使用 capnp lua 库

1. 安装必要的工具和库 apt-get install capnproto luarocksluarocks install lua-capnproto luarocks install lua-cjsonlua-cjson 库不是必须的,是由于后面的演示程序要使用,就一起装上了。 可以看下库的安装位置: root350983744ebf:~# …...

私藏小技巧:让微信朋友圈营销方便化的小窍门!

微信,这个拥有十亿用户的社交软件,已经成为生活中不可或缺的一部分。 而朋友圈,这个微信的基础功能,是聚宝盆,也是一切流量的尽头。 现在公域+私域的流量增长变现体系很火。朋友圈是一切公域流量的尽头&a…...

Centos使用tomcat部署jenkins

jenkins的最新版本已经不在支持jdk8,支持的jdk环境如下: 安装jdk环境 yum -y install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64安装tomcat tomcat官网 cd /optwget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat…...

uni-app打包apk实现自动更新

一、直接复制粘贴就可用(豪横) app.vue文件里写 //app.vue里写 <script>export default {onShow: function() {console.log(App Show)},onHide: function() {console.log(App Hide)},onLaunch: function() {let appVersion uni.getSystemInfo({success: function(e) {ap…...

SRS srs-bench

1 srs-bench 音视频压测工具&#xff0c;包括RTMP/FLV/WebRTC/GB28181等&#xff0c;未来还会完善。 SB(SRS Bench) is a set of benchmark and regression test tools, for SRS and other media servers, supports HTTP-FLV, RTMP, HLS, WebRTC and GB28181. For RTMP/HLS/F…...

HackTheBox-Starting Point--Tier 1---Appointment

文章目录 一 题目二 实验过程 一 题目 Tags Web、Databases、Injection、Apache、MariaDB、PHP、SQL、Reconnaissance、SQL Injection译文&#xff1a;Web、数据库、注入、Apache、MariaDB、PHP、SQL、侦察、SQL 注入Connect To attack the target machine, you must be on …...

【工具】Java请求带http重定向的地址 自动进行重定向

【工具】Java请求带http重定向的地址 自动进行重定向 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;public class HTTPGETWithMultipleHeaders {public static voi…...

接口自动化测试方案

1、引言 1.1 文档版本 版本 作者 审批 备注 V1.0 XXXX 创建测试方案文档 1.2 项目情况 项目名称 XXX 项目版本 V1.0 项目经理 XX 测试人员 XXXXX&#xff0c;XXX 所属部门 XX 备注 1.3 文档目的 本文档主要用于指导XXX-YY项目常用接口自动化测试…...

TikTok文化探索:热议时事与社会话题

在当今数字时代&#xff0c;社交媒体平台如TikTok已经成为了我们日常生活中不可或缺的一部分。它不仅仅是一个娱乐应用&#xff0c;也是一扇窥视世界、探讨时事和社会话题的窗户。本文将深入探讨TikTok如何成为文化探索的平台&#xff0c;热议时事和社会话题&#xff0c;以及它…...

springboot操作nosql的mongodb,或者是如何在mongodb官网创建服务器并进行操作

第一步&#xff1a;在mongodb的官网里面创建云服务器 点进去 这是免费的&#xff0c;由于是一个项目只可以创建一个&#xff0c;这里我已经创建好了 用本地的mongodb服务也是可以的 第二步&#xff1a;点击connect,下载连接mongodb的软件&#xff1a;MongoDBCompass 第三步&am…...

QWEN technical report

通义千问-Qwen技术报告细节分享 - 知乎写在前面大家好&#xff0c;我是刘聪NLP。 阿里在很早前就开源了Qwen-7B模型&#xff0c;但不知道为什么又下架了。就在昨天阿里又开源了Qwen-14B模型&#xff08;原来的7B模型也放出来了&#xff09;&#xff0c;同时还放出了Qwen的技术报…...

提升MODBUS-RTU通信数据刷新速度的常用方法

SMART PLC的MODBUS-RTU通信请参考下面文章链接: 【精选】PLC MODBUS通信优化、提高通信效率避免权限冲突(程序+算法描述)-CSDN博客MODBUS通讯非常简单、应用也非常广泛,有些老生常谈的问题,这里不再赘述,感兴趣的可以参看我的其它博文:SMART200PLC MODBUS通讯专题_RXXW…...

PyTorch 与 TensorFlow:机器学习框架之战

深度学习框架是简化人工神经网络 (ANN) 开发的重要工具&#xff0c;并且其发展非常迅速。其中&#xff0c;TensorFlow 和 PyTorch 脱颖而出&#xff0c;各自在不同的机器学习领域占有一席之地。但如何为特定项目确定理想的工具呢&#xff1f;本综合指南[1]旨在阐明它们的优点和…...

超简单理解冒泡排序

1.冒泡排序(Bubble Sort) 较简单排序算法。 它会遍历若干次要排列的数列&#xff0c;每次遍历&#xff0c;会从前往后比较相邻两个数的大小。 如果前者比后者大&#xff0c;就交换他们位置。遍历一次最大元素在数列末尾。重复直到数列有序。 那么遍历需要一个变量控制范围。…...

模拟IC设计工程师成长日记

很多IC设计的新人&#xff0c;不知道进入IC设计行业后会有哪些成长和学习的地方。 很多初入IC设计职场的人也都会比较恐慌&#xff0c;成长进步需要一个时间和经验的积累 今天给大家找了一个叫“模拟IC设计“攻城狮”的成长日记供大家参考. 以模拟IC设计工程师的身份进入职场&a…...

修炼k8s+flink+hdfs+dlink(六:学习namespace,service)

一&#xff1a;什么是namespace&#xff1f; 你可以认为namespaces是你kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间&#xff0c;它们在逻辑上彼此隔离。 他们可以为您和您的团队提供组织&#xff0c;安全甚至性能方面的帮助&#xff01; 二&a…...

法语导游就业前景如何?

随着国际交流的日益频繁&#xff0c;旅游业正在迅猛发展。尽管全球讲法语的人数并不算多&#xff0c;但讲法语的国家分布广泛。因此&#xff0c;如何成为一名合法的法语导游&#xff0c;以及法语导游的就业前景如何&#xff0c;成为了法语爱好者比较关注的问题。 我们知道&…...

iOS自动混淆测试处理笔记

1 打开 ipa&#xff0c;导出ipa 路径和配置文件路径会自动填充 2 点击 开始自动混淆测试处理 自动混淆测试是针对 oc 类和oc方法这两个模块进行自动混淆ipa&#xff0c;并ipa安装到设备中运行&#xff0c;通过检测运行ipa包是否崩溃&#xff0c;来对oc类和oc方法进行筛选。如果…...

C51--单片机中断

51单片机是单线程模式&#xff0c;需要用到硬件中断。 一、中断系统 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。 当中央处理器CPU正在处理某件事的时候&#xff0c;外界发生了紧急事件请求&#xff0c;要求CPU暂停当前工作&#xff0c;转而去处理这个紧急…...

银河麒麟V4.0.2-sp4服务器到手后,这三步网络配置(IP/DNS/源)一个都不能少

银河麒麟V4.0.2-sp4服务器网络配置实战指南&#xff1a;从零搭建稳定运行环境 刚拿到一台预装银河麒麟V4.0.2-sp4操作系统的服务器时&#xff0c;许多运维工程师常会陷入"有设备却用不起来"的困境——无法远程连接、软件包安装失败、系统更新卡壳&#xff0c;这些问题…...

OpenClaw多模型切换指南:Qwen3-32B与本地Llama混合调用

OpenClaw多模型切换指南&#xff1a;Qwen3-32B与本地Llama混合调用 1. 为什么需要多模型切换&#xff1f; 去年冬天&#xff0c;当我第一次尝试用OpenClaw自动处理周报时&#xff0c;发现一个有趣的现象&#xff1a;用同一个模型处理文本润色和代码生成任务&#xff0c;效果差…...

基于STM32与ADC的锂电池电量监测系统设计

1. 锂电池电量监测为什么需要STM32和ADC&#xff1f; 做嵌入式开发的朋友应该都遇到过这样的需求&#xff1a;设备用锂电池供电&#xff0c;需要实时显示剩余电量。比如手持设备、智能家居控制器或者无人机&#xff0c;电量显示都是刚需功能。但锂电池的特性决定了直接测量电量…...

告别手动调参!模糊PID如何让直流电机在负载突变时稳如泰山?

模糊PID控制&#xff1a;让直流电机在负载突变时稳如泰山的实战指南 引言&#xff1a;工业自动化中的电机控制痛点 在自动化产线上&#xff0c;直流电机突然遭遇负载变化时&#xff0c;你是否也经历过这样的场景&#xff1f;——机械臂正在精准抓取工件&#xff0c;突然因为物料…...

技术日报|字节DeerFlow今日强势登顶日增3787星总量破4.6万,3D建筑编辑器黑马杀入前二

&#x1f31f; TrendForge 每日精选 - 发现最具潜力的开源项目 &#x1f4ca; 今日共收录 12 个热门项目&#x1f310; 智能中文翻译版 - 项目描述已自动翻译&#xff0c;便于理解&#x1f3c6; 今日最热项目 Top 10 &#x1f947; bytedance/deer-flow 项目简介: DeerFlow是一…...

AI+医疗从模型到产品:做一个真正可用系统,需要跨过哪些坎?

# AI医疗从模型到产品&#xff1a;做一个真正可用系统&#xff0c;需要跨过哪些坎&#xff1f;做 AI医疗的人&#xff0c;常常会经历一个很像的阶段。前期我们把大部分精力放在模型上&#xff1a;换 backbone、调 loss、做多模态融合、补校准、压错误样本&#xff0c;最后终于把…...

nli-distilroberta-base前端集成案例:Vue.js构建智能文本分析界面

nli-distilroberta-base前端集成案例&#xff1a;Vue.js构建智能文本分析界面 1. 场景价值与方案概述 电商平台的客服系统每天需要处理大量用户咨询&#xff0c;其中很多问题都涉及产品参数的对比&#xff08;如"这款手机电池容量比A型号大吗&#xff1f;"&#xf…...

情感GDP报告:测试员负面情绪成经济指标的行业变革

一、导言&#xff1a;情感GDP的崛起与测试行业新坐标 2025年全球情感计算市场规模突破596亿元&#xff08;数据来源&#xff1a;2024年情感计算行业报告&#xff09;&#xff0c;"情感GDP"作为衡量情绪价值的经济指标&#xff0c;正重塑职业评价体系。软件测试领域首…...

SDMatte API接口开发教程:基于Python Flask构建标准化服务

SDMatte API接口开发教程&#xff1a;基于Python Flask构建标准化服务 1. 开篇&#xff1a;为什么需要API接口 如果你用过SDMatte这个强大的图像抠图工具&#xff0c;可能会遇到这样的场景&#xff1a;想把抠图功能集成到自己的应用里&#xff0c;或者需要批量处理大量图片。…...

C/C++进阶知识1.0

C/C进阶知识 1.delete与delete[ ] ClassA *pclassanew ClassA[5]; delete pclassa; 与 int *p new int[5]; delete p; 1.1内置类型 不调用析构函数 1.2自定义类型 析构函数调用一次 2.内存知识 2.1栈堆增长方向不同的原因&#xff1a; 栈向下增长堆向上增长的设计目的是…...