故障处理实践

线上故障是我们技术人员成长中必须要经历的事。从故障中我们可以吸取到很多教训,也能让我们学到很多书本上学不到的知识。坑踩多了,我们会变得越来越有经验,也就成为老司机了。今天听了 左耳朵耗子 --《左耳听风》 中的故障处理最佳实践篇 ,在经历过多次线上故障后,觉得 皓哥这篇确实 干货满满,记录下来共勉。

生产环境故障总共可分为三个阶段,故障发生前,故障发生时,故障发生后

故障发生前

为了能够在故障发生时,有条不紊的处理线上故障,做到事乱而人不乱的目的。可以提前做以下准备。

  • 以用户功能为索引的服务和资源的全视图

    • 前端
      • 用户操作
    • 后台服务
      • 服务与服务之间的调用关系
    • 中间件
      • 服务涉及到的中间件
    • 硬件
      • 服务以及中间件 所涉及到的硬件资源
    • 网络
      • 整体部署网络拓扑图
  • 为地图中的各个服务制定关键指标,以及一套运维流程和工具,包括应急方案

    • 服务指标
      • 以用户功能为索引,为每个用户功能的服务都制定一个服务故障的检测、处理和恢复手册,以及相关的检测、查错或是恢复的运维工具。
    • 中间件指标
      • 检查其健康运行状态
        • 硬件指标
        • 链接数等
    • 应急方案
      • 常见故障处理
      • 服务不可用处理
      • 服务回滚处理
  • 设定故障的等级:制定故障等级,主要是为了确定该故障要牵扯进多大规模的人员来处理。故障级别越高,牵扯进来的人就越多,参与进来的管理层级别也就越高。

    • 亚马逊定级
      • 全站不可用
      • 某功能不可用,且无替代方案
      • 某功能不可用,但有替代方案
      • 非功能性故障,或是用户不关心的故障
    • 其他定级
      • 通用型:包含受影响用户数、受影响商家数、客诉增量、资金损失等通用指标。通用型故障场景在业务线型故障场景未覆盖情况下兜底。
      • 业务型:基于用户视角共同定义。
  • 故障演练:故障是需要演练的。因为故障并不会时常发生,但我们又需要不断提升处理故障的能力,所以需要经常演练。

    • 比如:
      • Chaos Monkey
      • 混沌工程
  • 灰度发布/ AB Test

故障发生时

在故障发生时,最重要的是快速恢复故障。而快速恢复故障的前提是快速定位故障源。因为在很多分布式系统中,一旦发生故障就会出现“多米诺骨牌效应”。也就是说,系统会随着一个故障开始一点一点地波及到其它系统,而且这个过程可能会很快。一旦很多系统都在报警,要想快速定位到故障源就不是一件简单的事了。

这里 郝哥建议使用亚马逊故障处理方式,每个开发团队至少都会有一位 oncall 的工程师。在 oncall 的时候,工程师要专心处理线上故障,轮换周期为每人一周。自查自己的服务,如果自己的服务没有问题,那么就可以在旁边待命(standby),以备在需要时进行配合。

故障源团队通常会有以下几种手段来恢复系统。

  • 重启和限流。重启和限流主要解决的是可用性的问题,不是功能性的问题。重启还好说,但是限流这个事就需要相关的流控中间件了。
  • 回滚操作。回滚操作一般来说是解决新代码的 bug,把代码回滚到之前的版本是快速的方式。
  • 降级操作。并不是所有的代码变更都是能够回滚的,如果无法回滚,就需要降级功能了。也就是说,需要挂一个停止服务的故障公告,主要是不要把事态扩大。
  • 紧急更新。紧急更新是常用的手段,这个需要强大的自动化系统,尤其是自动化测试和自动化发布系统。假如你要紧急更新 1000 多台服务器,没有一个强大的自动化发布系统是很难做到的。

在处理故障中,一定要做好服务版本控制,便于回滚,同时也建议与 运维人员一起整理或者更新应急故障手册。

故障发生后

在故障排除后,如何做故障复盘及整改优化则更为重要。

无论是哪个公司 相对的复盘点如下:

  • 故障处理的整个过程。就像一个 log 一样,需要详细地记录几点几分干了什么事,把故障从发生到解决的所有细节过程都记录下来。
  • 故障原因分析。需要说明故障的原因和分析报告。
  • Ask 5 Whys。需要反思并反问至少 5 个为什么,并为这些“为什么”找到答案。
  • 故障后续整改计划。需要针对上述的“Ask 5 Whys”说明后续如何举一反三地从根本上解决所有的问题。

复盘最终的目的就是要找到以下几点优化方案

  • 优化故障获知和故障定位的时间
    • 从故障发生到我们知道的时间是否可以优化得更短?
    • 定位故障的时间是否可以更短?
    • 有哪些地方可以做到自动化?
  • 优化故障的处理方式
    • 故障处理时的判断和章法是否科学,是否正确?
    • 故障处理时的信息是否全透明?
    • 故障处理时人员是否安排得当?
  • 优化开发过程中的问题
    • Code Review 和测试中的问题和优化点
    • 软件架构和设计是否可以更好?
    • 对于技术欠债或是相关的隐患问题是否被记录下来,是否有风险计划?
  • 优化团队能力
    • 如何提高团队的技术能力?
    • 如何让团队有严谨的工程意识?

在以上几点上,优化团队能力是最难的,因为你面对的不仅仅是工程代码,面对的还是自己的团队人员,个人认为 如果是纯技术选手,应该整理优化好一系列的测试,发布流程,在流程中 让团队养成 严谨的工程意识,而团队的技术能力,其实这就像我们以前上学,学生有好有坏,老师把能教的都教给了我们,但是有的同学就学习很好,而有的同学就跟不上。我觉得与其提高团队的技术能力,不如从源头把控好员工是否符合团队要求。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容