平均无故障时间 (MTTF) 是指不可修复的系统或资产(如灯泡)在发生故障、无法使用或不符合规格的故障之前,能够正常运行的平均时长。
企业会通过这项可靠性关键绩效指标 (KPI),估算各类技术或机械组件的预期使用寿命。
在 DevOps 领域,MTTF 通常用于衡量一项服务在出现重大故障、导致停机前,可为用户持续提供服务的时长。
若 MTTF 偏低或持续下降,即向开发人员和站点可靠性工程师发出预警:基础设施、代码或依赖项稳定性不足,需要进行优化改进以提高可靠性。MTTF 较高,则说明生产环境在两次重大故障或宕机之间能保持更久的稳定运行,也意味着 IT 团队搭建的架构可靠,正在安全地交付软件应用程序。
将 MTTF 与平均故障间隔时间 (MTBF) 等维护指标搭配使用,可帮助 DevOps 开发运维团队优化各类 IT 组件(网络节点、容器、托管服务等)的容量与生命周期规划,降低意外停机的风险。
这类指标还能帮助企业追踪不同版本下的设备可靠性,判断代码、基础设施即代码 (IaC) 与配置变更是否提升了系统弹性,而不只是加快了交付速度。
MTTF 用于表示一批相同组件在发生故障前的平均运行时长。最基础的计算方式为:MTTF = 所有资产的总运行时长 ÷ 资产故障总次数。
其中,“总运行时长”是每个组件发生故障前(或观察结束前)的运行时间总和,“故障次数”为实际发生故障的组件数量:
MTTF = 所有组件总运行时长 ÷ 故障总次数
我们以容器集群为例。
容器属于临时实例,一般不会进行修复操作。当容器崩溃或状态异常时,容器编排工具(如 Kubernetes)会直接销毁该容器,并创建新的容器。
若 IT 团队在 50 个相同的应用程序容器上运行无状态 Web 服务,可统计每个容器从创建到故障的运行时长,再除以故障容器数量,即可算出 MTTF。经评估,该团队发现这 50 个容器总运行时长为 200 小时,期间共有 5 个容器发生故障。
MTTF = 200 小时运行时长 ÷ 5 次故障 = 40 小时
该集群内容器的 MTTF 为 40 小时。
MTTF 并非适用于实际用例的完美或精准公式,因此 DevOps 开发运维团队通常将其作为组件耐用性的参考值,结合平均修复时间 (MTTR)、MTBF 等事件管理 KPI 综合使用。在这种场景下,MTTF 可以帮助团队估算容器集群每日的重启次数,从而合理配置集群规模与自动扩展资源。
故障与运行数据越精准、样本量越大,MTTF 的计算结果就越准确。
通过 Think 时事通讯,了解有关 AI、自动化、数据等方面最重要且最有趣的行业趋势。请参阅 IBM 隐私声明。
跟踪 MTTF 能帮助团队量化系统可靠性,理性制定资产管理决策,优化规划方案,并推动实现更具弹性的设计与流程。该指标可帮助企业聚焦以下工作重点:
MTTF 以清晰的数值呈现资产故障前的使用寿命,让团队可以客观评估可靠性,而非仅凭经验判断。
MTTF 可将组件或服务的固有可靠性与 MTTR 区分开,MTTR 衡量的是团队处理系统故障的响应速度。当某项服务的 MTTF 出现下降,往往预示着存在深层的设计或依赖问题(如存在问题的依赖库)。团队可以根据这些信号开展故障排查,定位系统故障的根本原因。
通过长期跟踪故障指标,团队可以识别出稳定性薄弱的服务,优先开展优化,以降低后续故障的发生频率。
监控 MTTF 可以帮助企业优化维护管理流程,以更主动的方式解决问题。
团队无需执行定时或临时维护任务(如每周日重启 X 服务),可基于实测 MTTF,在常规故障周期到来前安排维护(如容器 Pod 运行至常规故障时长的 80% 时进行回收)。
事实上,IT 经理和维护团队可以将基于 MTTF 的明确指导编入运行手册,即完成 IT 任务的详细操作指南。例如,可在任务提示中注明:“若 X 服务运行时长超过常规 MTTF,且出现错误、延迟等预警信号,应主动停用并重启服务,不必等待硬性故障发生。”
在事件管理中,MTTF 可以表示从检测到缺陷到系统完全故障的平均时长,反映系统在降级或不安全状态下还能运行多久。了解这一性能衰减周期,能帮助团队判断在组件停机前,有多长时间可以实施修复,如数分钟、数小时或是数天)。
同时,这也能降低事件的影响程度。IT 人员无需在意外故障发生时仓促应对,直接执行提前规划、测试并配置好资源的切换或故障转移操作即可。
将 MTTF 纳入 DevOps 开发运维的 KPI 体系,能够推动 IT 团队以可靠性与平稳降级为核心进行架构设计,而不只关注交付速度。团队可以对比各组件的 MTTF,指导架构选型,比如更换性能不佳的组件、重新设计服务逻辑。
监测 MTTF 可以帮助 IT 架构师确定需要配置冗余的环节。例如,MTTF 较低的关键服务通常需要配置副本、故障转移集群或断路器(避免服务重复执行失败操作),才能稳定运行。
MTTF 也为架构师提供了服务组合的参考指标。如果一个应用程序依赖一系列低 MTTF 的组件(故障频率更高),DevOps 开发运维团队可以选择解耦依赖或添加回退路径,避免出现跨服务级联故障。
MTTF 可以帮助 DevOps 开发运维团队梳理技术债务的处理优先级,把模糊的“系统不太稳定”这类感受转化为可量化、可排序、可处理的可靠性风险。团队可以根据 MTTF 数据生成按 MTTF 和故障影响排序的可靠性待办清单,让代码重构、架构重设计和依赖升级都聚焦在对系统稳定性影响最大的环节。
此外,MTTF 数据还能让企业把技术债务和业务成果关联起来,清晰体现服务的故障频率,以及长期造成的停机时长和对用户的影响。这能为工程师推进技术债务清理,提供切实的数据依据。无需仅凭直觉判断,他们可以直接说明“该模块每 N 天故障一次,引发了团队 X% 的异常事件”,这样更容易获得管理层和产品团队的认可。
SLO 是针对特定服务,在一定周期内双方约定好的性能指标目标。它可以明确服务的预期状态,简化系统调整相关的决策流程。
可用性 SLO 规定了服务允许的停机时长,这个时长也被称作错误预算。错误预算的作用是帮助企业在创新推进和系统稳定之间做好平衡。只要错误预算充足,团队就可以放心地优先推进功能交付。一旦预算即将耗尽,就需要将工作重心转向可靠性优化。
MTTF 偏低的服务会快速消耗错误预算,这意味着要么当前架构下该 SLO 不切实际,要么 IT 团队需要提升服务可靠性来拉高 MTTF。
MTTF 和 MTBF 都是衡量设备稳定运行时长的可靠性指标,但适用的资产类型和生命周期场景各不相同。MTTF 指组件首次发生故障前的平均时长,MTBF 则指可修复资产两次故障之间的平均间隔。
MTTF 用于估算不可修复资产在彻底失效前的平均运行时长,失效后该资产只能直接更换。该指标的前提是,单次故障就会直接结束组件的使用寿命。
MTTF 适用于直接替换的硬件组件,比如存储磁盘、中央处理器 (CPU) 和线缆。它也适用于容器、微服务这类软件组件,这类组件最终会被新版本或其他服务替代,而不是现场修复。
MTBF 用于衡量可修复资产连续故障的平均间隔,这类资产(包括服务器、网络组件、软件代码等)故障后可以修复并重新投入使用。该指标假设设备会反复经历故障、修复、再故障的过程,系统的使用寿命由多个“故障→修复”周期构成。
MTTF 和 MTBF 两项指标可以共同指导 IT 团队开展事件管理与 IT 服务管理工作。
在许多架构中,不可修复组件(由 MTTF 监控)内嵌在大型复杂的可修复系统中(通过 MTBF 跟踪),因此 MTTF 可以帮助团队预判内部组件何时会故障,进而影响整个系统的 MTBF。
假设可观测性数据显示,某零售应用程序里的支付处理微服务,在出现严重内存泄漏导致不可逆崩溃前,MTTF 为 1,000 小时。DevOps 开发运维团队可以设置每 800 小时自动重启该微服务,避免引发连锁故障,导致应用程序的 MTBF 大幅下降。
因此,提前替换这类不可修复的微服务,能直接提升整个应用程序的可靠性。
这两项指标也是制定可用性规划和维护计划的核心依据。MTTF 可以为库存管理和备件储备提供参考,MTBF 则能指导制定预防性维护计划,预估故障中断的频率。
将 MTTF、MTBF 和 MTTR 这类修复时长指标结合使用,规划人员可以估算系统正常运行时间、制定备件预算,并微调 IT 系统以达到最佳可靠性。
提升资产 MTTF 的方式会因系统本身、依赖项、所属的 DevOps 开发运维生态系统以及整体业务目标的不同而有很大差异。但通常都会包含以下几项关键做法:
利用 AI 和自动化的强大功能,主动解决整个应用程序堆栈中的问题。
使用开发运维软件和工具,在多种设备和环境中构建、部署和管理云原生应用程序。
通过我们的云咨询服务持续实现应用现代化,加速业务敏捷性与增长——支持任意平台部署。