首页 > 其他分享 >FT-FMEA融合混沌演练,零售运营系统韧性架构在线验证实践

FT-FMEA融合混沌演练,零售运营系统韧性架构在线验证实践

时间:2024-05-17 14:08:51浏览次数:13  
标签:FT 系统 FMEA 模式 故障 COC 演练

本文分享自华为云社区《FT-FMEA融合混沌演练,零售运营系统韧性架构在线验证实践》,作者:《华为云确定性运维案例集(第2期)》聂刚。

一、业务背景

某零售企业营业范围覆盖20+个省份、数百个城市,为千家万户的生活提供服务,深受大众青睐。近年来,面对新零售和业务规模的不断扩大,该企业致力于实现业务的全面数字化,持续开发新的IT产品,覆盖从供应链到市场营销、客户服务到商店运营,逐步实施数字化转型,以降低运营成本,提升运营效率。

某系统为该零售企业新开发的一款IT产品,已经上线生产环境,计划正式启动线下业务接入和引流。通过混沌演练对该应用生产环境的架构韧性进行一次引流前的“排雷”和“验收”,以确保在正式引流时无重大稳定性风险。

二、业务现状

随着数字化转型和业务规模的扩大,该企业新开发门店运营系统XX。该系统主体采用容器化部署,对周边15+个系统有依赖,所依赖的系统中有超过10年的旧系统,存在较大的可用性隐患。由于担负全部门店的运营重任,企业希望该IT系统有较高的韧性以应对意外灾害、依赖系统不可用、促销活动中瞬时大流量、运营商网络故障等潜在的故障风险。

三、方案实践

COC平台的混沌演练承载华为云混沌演练的最佳实践,包含从风险识别、应急预案制定、故障注入到演练复盘的全流程,其中风险识别采用FT-FMEA风险分析方法论,故障注入采用自研的故障注入探针。在华为云实践超过4年,每年运行超3000+的自动化混沌演练,节约演练人力超过1500小时。设计流程如下:

1.PNG

1.风险识别和管理

结合XX应用的部署架构和对外依赖图,基于FT-FMEA故障分析法分析该应用在生产环境的风险,形成故障模式。COC内置华为云FT-FMEA故障分析法,帮助用户从系统架构、SLO要求、故障场景分类、故障发生条件、客户影响等方面对系统风险进行高效分析,形成故障模式。

FMEA(Failure Mode Effect Analysis)起源于NASA,主要从业务的功能点出发,列出可能的失效模式、效果和原因、相应的控制手段,结合故障的严重等级、发生概率和可检测性等因素,最后对该模式得出RPN乘积分数,通过该分数可以判断该故障模式的风险等级。FMEA给出了面向风险的故障分析方法,但FMEA中故障发生概率、严重程度、可检测等级的分类等级达到10个,在实际实施时难以匹配,容易导致故障模式发散,进而影响故障管理的效率。华为云从实践中总结出FT-FMEA(基于容错视角的故障场景分析法),在FMEA的基础上,结合SRE实践场景,融合为7维故障分析框架,是专门面向SRE场景的故障分析方法,能够在确保故障全面分析的基础上故障模式不发散,有效提高故障场景分析的效率和质量。

对XX IT系统在COC上使用FT-FMEA后总结的故障模式列表如下,将原来90+的故障模式融合为30+个,为后续的应急预案制定、故障注入方案设计奠定了扎实的基础。

2.png

2.制定应急预案

根据分析出的故障模式,结合COC内置的华为云应急预案指导模板和该零售企业的运维实际情况,对每一个故障模式制定对应的应急预案。COC支持全自动化、自动化+人工混合,这两种方式的应急预案,以应对不同故障模式的应急恢复所需。

3.png

3.制定演练计划

基于故障模式,结合该IT系统的业务繁忙时段,在COC上制定好演练计划。

4.png

4.设计故障注入方案、执行演练、应急恢复

针对故障模式,结合应用的部署情况,设计演练方案,以验证该IT系统的自愈能力、应急预案能力、运维人员的恢复能力。

1)根据选择的故障模式,在COC上选择攻击目标和攻击场景,形成演练任务,以准确模拟故障模式的发生条件。

2)启动自动化演练,观察监控系统是否能够快速检测到故障和告警、该IT系统的自愈时长、运维人员是否能够按照应急预案熟练操作,最终记录下该系统的RTO。

5.演练复盘和总结

COC平台对本次演练进行自动打分,本次演练的观察组在COC中录入改进事项。该系统在本次演练活动中RTO不达标,除此之外,演练共发现18个问题,典型问题如:监控缺失、告警系统有功能BUG、该IT系统的实际部署情况和设计图存在一定差异、系统拨测缺失、运维人员对运维工具的使用不熟练等。

6.png

四、业务提升

本次演练采用COC平台对XX IT系统进行全流程多场景的混沌演练,演练达成的效果如下:

1)全面分析XX IT系统的潜在风险,使用FT-FMEA分析法,在确保全面风险识别的情况下,故障模式由90+个缩减为30+个,缩减了66.66%,达成故障模式收敛提质的目标。

2)对每个故障模式制定应急预案,沉淀在COC平台上,通过演练验证和改善了应急预案的可行性,为该IT系统面临的潜在风险建立了可靠高效的恢复能力。

3)COC混沌演练平台的自动化演练能力将演练效率提升10+倍,演练发现问题18个,通过改进落实,该系统SLO提升至99.99%,达到门店运营对该系统的可靠性要求。

五 案例总结

本次案例针对零售企业的XX系统对高可用的要求,使用COC平台进行风险分析、应急预案制定和故障演练。本次演练使用FT-FMEA风险分析法快速高效地识别该系统面临的风险,通过自动化的故障注入验证该系统的风险点和应急预案的有效性。对演练发现的问题进行改进落实,将该系统SLO提升至99.99%,达到门店运营对该系统的可靠性要求。

