如何用FMEA方法排除架构隐患

news2024/10/6 4:02:18

FMEA介绍

定义

FMEA(Failure mode and effects analysis,故障模式与影响分析)又称为失效模式与后果分析、失效模式与效应分析、故障模式与后果分析等,本文采用“故障模式与影响分析”

历史

FMEA 最早是在美国军方开始应用的,20世纪40年代后期,美国空军正式采用了 FMEA

二十世纪60年代,在开发出将宇航员送上月球并安全返回地球的手段的同时,FMEA 得到了初步的推动和发展

二十世纪70年代后期,福特汽车公司在平托事件之后,出于安全和法规方面的考虑,在汽车行业采用了 FMEA

作用

FMEA 之所以能够在这些差异很大的领域都得到应用,根本原因在于FMEA 是一套分析和思考的方法,而不是某个领域的技能或者工具

FMEA 并不能指导我们如何做架构设计,而是当我们设计出一个架构后,再使用FMEA 对这个架构进行分析,看看架构是否还存在某些可用性的隐患

详解

在这里插入图片描述

Failure:假设系统某系组件或者模块出现故障

Mode:故障发生的方式、可能性

Effect:故障的影响

Analysis:分析系统的可能反应,以及如何改进

FMEA什么阶段应用

在这里插入图片描述

FMEA技巧

应用步骤

在这里插入图片描述

  1. 给出初始的架构设计图,一般是系统架构图和部署架构图
  2. 假设架构中某个Role发生故障,然后分析此故障对系统功能造成的影响
  3. 根据分析结果,判断架构是否需要进行优化

分析维度

业务功能故障模式故障影响严重程度故障原因故障概率风险程度已有措施规避措施解决措施后续规划
FMEA分析涉及的功能点系统可能会出现什么样的故障当发生故障模式中描述的故障时,业务功能具体会受到什么影响故障对业务的影响程度导致故障现象发生的原因,不同原因可能导致相同的故障某个具体故障原因发生的概率综合严重程度和故障概率来一起判断某个故障的最终等级针对具体的故障原因,系统现在是否提供了某些措施应对为了降低故障发生概率或者故障影响采取的一些措施解决措施指为了能够解决问题而做的一些事情系统的后续改进规划

不需要记住这11个维度,需要的时候直接用就行

详解

详解1

业务功能

用户角度划分的业务相关的功能点

从用户角度而不是系统角度

例如:对于一个用户管理系统,使用 FMEA 分析时 “登录”“注册”才是功能点,而用户管理系统中的数据库存储功能、Redis缓存功能不能作为 FMEA 分析的功能点

故障模式

系统会出现什么样的故障,包括故障点和故障形式

故障模式并不需要给出真正的故障原因,只需要假设出现某种故障现象即可

故障模式的描述要尽量精确,多使用量化描述,避免使用泛化的描述。例如,推荐使用“MySQL响应时间达到3秒”,而不是“MySQL 响应慢”

故障影响

故障发生后业务功能具体会受到什么影响

常见的影响有:功能点偶尔不可用、功能点完全不可用、部分用户功能点不可用、功能点响应缓慢、功能点出错等

故障影响也需要尽量准确描述。例如,推荐使用“20%的用户无法登录”,而不是“大部分用户无法登录”

详解2-严重程度

从业务角度看故障的影响程度

  1. 一般分为“致命/高/中/低/无”五个档次
  2. 严重程度按照这个公式进行评估:严重程度 = 功能点重要程度 × 故障影响范围 × 功能点受损程度。例如:登录功能比修改用户资料要重要得多,80%的用户比20%的用户范围更大,完全无法登录比登录缓慢要更严重
  3. 团队讨论确定,包括业务、开发、运维等一起讨论,但是要避免业务方有意无意夸大严重程度
  4. 如果争执不下,架构师拍板

详解3

故障原因

导致故障现象出现的原因

故障现象相同,对业务影响相同;故障原因不同,发生概率、检测手段、处理措施不同

例如:

  1. 发生概率:“MySQL bug”的概率要远远低于“没有索引”导致查询慢
  2. 检测手段:磁盘坏道导致 MySQL 响应慢和慢查询的检测手段不同
  3. 处理措施:磁盘坏道要换机器,慢查询要优化索引

故障概率

某个具体故障原因发生的概率

一般分为“高/中/低”三档即可,几个特别注意的现象:

  1. 硬件。硬件随着使用时间推移,故障概率会越来越高,例如,新的硬盘和3年的硬盘
  2. 开源系统。成熟的开源系统 bug 率低,版本3.0比版本0.3要成熟;已经有使用经验和第一次使用
  3. 自研系统。和开源系统类似,成熟的自研系统故障概率会低,而新开发的系统故障概率会高

