知识卡片
FMEA方法的定位:对已设计架构做事后可用性隐患排查
内容
高可用比高性能更难做,根本原因在于异常场景太多——只要遗漏一个异常场景,架构设计就存在可用性隐患,而按照墨菲定律”可能出错的事情最终都会出错”,这类隐患早晚会酿成真正的系统故障,因此架构设计必须尽量”全面”地分析可用性,FMEA(Failure mode and effects analysis,故障模式与影响分析)正是帮助做到这种全面性的一套简单有效的方法。FMEA最早在20世纪40年代后期由美国空军正式采用,之后被广泛应用到半导体、餐饮、塑料制造、软件、医疗保健等差异极大的行业——之所以能跨这么多领域通用,根本原因是FMEA本质上是一套分析和思考的方法,而不是绑定某个具体领域的技能或工具。回到软件架构设计的语境,需要特别明确FMEA的定位:它并不指导我们”应该怎么设计架构”,而是当一个架构已经被设计出来之后,用FMEA去对这个架构做检验,看它是否还存在没被发现的可用性隐患。具体的分析流程是四步:给出初始的架构设计图;假设架构中某个部件发生故障;分析这个故障对系统功能造成的影响;根据分析结果,判断架构是否需要优化。这套流程落地的具体工具就是一张FMEA分析表,表格本身涵盖功能点、故障模式、故障影响、严重程度、故障原因、故障概率、风险程度、已有措施、规避措施、解决措施、后续规划这一整条从”发现问题”到”给出改进计划”的完整链条。
参考来源
- 位置:《从零开始学架构》第24讲《FMEA方法,排除架构可用性隐患的利器》"FMEA介绍""FMEA方法"(源文件:_epub-src/OEBPS/text00002.html)
- 结论依据:原文说明"高可用更复杂一些,主要原因在于异常的场景很多……根据墨菲定律'可能出错的事情最终都会出错',架构隐患总有一天会导致系统故障",并指出"FMEA 是一套分析和思考的方法,而不是某个领域的技能或者工具……FMEA 并不能指导我们如何做架构设计,而是当我们设计出一个架构后,再使用 FMEA 对这个架构进行分析,看看架构是否还存在某些可用性的隐患",直接支撑本卡片结论。
- 原始内容:高可用更复杂一些,主要原因在于异常的场景很多……FMEA 并不能指导我们如何做架构设计,而是当我们设计出一个架构后,再使用 FMEA 对这个架构进行分析,看看架构是否还存在某些可用性的隐患。