版权声明:

本公众号发布的所有文章,未特殊署名,均属于原创,版权归本公众号所有。

转载请参阅公众号的:《转载授权》。

一、前言

之前有个周末,公司的 App 产品,导致线上的所有版本,都无法从服务器获取数据,最终排查出来的原因是因为 DNS 服务商将域名解析到一个错误的 IP 上了,所以请求就不会到达公司的服务器,而这个错误纠正的时间,可能长达 72小时(因为 DNS 缓存的缘故)。

本文就如何处理这样一个线上的紧急 Bug ,做一个复盘总结。

二、处理线上问题

线上的紧急事故,是一件非常可怕并且伤害无可估量的事情,它不知道什么时候会发生,是一种黑天鹅般的事件。

那么,我们在突发这样的事情之后,如何能有效的解决呢?

2.1 收到反馈要重视

所有的事件,最开始都是有苗头的,发生之后,你总是可以在之前的一些小事情上,找到蛛丝马迹。而在问题爆发之前,一般也会在一些什么用户反馈群、微信公众号后台等一些反馈的渠道,接到用户的反馈。

对于这些反馈,要重视起来,一个愿意来反馈问题的用户,背后可能是十个二十个或者更多的碰到问题的用户。

而如何从这些反馈中,区分问题的紧急级别,也是一个非常重要的技能。

2.2 快速定位事故原因

碰到紧急事故,最先知道或者最先通知的,一般都是产品经理或者技术负责人。而他们需要做的,就是协调相关的人员,快速的定位出事故的原因。

通常分一下几个步骤:

  1. 定位问题的原因

  2. 确定影响的范围

  3. 找到解决的办法

  4. 办法生效的时间

这几步都非常的重要,既然已经是线上的紧急事故了,就需要紧急的处理,这个时候如果定位错了问题,就可能导致非常严重的二次伤害。

例如,你找到了问题的原因和解决方案,但是它生效的时间,最长有 72 小时。但是如果你定位错误,就会导致在这 72 小时内的反馈,你可能就会安慰用户说已经解决,需要多久多久才可以生效,但是过了这个时间段,你发现问题并没有得到解决。而又需要重新反复的再次定位问题,耽误了问题解决的最优时间。

2.3 解决问题,尽快上线

定位到问题的所在,就需要确定如何快速的让这个问题得到解决。

就现在的环境来说,如果是服务端的数据的问题,通常定位好问题,让服务端快速修改即可解决。

而对于客户端的问题而言,如果之前有过热修复的积累,可以先判断是否能通过热修复技术来解决问题,如果不行,就只能尽快修复并且发版了。

2.4 安抚用户

在定位到问题之后,在程序员修复问题的同时,运营人员应该第一时间发出公告,安抚用户的情绪,重视各个渠道的用户反馈,一有类似情况的反馈,尽快对用户表达歉意,并且告知已经在处理,需要用户耐心等待。

一般来说,安抚用户的动作,无法就是通过一些方法,告知用户现在有问题,相关人员正在紧急修复,让用户耐心等待。而这个告知的发布,一般的渠道有:

  • 官方微博

  • 应用关联微信公众号

  • 应用推送。

  • 群公告等。

总结起来就是通过一切可以利用的渠道,告知用户现有的情况,以达到安抚用户的目的。

举个前两年的例子,小米运动 App ,有一次升级之后出现闪退,根本无法进入 App ,这个时候它们紧急处理了这个问题,并且给用户发送了一条推送,告知用户需要卸载 App 重新安装,即可正常使用。

2.5 事故之后,如期复盘

定期复盘是一个非常好的习惯,不管是对个人还是对公司。

而发生这些紧急的事故之后,也需要在事故解决之后,进行复盘,总结一下在这个事故之中,有什么做的不好的地方,有什么可以做的更好的地方。

例如,在解决方案选定之后,毕竟还需要人去实施,那在这个实时的过程中,有没有什么可以改进效率的空间。又或者,客户端开发能否在 App 内预埋功能,让下次出现类似事故的时候,切换一个配置就得到解决。

复盘是为了之后更好的规避和应对这种突发事故,可能大部分情况下,我们的准备都是白费的,但是一旦出现事故,这些准备就可以让我们更从容。

三、结语

这次事故,整个团队迅速行动,快速的解决了问题,没有造成太大的损失,这也是比较欣慰的地方。

愿各位同行不要出现线上事故。

推荐阅读:

  • Annotation可以放心使用吗?

  • 一篇好文,助你上手 Glide

  • 工作中,AS和Git更配哦!

  • 从后台切回来,你不想展示点广告吗?

  • Android 开发,跳不过的内存管理

