导读:《架构设计》系列为极客工夫李运华老师《从 0 开始学架构》课程笔记。本文为第三局部,次要介绍 FMEA 办法,以及如何将 FMEA 办法利用于架构设计之中以进步服务可用性。
扫描文末二维码 关注公众号 回复“架构设计”获取架构设计笔记残缺思维导图
什么是 FMEA
FMEA(Failure mode and effects analysis,故障模式与影响剖析)又称为生效模式与结果剖析、生效模式与效应剖析、故障模式与结果剖析等
在架构设计畛域,FMEA 的具体分析办法
- 给出初始的架构设计图
- 假如架构中某个部件产生故障
- 剖析此故障对系统性能造成的影响
- 依据剖析后果,判断架构是否须要进行优化
FMEA 剖析表
性能点
以后的 FMEA 剖析波及的性能点,留神这里的“性能点”指的是从用户角度来看的,而不是从零碎各个模块性能点划分来看的。
故障模式
故障模式指的是零碎会呈现什么样的故障,包含故障点和故障模式。须要特地留神的是,这里的故障模式并不需要给出真正的故障起因,咱们只须要假如呈现某种故障景象即可。
故障模式的形容要尽量准确,多应用量化形容,防止应用泛化的形容
故障影响
当产生故障模式中形容的故障时,性能点具体会受到什么影响。常见的影响有:
- 性能点偶然不可用
- 性能点齐全不可用
- 局部用户性能点不可用
- 性能点响应迟缓
- 性能点出错等
故障影响也须要尽量精确形容。
重大水平
重大水平指站在业务的角度故障的影响水平
个别分为“致命 / 高 / 中 / 低 / 无”五个品位
重大水平依照这个公式进行评估:重大水平 = 性能点重要水平 × 故障影响范畴 × 性能点受损水平
故障起因
不同的故障起因产生概率不雷同
不同的故障起因检测伎俩不一样
不同的故障起因的解决措施不一样
故障概率
这里的概率就是指某个具体故障起因产生的概率。具体评估的时候须要重点关注:
- 硬件:硬件随着应用时间推移,故障概率会越来越高
- 开源零碎:成熟的开源零碎 bug 率低,刚公布的开源零碎 bug 率相比会高一些;本人曾经有应用教训的开源零碎 bug 率会低,刚开始尝试应用的开源零碎 bug 率会高
- 自研零碎:和开源零碎相似,成熟的自研系统故障概率会低,而新开发的系统故障概率会高
危险水平
危险水平就是综合重大水平和故障概率来一起判断某个故障的最终等级
危险水平 = 重大水平 × 故障概率。因而可能呈现某个故障影响十分重大,但其概率很低,最终来看危险水平就低
已有措施
针对具体的故障起因,零碎当初是否提供了某些措施来应答。次要措施:
- 检测告警:最简略的措施就是检测故障,而后告警,零碎本人不针对故障进行解决,须要人工干预。
- 容错:检测到故障后,零碎可能通过备份伎俩应答。例如,MySQL 主备机,当业务服务器检测到主机无奈连贯后,主动连贯备机读取数据。
- 自复原:检测到故障后,零碎可能本人复原。例如,Hadoop 检测到某台机器故障后,可能将存储在这台机器的正本重新分配到其余机器。
躲避措施
躲避措施指为了升高故障产生概率而做的一些事件。次要伎俩:
- 技术手段:为了防止新引入的 MongoDB 失落数据,在 MySQL 中冗余一份。
- 管理手段:为了升高磁盘坏道的概率,强制对立更换服务工夫超过 2 年的磁盘。
解决措施
解决措施指为了可能解决问题而做的一些事件,个别都是技术手段。例子:
- 为了解决明码暴力破解,减少明码重试次数限度。
- 为了解决拖库导致数据泄露,将数据库中的敏感数据加密保留。
- 为了解决非法拜访,减少白名单管制。
后续布局
综合后面的剖析,就能够看出哪些故障咱们目前还不足对应的措施,哪些已有措施还不够,针对这些有余的中央,再联合危险水平进行排序,给出后续的改良布局。这些布局既能够是技术手段,也能够是管理手段;能够是躲避措施,也能够是解决措施。同时须要思考资源的投入状况,优先将危险水平高的零碎隐患解决。
集体了解
FMEA 办法是一种剖析问题的办法,一共列出了 11 个点,咱们在剖析架构问题的时候,依照每个点逐个去适配、剖析。有点按图索骥的意思,简略了解,就是它给咱们一些要剖析的点,防止剖析问题的时候动抓一把,西抓一把的。集体认为,FMEA 办法在在线服务畛域一个很好的利用场景就是 复盘 或者叫case study。
reference
- 从 0 开始学架构
关注公众号 回复“架构设计”获取全副思维导图