风险程度

综合严重程度和故障概率来一起判断某个故障的最终等级

风险程度 = 严重程度 × 故障概率

某个故障影响非常严重,但其概率很低,最终来看风险程度就低

例如:“某个机房业务瘫痪”对业务影响是致命的,但如果故障原因是“地震”,如果机房在广州概率就很低,如果机房在东京,概率就高很多

详解4

已有措施

针对具体的故障原因,系统现在是否提供了某些措施来应对

常见措施有:

  1. 检测告警。检测故障并告警,系统自己不针对故障进行处理,需要人工干预
  2. 容错。检测到故障后,系统能够自行应对。例如:Hadoop集群
  3. 自恢复。检测到故障后,系统能够自己恢复。例如,踢出故障的容器节点,创建新的容器

规避措施

为了降低故障发生概率或者故障影响而采取的一些措施

可以是技术手段,也可以是管理手段

例如:

  1. 技术手段:为了避免新引入的 MongoDB 丢失数据,在 MySQL 中冗余一份
  2. 管理手段:为了降低磁盘坏道的概率,强制统一更换服务时间超过2年的磁盘

解决措施

为了能够解决问题而采取的一些措施

一般都是技术手段,例如:

  1. 为了解决密码暴力破解,增加密码重试次数限制
  2. 为了解决拖库导致数据泄露,将数据库中的敏感数据加密保存
  3. 为了解决非法访问,增加白名单控制

如果某个故障既可以采取规避措施,又可以采取解决措施,优先选择解决措施

详解5-后续规划

针对 FMEA 分析表格,查漏补缺,优化系统架构

具体步骤:

  1. 排序,按照风险程度的评估结果排序
  2. 制定改进方案
  3. 对改进后的方案重新应用 FMEA 评估

技巧:

  1. 技术手段、管理手段都可以
  2. 检测、规避、解决手段都可以
  3. 需要考虑成本

落地技巧

技巧说明
抓住核心优先针对核心场景进行分析
分工合作可以安排给初级架构师或者高级开发人员,锻炼架构思维
适可而止严重程度为高的必须解决,严重程度为中的做好检测和告警

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022-11-20-使用BeatuifulSoup进行页面内容的获取

一、什么是DOM树 DOM树是一种结构,树是由DOM元素和属性节点组成的,DOM的本质是把html结构化成js可识别的树模型,有了树模型,就有了层级结构,层级结构是指的是元素和元素之间的关系父子、兄弟。 实例: 标题…

Java语法之多态

上次给大家分享了Java的继承,今天小编给大家分享面向对象三大特性的第三大特性,也就是多态,fighting~~ 目录 🎈一. 多态 🎈1.1多态的概念 🎈1.2多态的实现条件 🎈1.3向上转型和向下转型 &a…

HDFS 的 shell操作

文章目录前言一、基本语法二、创建目录三、上传moveFromLocal-copyFromLocal-put-appendToFile四、下载-copyToLocal-get五、HDFS直接操作-ls-cat-chgrp、-chmod、-chown-mkdir-cp-mv-tail-rmrm -r-du-setrep前言 HDFS的shell操作很多跟linux的shell语法是比较相近&#xff0c…

Python学习基础笔记八——字典

