一、概念
故障自愈是通过定时进行集群巡检,在检查到集群故障后自动修复故障,从而提高集群稳定性,确保产品的高可用性。
二、功能模块
模块 |
功能名称 |
功能说明 |
动作管理 |
自愈动作 |
1、自愈动作是最小粒度的执行动作 2、包含两类:预设动作和自定义动作 1)预设动作是内置的动作,用户仅可以查看不同版本的详情,不允许编辑、删除 2)自定义动作是用户创建的动作,支持编辑、查看不同版本的详情、删除,每次编辑都会生成一个新的版本,用户可以按需调整不同版本自愈动作的自定义脚本内容、操作参数 |
|
动作预案 |
1、动作预案是自愈动作的集合,定义了故障发生后对应自愈方案需要执行哪些动作步骤及步骤顺序 2、动作预案支持查看不同版本的详情、编辑及删除,每次编辑都会生成一个新的版本,用户可以按需调整不同版本动作预案中需要包含哪些动作、动作的版本、动作执行的顺序 |
故障管理 |
检查项 |
1、检查项是最小粒度的巡检任务 2、可以查看不同版本的详情、编辑及删除,每次编辑都会生成一个新的版本,用户可以按需调整不同版本检查项的具体检查脚本等信息 |
|
检查作业 |
1、检查作业是将不同的检查项部署在不同集群上的配置 2、同个集群不允许配置不同版本的同个检查项 3、检查项在集群配置后,检查项的执行没有顺序要求,即可以同时执行多个检查项的检查 |
|
故障定义 |
1、通过设置故障指标集合定义故障 2、支持查看不同版本的详情、编辑和删除,每次编辑都会生成一个新的版本,用户可以按需调整不同版本故障定义的指标集合及指标的规则 |
自愈管理 |
自愈预案 |
1、自愈预案定义了不同故障发生时应用的动作预案 2、支持查看不同版本的详情、编辑和删除,每次编辑都会生成一个新的版本,用户可以按需调整不同版本自愈预案的故障及其版本、动作预案及其版本 |
|
自愈部署 |
1、自愈部署是将自愈预案最终部署在具体集群上 2、自愈部署上线的时候会对动作中的必填参数做强制校验,已确保故障发生后自愈动作可以正确执行 |
总览 |
总览 |
1、用于查看故障自愈相关数据统计,如:已部署自愈预案的集群数、当日已检测出的故障数、历史检测出的故障数、故障自愈情况分析等 2、提供快捷入口,便于用户点击失败通知查看具体执行失败的故障自愈的日志详情,并进行自愈重试 |
|
故障自愈执行结果 |
查看不同故障自愈处理结果(成功/失败/已中止/执行中/待处理)的故障自愈执行,其中 1)成功:只可查看执行日志,不可进行自愈重试及中止自愈执行 2)失败:可查看执行日志及进行自愈重试 3)已中止:可查看执行日志及进行自愈重试 4)执行中:不可执行自愈重试,可查看执行日志,按需中止自愈执行 5)待处理:不可执行自愈重试,可查看执行日志,按需中止自愈执行 |
三、迭代演进方向
1、引入AI完善案例集的自动丰富
系统平台的搭建仅仅是第一步,对于一个故障自愈系统,更重要的是能够实时响应新发的故障,因此,故障及自愈案例集的丰富完善度相当重要。当前的应用更多依赖人工的维护。在后续的产品演进中,可以考虑引入机器学习等工具,结合生产监控、故障恢复脚本等,训练更高效、可自适应的系统,以响应新的故障,降低人工维护成本,提高故障自愈系统的有效性及可用性。
2、集成更多自动化能力
对于一个承载了大量生产业务的平台而言,故障自愈是敏感操作,若故障的恢复执行有误,可能会引发更大的生产问题。因此,在故障自愈系统上线之初,故障自愈往往仅在小范围内推广应用,自愈执行用例的发布是比较慎重的,多是逐一发布验证。
随着系统的成熟完善,有更多的故障集及自愈用例,故障自愈的发布会更加频繁,这时候如果还是人工逐一发布,效率将会非常低。因此,需要设计更多的自动化能力,包括批量工具、定时发布、条件触发发布等自动化部署功能,提高产品的可用性。