一次线上紧急事故的处理复盘相关推荐

  1. 记一次线上coredump事故

    转自:http://www.likecs.com/show-16439.html 记一次线上coredump事故 1.事故背景 上周三凌晨,我负责的某个模块在多台机器上连续发生coredump,幸好发 ...

  2. 【MySQL】记一次线上重大事故:二狗子竟然把线上数据库删了!!

    写在前面 估计二狗子这几天是大姨夫来了,心情很郁闷,情绪也很低落,工作的时候也有点心不在焉.让他发个版本,结果,一行命令下去把线上的数据库删了!你没听错:是删掉了线上的数据库!运营那边顿时炸了锅:怎么 ...

  3. 记一次线上重大事故:二狗子竟然把线上数据库删了!!

    推荐阅读: 这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试 毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 最全面试题新鲜出炉:70+算法题 ...

  4. 一次线上生产问题的全面复盘 【定位-分析-解决】

    来自:crossoverJie 目录: 写在前面 生产现象 定位问题 解决办法 本地模拟 内存分析 总结 写在前面 之前或多或少分享过一些内存模型.对象创建之类的内容,其实大部分人看完都是懵懵懂懂,也 ...

  5. 消防知识线上答题活动小程序复盘

    前言 11月9日是全国消防日,今年的消防活动主题为"关注消防,生命至上". 中国的消防安全日为11月9日.世界各国的火警号码都不一样,每个国家都选取了让人们最容易记住的数字来组成火 ...

  6. mobsdk线上崩溃事故报告_重大事故!IO问题引发线上20台机器同时崩溃

    几年前的一个下午,公司里码农们正在安静地敲着代码,突然很多人的手机同时"哔哔"地响了起来.本来以为发工资了,都挺高兴!打开一看,原来是告警短信 故障回顾 告警提示"线程数 ...

  7. 一次线上Crash引发的ref复盘

    目录 事故现场 ref的历史变化 事故现场 项目使用RN开发且用react-navigation做的导航,要想每个页面在显示时都调用某个逻辑,我需要在每个页面的如下生命周期做如下两件事情: blurL ...

  8. 【开发技能】研发线上事故总结!

    一.前言 你的代码出过事故吗? 老人言:常在河边走哪有不湿鞋.只要你在做着编程开发的工作就一定会遇到事故,或大或小而已. 当然可能有一部分研发同学,在相对传统的行业或者做着用户体量较小的业务等,很难遇 ...

  9. 【线上问题】线上故障分析-故障分级,原因,分类,混沌工程,排除方法

    参考资料 因为一行Log日志导致的线上P1事故_xiangzhihong8的博客-CSDN博客 线上故障分析-故障分级,原因,分类,混沌工程,排除方法_架构_Ybb_studyRecord-DevPr ...

最新文章

  1. Java Review - 并发编程_ThreadLocalRandom实现原理源码分析
  2. python 下划线转驼峰_json字符串中key值下划线命名转换为驼峰命名
  3. Python——基本统计值计算
  4. Win10 jdk的安装以及环境变量的配置,及需要注意的坑
  5. Netty 客户端服务器端通信 demo
  6. 快递扫地机器人被损坏_手机动一动,全屋扫干净:石头T4扫地机器人体验记
  7. 阅读《构建之法》 5-7章
  8. 每周收获(11-13)
  9. TTS 语音修复 ,缺少文件的,没注册类的
  10. linux ora -03113,ORA-03113:通信通道的文件结尾
  11. html5数字在线处理,Qunee for HTML5 - 中文 : 事件处理
  12. oracle删sequen,sequen是什么意思
  13. 2015年最新互联网概念股一览表
  14. android opengl 简书,Android OpenGL入门
  15. PPT做起来老大难?试试这5个神器网站
  16. python环境准备(二)
  17. 机械键盘恢复出厂fn,机械键盘构成-求助,机械键盘fn键的解决方法
  18. C语言编程之.H文件与.C文件的关系
  19. js:Vue.js自定义指令实现scroll下滑滚动翻页
  20. 半导体芯片产业无尘车间激光尘埃粒子计数器

热门文章

  1. 通用权限管理系统组件 (GPM - General Permissions Manager) 不需要任何配置文件,程序都可以正常运行...
  2. 解决IDEA中pom.xml中不能自动加载jar包
  3. 一次难忘的、快乐的草原之行
  4. android支付平台调研
  5. isis宣告网络_ISIS路由协议的概念及实验配置
  6. wifi不可靠 无线局域网八大安全困惑
  7. Android 收缩控件,展开,收缩
  8. 数据结构学习笔记——栈和队列
  9. 原来脑残一词是李时珍发明的,本草纲目中就有”脑残者无药医也“
  10. 华硕K42J设置USB启动系统