字典: 1)字典中的元素是通过键来存储的,而不是通过偏移来存取的。字典是唯一内置的映射类型(键映射到值的对象) 2)是无序集合; 3)字典是作为散列表(支持快速检索的数据…

html网页设计期末大作业_网页设计平时作业(诗词网页 4页)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 茶文化网站 | 中华传统文化题材 | 京剧文化水墨风书画 | 中国民间年画文化艺术网站 | 等网站的设计与制作 | HTML期末大学生网页设计作业,…

39-Docker-部署Jenkins

部署Jenkins前言部署Jenkins1. 下载镜像2. 创建挂载目录3. 创建并启动Jenkins容器使用Jenkins1. 访问Jenkins2. 输入密码3. 配置Jenkins前言 本篇来学习使用Jenkins镜像部署Jenkins 部署Jenkins 1. 下载镜像 docker pull jenkins/jenkins2. 创建挂载目录 # 创建挂载目录 m…

Oracle PrimaveraUnifier成本管理器(Cost Manager)简要介绍

目录 一:标准成本管理器(Standad Cost Manager) 二:通用成本管理器(General Cost Manager) 成本管理器(Cost Manager)是Unifier管理和聚焦汇总成本的主要组成部分,财务最关系的Cost Sheet 成本表将通过 成本管理器制定模板 在Oracle Pirma…

第三章:高精度算法(加、减、乘、除)

高精度算法高精度的整体思路:一、加法1、思路:2、模板:(1)C版:(2)C语言版:二、减法1、思路:2、模板:CC三、乘法1、思路:2、模板&#…

CMake中return的使用

CMake中的return命令用于从文件、目录或函数返回&#xff0c;其格式如下&#xff1a; return([PROPAGATE <var-name>...]) 当在包含文件中(in an included file)遇到此命令时(通过include或find_package命令)&#xff0c;它会导致当前文件的处理停止并将控制权返回给包含…

CTFHub | Cookie注入

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…

Linux C/C++ 学习笔记(五):Mysql C/C++编程 创建 插入 读取 删除 存储过程

本文参考Linux C/C 开发&#xff08;学习笔记七&#xff09;&#xff1a;Mysql数据库C/C编程实现 插入/读取/删除_菊头蝙蝠的博客-CSDN博客 一、数据库建模与建库建表 在设计数据库时&#xff0c;对现实世界进行分析、抽象、并从中找出内在联系&#xff0c;进而确定数据库的结…

计算机视觉之迁移学习中的微调(fine tuning)

现在的数据集越来越大&#xff0c;都是大模型的训练&#xff0c;参数都早已超过亿级&#xff0c;面对如此大的训练集&#xff0c;绝大部分用户的硬件配置达不到&#xff0c;那有没有一种方法让这些训练好的大型数据集的参数&#xff0c;迁移到自己的一个目标训练数据集当中呢&a…

javaweb Ajax AXios异步框架 JSON 案例

AJAX概念&#xff1a;AJAX(Asynchronous JavaScript And XML)&#xff1a;异步的 JavaScript 和 XML AJAX作用&#xff1a; 与服务器进行数据交换&#xff1a;通过AJAX可以给服务器发送请求&#xff0c;并获取服务器响应的数据 使用了AJAX和服务器进行通信&#xff0c;就可以…

ArcGIS_将多个点数据整合成一个点数据

问题描述:如何将多个点合并成一个点,并保留原始点数据的字段信息 方法一:整合 打开arcgis整合工具 :“数据管理工具——要素类——整合” 容差半径可以通过arcgis测量工具获取,根据自己的目标任务,选择合适的容差半径 该方法优点在于整合后的点可以正好位于原始点数据…

牛客网之SQL非技术快速入门(7)-字符串截取、切割、删除、替换

知识点&#xff1a; &#xff08;1&#xff09;substring_indexsubstring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数 &#xff08;2&#xff09;切割、截取、删除、替换 1 2 3 4 5 6 7 8 9 10 11 12 13 14 select -- 替换法 replace(string, 被…

俺把所有粉丝显示在地图上啦~【详细教程+完整源码】

文章目录&#x1f332;小逼叨&#x1f332;爬取所有粉丝的IP所属地&#x1f334;爬者基本素养&#xff1a;网页分析&#x1f334;源代码&#x1f332;数据清洗和保存&#x1f334;源代码&#x1f332;绘制地图&#x1f334;源代码&#x1f332;结束语&#x1f332;小逼叨 其实昨…

windows中使用curl

curl这个工具在linux和macOS都经常使用&#xff0c;感觉挺实用的。在windows中默认也带了一个但是用起来不太一样&#xff0c;于是就想自己手动安装一个原汁原味的curl。 下载安装 https://curl.se/windows/ 下载适合自己平台的版本&#xff0c;解压就可以直接运行了。 比如…

剑指 Offer II 026. 重排链表【链表】

难度等级&#xff1a;中等 上一篇算法&#xff1a; 剑指 Offer II 021. 删除链表的倒数第 n 个结点【链表】 力扣此题地址&#xff1a; 剑指 Offer II 026. 重排链表 - 力扣&#xff08;LeetCode&#xff09; 1.题目&#xff1a;重排链表 给定一个单链表 L 的头节点 head &…

Linux用户和权限学习笔记

认识root用户 什么是root用户 无论是Windows、MacOS、Linux均采用多用户的管理模式进行权限管理。 在Linux系统中&#xff0c;拥有最大权限的账户名为&#xff1a;root&#xff08;超级管理员&#xff09;而在前期&#xff0c;我们一直使用的账户是普通账户&#xff1a;itheim…

《Android Studio开发实战 从零基础到App上线(第3版)》出版后记

2018年11月&#xff0c;经过熬夜写作的《Android Studio开发实战 从零基础到App上线(第2版)》正式出版面世。承蒙众多读者的厚爱&#xff0c;第2版的图书在此后的三年多时间&#xff0c;一直保持在移动开发图书的销量排行榜前列&#xff0c;迄今为止京东对该书的评价已达8000多…