演练是检验和提升系统的可用性的最佳方式,结合零售企业的运维情况,总结出以下混沌演练的最佳实践原则:

1.明确评价标准

• 混沌演练的全流程都能产生价值,要明确混沌工程各环节的输出件和评价标准,并承载到在线演练平台中。

• 混沌演练是主动暴露风险的技术,通过及时激励来鼓励研发和运维人员主动暴露风险,并对风险制定好应急预案。

2.做好混沌演练,要做到故障模式分析先行

• 故障模式作为演练的起点,决定了演练的质量,应急预案作为恢复手段,是演练安全性和日常故障快速恢复的保障。

• 使用FT-FMEA方法分析的故障模式,在精准识别风险的同时也能够有效避免故障模式的数量发散。

3.使用自动化演练方式

• 自动化演练工具能够降低演练的门槛,提升演练效率,确保故障注入的安全性、准确性。

• 自动化演练工具能够对演练进行在线管理,确保演练的按时执行和演练经验的传承和积累。

4.做好演练运营

• 蓝军可以协调组织较大型的演练活动,在检验各IT系统韧性的同时,也能做好示范,带动独立系统的日常演练,达到演练日常化,演练无死角的效果。

• 对演练活动、演练结果进行运营和宣传,能够让IT开发和运维人员意识到系统可能面临的风险,将质量文化主动落实在研发和运维流程中。

 

点击关注,第一时间了解华为云新鲜技术~

 

标签:FT,系统,FMEA,模式,故障,COC,演练
From: https://www.cnblogs.com/huaweiyun/p/18197696

相关文章

  • join、inner join、left join、right join、outer join的区别
    什么是联结?union、intersect等集合运算,它的特征是以“行”为单位进行操作,通俗点说,就是进行这些集合运算,会导致记录行数的增减,使用union会增加记录行数,使用intersect或expect会减少行记录,集合运算不会导致“列”数量的改变。而联结(join)操作,就是将其他表中的列添加过来,进......
  • FTP替代工具需要解决哪些传输问题,才能实现平滑代替?
    FTP是应用很广泛的一种文件传输方式,也是互联网中最重要的应用之一。但存在很多功能上的不足,比如不能加密传输、传输中断异常不能断点续传等等。因此企业需要寻找FTP替代工具,进行文件的有效传输。除了功能不足,还存在以下弊端:1.安全性弱:采用明文传输,即数据在传输过程中是不加密的,......
  • CrushFTP服务器端模板注入
    漏洞描述由于CrushFTP存在服务器端模板注入漏洞,未经身份验证的远程攻击者可以逃避虚拟文件系统(VFS)沙箱,绕过身份验证获得管理访问权限,泄露敏感信息或执行代码。Fofa:server="CrushFTP"||header="/WebInterface/login.html"||banner="/WebInterface/login.html"||header="......
  • 关于“error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for
    安装库之前一定要注意python版本,今天鬼迷日眼的装一堆堆库,一个回车冒出来这个鬼问题。百度无果后灵光乍现,只安装报错时对应的库:condainstallnumpy==1.20.1结果在输出里找出这一段:Specifications:-numpy==1.20.1->python[version='>=3.7,<3.8.0a0|>=3.8,<3.9.0a0|>=......
  • Linux - 开启FTP服务
    vsftpd 一、Centos6.x配置ftp1.1、安装OpenSSH-serverOpenSSH-server包含了FTP服务,通常,CentOS6.x默认已经安装了OpenSSH-server(1)查看是否安装:rpm-qopenssh-server(2)安装openssh-server:yum-yinstallopenssh-server 1.2、创建用户和目录(1)创建用户:useradd-mftpu......
  • python sftp文件上传和Dockerfile部署步骤
    ##1、脚本app.py#-*-coding:utf8-*-importosimportparamikofromdatetimeimportdatetime,timedeltafromflaskimportFlask,requestapp=Flask(__name__)#从环境变量中获取配置信息host=os.getenv("SFTP_HOST")port=int(os.getenv("SFTP_PORT&q......
  • ROS学习日记:(报错)terminate called after throwing an instance of 'rclcpp::excepti
    论坛里的一个老哥给出答案https://discourse.ros.org/t/how-to-shutdown-and-reinitialize-a-publisher-node-in-ros-2/4090就是我在初始化环境前先初始化了节点autonode=std::make_shared<Static_tf_broadcaster>(argv);rclcpp::init(argc,argv);rclcpp::spin(nod......
  • swift高阶函数
    1.mapmap函数用于将一个集合(数组、字典等)中的每个元素都按照一定的规则进行转换,并返回一个新的集合,其中包含转换后的元素。letnumbers=[1,2,3,4,5]letdoubledNumbers=numbers.map{$0*2}print(doubledNumbers)//输出:[2,4,6,8,10]在这个例子中,map......
  • How to redirect to a specific web page after sign out from Entra ID
    HowtoredirecttoaspecificwebpageaftersignoutfromEntraIDWithsomemorediggingIfoundthebelowchangesresultedinasuccessfulredirecttoapageofmychoosing.Ifoundthatifthe SignedOutCallbackPath issettoanythingotherthan /signo......
  • 未能从程序集“Microsoft.Build.Tasks.vCurrent.dll”加载任务工厂“CodeTaskFactory
     遇到如下错误:未能从程序集“Microsoft.Build.Tasks.vCurrent.dll”加载任务工厂“CodeTaskFactory”。Couldnotloadfileorassembly'file:///G:\VS2022\IDE\MSBuild\Current\Bin\amd64\Microsoft.Build.Tasks.vCurrent.dll'oroneofitsdependencies.系统找不到指定......