写点什么

系统排障,有时就像一部名侦探柯南推理剧

  • 2020-04-17
  • 本文字数:1725 字

    阅读完需:约 6 分钟

系统排障,有时就像一部名侦探柯南推理剧

最近天气越来越冷,每天夜跑的地点也被迫进入了室内,与室外跑步相比,我更喜欢在室内跑步机上跑步,其中最重要的原因是能在跑步的同时利用一部连续剧缓解跑步中所产生的枯燥感。


每次跑步看一集《名侦探柯南》,成为了我每天非常期待的轻松时刻。


虽然我并不是侦探小说迷,但推理这玩意对我有一种吸引力,让我感觉这玩意除了靠经验之外,还要那么些套路。


那么,柯南破案的套路有哪些? 其实,只是一个标准流程罢了。


看过柯南的人都知道,柯南破案奇是说有很多套路的,每一个案件几乎都是按照这个流程走下来的,不信?先来看看一张流程图:



1、发生案情(开场的惊声尖叫)


尖叫才是案件的开端,柯南遇到的很多案件中,都是目击者的尖叫吸引了柯南的注意。


2、到达现场(柯南总是第一个冲到案发现场)


尖叫完以后,不管离现场有多远,柯南和毛利小五郎总会第一时间到达。


3、发现线索 / 怀疑对象(犯人总能露出蛛丝马迹)


很多凶手会作为自己不在场证明的掩饰,然而柯南总能察觉到这些安排的蛛丝马迹。


4、快速纠偏(似凶悍的人往往不是凶手)


很多案件中会出现一些长相很凶悍、很丑陋,或者脾气暴躁的嫌疑人,但往往大家都还在怀疑他们的时候,他们就被真正的凶手提前 KO 了,最后事实证明,他们都是无辜的。


5、关键提示(柯南陷入困惑时会出现关键提示)


当遇到困惑的线索时,柯南总是会在现场周围发现某些提示,就算是不相关的一件小事都会开启柯南无限大的脑洞,之后顺利的整理好案件的案发过程等重要元素。


6、寻找证据 / 犯人认罪(凶手被指认后从来都不认罪)


每次柯南说完整个案件过程与起因后,直接指认凶手,每次凶手都会狡辩,而且会问 “这都是你的推理啊,你有证据吗?” 然后,柯南把早准备好的证据,放到凶手面前,他才被迫认罪。


一场推理,一场精彩的推理,源自于侦探观察力的核心三要素:


有明确的观察目的与观察意识 —— 亦即知道要对什么进行观察及应从哪些方面去观察一个人;


有较丰富的社会阅历并掌握相关的背景知识 —— 只有对要观察的对象领域有一定了解,才有可能从旁人看起来平常的地方看出不平常之处;


平时多实践 —— 养成随时随地对身边人员的体貌特征、身份背景与当前意图进行观察和判断的习惯;


在系统排障时,如何上演一场精彩的推理剧呢?这似乎是每个技术团队的谜题。


其实,系统排障的过程往往比案件推理更为艰辛,而且往往最终没有真相。


我们先按照相同的流程走一遍看看:



1、发生故障


如果监控告警不完善,“尖叫” 通常来自于业务方,对于技术小伙伴来说,这种 “尖叫” 比看到尸体还让人心惊胆战。


2、获取信息


尖叫完以后,不管是远程还是在机房,获取应用日志、Zabbix 等信息是必然的。


3、排查故障


对于快速发展的系统而言,日志打的 “脏、乱、差” 是必然的,所以不用 “凶手” 掩饰,能直接在日志中看出问题的,一般都不需要排障,直接消障就得了。


4、经验推测


无论你是老司机,还是新手,如果无法直接消除故障,一般会利用经验去推断,但这种推断都比较粗暴,没有任何数据给与支持。


5、推测疑似点 / 证明推测


在排障的过程中,最尴尬的场面应该是这种故障现象曾经在测试环节早已经历过九九八十一难的考验,可当下的你却无法拿出丝毫有效证据为他开脱罪责。


6、故障排除


很多时候,虽然故障已被化解,但却无法给出真相,因为化解的方式可能是一次重启,可能是更换了服务器,甚至有可能紧急发布了补丁。可真正的元凶,并未浮出水面。


如何提升系统排障的能力?


其实,对于许多业务快速发展的互联网企业来说,许多系统的故障想要快速排除基本是不太可能的。


