语雀P0级时间爆发,留给运维的时间不多了?
事件背景
打工人的焦虑,已经延伸到在线文档了。近日,语雀P0级故障想必大家都有所体会,宕机近8小时,笔记、离线同步完全不可用。作为用户尤其担心我的文档资料是否会因此消失。

这泼天的8小时,放眼互联网界也是相当炸裂的。
从次日的故障处理通报可知,团队在收到运维监控系统报警后,定位故障根因来自于新的运维升级工具中的一个致命bug,该bug带来了一系列严重的影响。更深层次的问题在于高可用架构体系的设计、运维流程,以及项目规范的不完善。
教训是个体的,经验是共享的。语雀表示:作为一款千万级用户的在线文档,应该做到更完善的技术风险保障和高可用架构设计,尤其是面向技术变更操作的“可监控,可灰度,可回滚”的系统化建设和流程审计,从同 Region 多副本容灾升级为两地三中心的高可用能力,设计足够的数据和系统冗余实现快速恢复,并进行定期的容灾应急演练。
如何提升运维效率,保障系统的稳定运维,故障如何才能快速恢复,并从根本上避免此类故障再次出现才是运维的核心要义。
一、不断完善监控系统
「无监控,不运维」,监控系统的地位不言而喻。监控什么,能发挥什么价值,结合LinkSLA智能运维管家进一步阐述。
1、实时采集监控数据,
包括硬件、操作系统、中间件、应用程序等各个维度的数据。实时掌握瞬息万变的复杂的业务系统,对业务的健康稳定有着极其重要的价值。
2、实时反馈监控状态,
通过对采集的数据进行多维度统计和可视化展示,能实时体现监控对象的状态是正常还是异常。
3、预知故障和告警,
能够提前预知故障风险,并及时发出告警信息。
4、辅助定位故障,
提供故障发生时的各项指标数据,辅助故障分析和定位。
5、辅助性能调优,
为性能调优提供数据支持,比如慢SQL分析与优化,接口响应时间等。
6、辅助容量规划,
为服务器、中间件以及应用集群的容量规划提供数据支撑。例如看似简单的空间增长问题,实际检查起来非常费时费力,很多用户会过滤掉,不愿为这种小事每天做例行检查。通过AI机器学习算法,进行趋势性监测分析,提前一周告知客户,做好空间规划与清理。
二、更有效地使用监控系统
在故障复盘时,有没有做监控?监控是否及时?监控信息是否有助于快速定位问题?这三个问题一定会被追问。可见有监控系统还远远不够,如何用好才是关键。
1、统一部署,全链路监控
将分散监控实现集中统一的监控管理,建立统一的事件管理体系,对告警严重等级设定标准、规范事件处理流程,提高运维效率。通过可视化大屏,可全面直观地掌握业务系统及IT资源运行状态。
2、趋势预测,提前预知
清楚使用哪些指标来刻画监控对象的状态,比如对某个接口进行监控,可以采用请求量、耗时、超时量、异常量等指标来衡量。
机器学习算法通过数据分析趋势变化,对未来趋势进行预测,自动调整阈值,提前对故障进行响应,实现告警收敛、异常监测, 辅助运维人员聚焦关键故障信息,极大程度地提高运维效率。
3、设定合理的报警阈值和等级
达到什么阈值需要告警?对应的故障等级是多少?
传统运维依赖人工和静态规则,无法适应动态复杂变化的场景。LinkSLA智能运维可基于历史数据,利用智能算法深度学习,对未来时间段的数值精准预测,将预测值作为基线,更贴近用户使用场景。
告警分为5个等级,对应的处理方式也不同。MOC在线值守工程师根据告警等级,选择在线处理或沟通现场工程师进行处理,确保问题得到及时响应。
三、 完善的故障处理流程
1、快速恢复——应急预案很重要
应急方案很重要,故障处理第一原则是快速恢复。系统恢复运行足够快,就不会造成太大影响。一个合格的应急方案,要包含系统、服务、辅助工具等方面。如系统或上下游出现问题,知道如何配合上下游分析问题;服务上如日志、程序、配置文件在哪里,如何检查服务是否正常,如何重启服务,如何调整应用级参数等。知晓这个服务影响什么业务;辅助工具上如何使用自动化工具辅助分析并应急。这就要求运维人员熟悉系统逻辑,架构部署,应用作用,端口,服务等级的应急处理。
2、告警要及时、准确
故障处理的时效性,关键在于是否及时发现故障,是否及时处理故障。这两点的前提还在于告警是否准确。如果运维监控平台产生大量的错误、重复、无效告警,则大大降低了运维的效率,浪费大量的精力和成本处理这些无效告警。
试用2个月的用户表示 “告警减少了65%,MTTR减少了30%”大大的节约了公司处理告警的时间成本和风险。戳👇
仅用2个月,告警减少65%,这家公司做对什么?
3、完善故障处理流程
在日常的运维场景中,普遍存在2个问题。一是无法时刻关注系统的告警情况,其次是遇到告警问题不知该如何处理。MOC工程师7*24值守解决系统关注问题,固化ITIL流程,当系统出现故障报警后会对报警信息进行筛选,对于高危报警能第一时间通知客户,并提供技术支持。这一点大大降低用户的系统风险和人力成本的投入,解决告警处理问题。
在故障处理案例中,从问题的发现到解除,只用了15分钟。戳👇
案例分享|从发现到处理,15分钟故障解决
相关文章:
语雀P0级时间爆发,留给运维的时间不多了?
事件背景 打工人的焦虑,已经延伸到在线文档了。近日,语雀P0级故障想必大家都有所体会,宕机近8小时,笔记、离线同步完全不可用。作为用户尤其担心我的文档资料是否会因此消失。 这泼天的8小时,放眼互联网界也是相当炸裂…...
LeetCode 2401.最长优雅子数组 ----双指针+位运算
数据范围1e5 考虑nlog 或者n的解法,考虑双指针 因为这里要求的是一段连续的数组 想起我们的最长不重复连续子序列 然后结合一下位运算就好了 是一道双指针不错的题目 class Solution { public:int longestNiceSubarray(vector<int>& nums) {int n nums…...
NOIP2023模拟6联测27 无穷括号序列
题目大意 小 C C C有一个括号序列 A A A,其长度为 m m m,且序列元素只包含左右括号。他想生成一个无限长的括号序列 B B B,由于 B B B的长度为正无穷,所以其下标可以为任意整数(可以为负)。为了由 A A A生…...
java spring cloud 工程企业管理软件-综合型项目管理软件-工程系统源码
Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…...
openEuler 22.03 x86架构下docker运行arm等架构的容器——筑梦之路
为什么要这样做? 随着国产化的普及,国家政策对信创产业的支持,尤其一些金融证券行业、政府单位等,逐渐开始走国产化信创的路线,越来越多接触到国产 CPU (arm 平台,比如华为的鲲鹏处理器…...
【Java】HashMap常见的面试题
HashMap常见面试题 1.HashMap key 是否可以是为 我们自定义对象?——可以 2.HashMap 存储数据 有序还是无序?——无序 3.HashMap key 是否可以存放 null值?如果可以的话 存放在 数组中那个位置?——可以;存放在 index0的位置 4.Ha…...
openpnp - src - 配置文件载入过程的初步分析
文章目录 openpnp - src - 配置文件载入过程的初步分析概述笔记自己编译用的git版本报错截图问题1 - 怎么在调试状态下, 定位到抛异常的第一现场?结合单步调试找到的现场, 来分析报错的原因openpnp配置文件读取的流程END openpnp - src - 配置文件载入过程的初步分析 概述 从…...
中国各城市土地利用类型(城市功能)数据集(shp)
中国各城市土地利用类型(城市功能)数据集 时间:2018年 全国范围的城市用地类型数据(居住/商业/交通用地等共计11类) 分类:居住用地、商业用地、工业用地、医疗设施用地、体育文化设施用地、交通场站用地、绿地等用地类型 含城市编码、一级分类5个、二级分类11个 数据按…...
Linux网络编程:数据链路层
目录 一. 数据链路层概述 二. 以太网 2.1 以太网的概念 2.2 以太网数据帧 2.3 对于MAC地址的认识 2.4 数据碰撞问题 三. MTU和MSS 3.1 什么是MTU 3.2 MTU对UDP的影响 3.3 MTU对TCP的影响(MSS的概念) 四. ARP协议 4.1 ARP协议的作用 4.2 ARP数…...
python 线程 超时时间
python 线程 超时时间_mob649e815f0f18的技术博客_51CTO博客...
LeetCode:274. H 指数、275. H 指数 II(C++)
目录 274. H 指数 题目描述: 实现代码与解析: 排序暴力 275. H 指数 II 题目描述: 实现代码与解析: 二分 比较简单,不再写解析,注意二分的时候,r指针为n,含义为个数…...
多线程及锁
1.lock锁和synchronized锁的区别。 1:Synchronized 是Java的一个关键字,而Lock是java.util.concurrent.Locks 包下的一个接口; 2:Synchronized 使用过后,会自动释放锁,而Lock需要手动上锁、手动释放锁&am…...
C++ 写一个Data类的注意问题
Data类 声明和定义分离的一些问题 声明里面我们不带缺省参数,定义我们给缺省参数,如下面两段代码: Data.h#pragma once #include<iostream> using namespace std; class Data { public:Data(int year,int month,int day);private:in…...
postman做接口测试
之前搞自动化接口测试,由于接口的特性,要验证接口返回xml中的数据,所以没找到合适的轮子,就自己用requests造了个轮子,用着也还行,不过就是case管理有些麻烦,近几天又回头看了看postman也可以玩…...
hdlbits系列verilog解答(always块)-29
文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 由于数字电路由用网线连接的逻辑门组成,因此任何电路都可以表示为模块和赋值语句的某种组合。然而,有时这不是描述电路的最方便方式。过程procedure(其中 always 的块就是一个示例)提供了描述电路的替代语法…...
uniapp实现瀑布流
首先我们要先了解什么是瀑布流: 瀑布流(Waterfall Flow)是一种常见的网页布局方式,也被称为瀑布式布局或砌砖式布局。它通常用于展示图片、博客文章、商品等多个不同大小和高度的元素。 瀑布流布局的特点是每个元素按照从上到下…...
15. 机器学习 - 支持向量机
Hi, 你好。我是茶桁。 逻辑回归预测心脏病 在本节课开始呢,我给大家一份逻辑回归的练习,利用下面这个数据集做了一次逻辑回归预测心脏病的练习。 本次练习的代码在「茶桁的AI秘籍」在Github上的代码库内,数据集的获取在文末。这样做是因为我…...
如何根据进程号查询服务的端口号
ps -ef | grep nacos ps -ef | grep nacos 命令是用于查找系统中所有包含 "nacos" 关键字的进程。这个命令的含义如下: ps: 这是一个用于显示当前正在运行的进程的命令。 -ef: 这两个选项一起使用,表示显示所有进程的详细信息。 -e 选项表示显…...
2.10、自定义量化优化过程
introduction 如何自定义量化优化过程,以及如何手动调用优化过程 code from typing import Callable, Iterableimport torch import torchvision from ppq import QuantizationSettingFactory, TargetPlatform from ppq.api import (ENABLE_CUDA_KERNEL, Quantiz…...
MySQL如何添加自定义函数
深入MySQL:学习如何添加自定义函数 MySQL 是一种流行的开源关系型数据库管理系统,它支持很多内置函数来完成各种操作。不过有时候这些内置函数无法满足我们的需求,这时候就需要自定义函数了。在 MySQL 中,可以通过编写自定义函数…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