在我看来,系统排障是种能力,就像侦探的观察力一样,可以通过适当的方法加以提升:


重视监控功能迭代 —— 知道要对什么进行监控,并将自动化监控功能与业务功能一样做到系统中去,而不是在意识上依赖运维人肉解决;


多交流,勤分享 —— 向其他企业学习关于故障或异常场景的经验,并将排障过程加以分享与操练;


平时多实践 —— 持续进行 “随机破坏性故障演练” 与 “产线性能测试”,大部分故障或异常场景,都能在凶手未到来之前进行暴露;


导致系统故障的原因,就像柯南常说的那句话 “真相永远只有一个!”。可是那个真相,等着你去挖掘与发现。


本文转载自头哥侃码公众号。


原文链接:https://mp.weixin.qq.com/s/fjEcBk2-n6s0wFr_ay_8lA


2020-04-17 15:07725

评论

发布
暂无评论
发现更多内容

PostgreSQL出现死锁怎么办?

慕枫技术笔记

数据库 5月月更

linux之crontab使用技巧

入门小站

Linux

数据结构-复杂度计算经典案例

芒果酱

数据结构 算法 5月月更

flask框架【入门学习笔记一】

恒山其若陋兮

5月月更

[ CloudWeGo 社区动态 ] Kitex 电商项目案例

baiyutang

Go 微服务 5月月更

1.1 历史长河中的顶层设计

凌晞

【C 语言】指针 Five 之 ["​⚔ 空指针 - NULL、💣 指针使用之前检查有效性、🗡 指针运算 💣 指针+- 整数、💣 指针 - 指针、指针关系运算、💣 标准规定、⚔ 指针和数组、⚔ 二级指针、⚔ 指针数组"]

謓泽

5月月更

架构学习(一)

爱晒太阳的大白

5月月更

SAP OData V4 模型支持的一些数据绑定模式

汪子熙

JavaScript 前端开发 SAP ui5 5月月更

Amazon CodePipeline 与 GitHub 集成

亚马逊云科技 (Amazon Web Services)

GitHub Code

从“数据”到“大数据”,激发数据潜力,深耕智能应用!

亚马逊云科技 (Amazon Web Services)

大数据 数据 智能开发

跨平台应用开发进阶(十一) :uni-app 实现IOS原生APP-云打包集成极光推送(JG-JPUSH)详细教程

No Silver Bullet

uni-app ios 5月月更 云打包 原生APP

M_5: 设计微博系统中”微博评论“的高性能高可用计算架构。

Jadedev

架构训练营

Linux环境编译静态库

Loken

音视频 5月月更

电商系统微服务拆分

Trent

架构 微服务拆分 电商 训练营

react-router原理分析

正经工程师

React React-Router

【刷题第16天】数组中出现次数超过一半的数字

白日梦

5月月更

如何透过 Serverless 与 API 的方式异步搜寻数据湖中的数据

亚马逊云科技 (Amazon Web Services)

Serverless 数据 API

跨平台应用开发进阶(十二) :uni-app 实现应用桌面图标角标提示及应用跳转

No Silver Bullet

uni-app 5月月更 桌面角标

规模化软件开发的必由之路—大规模自动化测试

刘冉

自动化测试

在线蚂蚁文,菊花文生成工具

入门小站

工具

数学建模学习资料

乌龟哥哥

5月月更

Flutter 使用 Provider 实现嵌套状态管理

岛上码农

flutter ios 安卓开发 跨平台开发 5月月更

LinkedList 源码分析-迭代器

zarmnosaj

5月月更

SpringMVC源码分析:POST请求中的文件处理

程序员欣宸

Java spring 5月月更

WordPress 编辑用户

海拥(haiyong.site)

WordPress 5月月更

C++最佳实践 | 1. 工具

俞凡

c++ 最佳实践

在线HTML转JSON工具

入门小站

工具

Linux 入门及常见Shell命令

宇宙之一粟

Linux Shell 5月月更

Kubernetes 节点弹性扩展实践组件 Amazon Karpenter:部署 GPU 推理应用

亚马逊云科技 (Amazon Web Services)

Kubernetes 部署

Artery —— 单页面应用接口描述语言简介

全象云低代码

前端 低代码 流程 页面 artery

系统排障,有时就像一部名侦探柯南推理剧_语言 & 开发_头哥侃码_InfoQ精选文章