实践分享 | 构建多云环境下的智能运维体系

发表时间: 2024-03-25 14:00

在全球范围内,数字经济正在迅猛发展,党的二十大已明确提出要“加速发展数字经济”的战略方针。作为中国保险行业的领军企业,中国太平洋保险公司一直致力于数字化转型的推进。随着公司业务的持续高速发展,我们的数据中心运行模式也在不断地进行优化和升级。为了保障业务连续性、降低运维成本和提高服务质量,数据中心的运维工作也面临着前所未有的挑战,大致分为以下几点。首先,运维规模在不断扩大,特别是在实施私有云和系统信创改造的背景下,机房、机柜、设备和软件的规模都在迅速增长。多中心协作的问题也变得越来越突出。其次,业务系统的形态正在向多样化发展,分布式和云原生架构的应用逐步推广,同时传统架构的应用仍需长期存在,多态化的应用间均会存在关联关系,这导致了运维复杂度的几何级增长。此外,运维成本与业务连续性保障之间存在一定的矛盾。随着运维规模的扩大和系统形态的多样化,运维人员数量和技能不足的问题逐渐凸显出来。在人员数量不增加的情况下,及时发现和高效处理故障的难度也在不断加大。

在当前的复杂环境中,为应对多重挑战,我们必须构建一套全面且高效的监控系统,以实现全方位的监控覆盖,确保无死角。同时,我们还应构建高效的自动化运维体系,以提升运维效率,降低人工干预的成本和风险。此外,建立一个智能化的分析决策中心至关重要,它能够实现手眼联动,辅助决策,进一步增强运维的智能化水平。通过这套可全域掌控的智能化运维体系,我们将能够显著降低数据中心运维成本、提升运维效率,并赋予运维更多价值。这不仅有助于确保业务的稳定运行,更能为其提供坚实的支撑和保障。

太保科技有限公司云服务事业群 自动化工具研发团队负责人 杜颖君

建设方案

1.太平洋保险运维工具体系建设历程

自2016年起,太平洋保险数据中心开始系统地构建一系列运维工具,包括自动化运维、配置管理数据库(CMDB)、统一监控等。这一转变标志着我们的数据中心运维模式从后台脚本执行向前台界面操作的重大转型。

至2020年,我们已经基本建成了相对完善的工具体系,包括统一监控、自动化运维、日志平台、容器平台和配置管理数据库(CMDB)。此外,我们的首套私有云也同期构建完毕。

这些工具的运用,使得运维的变更、发布、应急处置等常规作业基本实现前台化操作。部分标准的恢复措施也实现了由监控系统告警自动触发,从而在一定程度上实现了数据驱动的故障自愈。大致能力架构如图1所示。借助图中的工具体系,我们得以在操作层面有效应对大批量重复性作业的处理时效问题,同时避免了因人员疏忽而导致的误操作。在问题发现方面,基础类告警已实现全覆盖,并建立了统一的告警和派单机制。这一系列的优化措施配合24小时的值班管理制度,确保故障能够及时被发现,提升了整体服务的稳定性和可靠性。

图1 运维工具体系架构图

2.从自动化向智能化发展的驱动因素

随着公司业务的迅猛发展,保险行业的市场竞争日趋激烈,业务连续性的保障需求持续增强。传统的监控和自动化作业模式已无法充分满足高效保障业务稳定性的需求。其主要问题表现在如下几个方面:首先,随着数据中心设备数量的不断增长,以及信创、云原生环境下的应用架构日趋复杂,我们需要对更多的设备和对象进行监控。然而,这导致了监控盲点和无效告警的问题愈发突出。其次,早期各类系统都是独立建设的,导致监控、日志和数据等信息无法快速地统一分析和展示。这无疑提高了故障排查的难度,排障速度对人员的技能和经验有较高的依赖性。最后,在数据中心以及各个专业团队中,日常问题处置、故障排查和重点保障等场景下的信息传递存在诸多壁垒,导致沟通成本高昂,严重影响工作效率。

3.智能运维体系建设的整体规划

为了解决当前运维工作中所面临的问题,基于现有平台能力进行了反复探讨论证,形成了一套以数据为驱动、算法为引擎的智能运维体系建设规划。这一规划旨在通过数据分析和算法优化,实现故障发现时间提前、故障定位速度提升,以及智能推荐处置方案的目标。

首先,智能监控体系的建设是整个规划的核心。通过实时监测各项指标,收集数据并进行分析,可以及时发现潜在的故障征兆,从而提前预警,避免故障的发生或减轻其影响。这不仅提高了系统的稳定性和可靠性,也大大减少了因故障导致的停机时间。

其次,利用高效的算法对海量数据进行处理,能够迅速定位故障发生的具体位置和原因。与传统的故障排除方法相比,算法的介入显著提高了故障定位的速度和准确性。这不仅减少了运维人员的工作量,也缩短了故障恢复的时间,提高了整个系统的运行效率。

此外,智能监控体系还能根据历史数据和算法分析,为运维人员提供智能推荐的处置方案。这些方案基于大量的实践经验和数据支撑,能够快速有效地解决故障问题。这不仅提高了运维工作的专业性和准确性,也进一步提升了系统的稳定性和可靠性。

总之,通过建设以数据为驱动、算法为引擎的智能运维体系,我们可以更好地应对当前运维工作中所面临的挑战。这一规划的实施将有助于提高系统的稳定性、可靠性和运行效率,降低故障发生的概率和影响,为企业的稳定发展提供有力保障(如图2所示)。

图2 数据驱动能力模型图

4.智能监控体系建设方案

在设计智能监控体系时,我们重点考虑了故障预防、故障发现及故障定位三个关键阶段。相较于传统的监控体系,其设计主要集中在故障发现阶段,尽管监控指标对故障定位具有一定的辅助作用,但由于数据分散等因素,其实际效果有限。为确保从传统监控向智能化顺利过渡,我们需要通过整合多种渠道的监控数据,以全面提升这三个阶段的功能与性能。为此,我们需要打破旧有的模式,真正从业务的角度出发,构建一套一体化的智能监控体系(如图3所示)。

图3 监控能力示意图

(1)故障预防阶段。根据“海恩法则”原理,为降低业务受影响事件的发生率,我们需在故障处于隐患阶段即发现并采取干预措施。为此,在监控体系设计过程中,我们特别增设了智能风险提示模块。该模块在每次运维作业(如变更、发布)完成后,会根据预设的比对模型,对作业涉及对象的运行状况进行前后趋势比对。例如,在应用发布后,该模块会对涉及数据库的低效SQL、执行计划以及CPU使用率等进行比对分析。一旦发现数据超出预设基线,系统将立即发出风险提示,同时在系统中记录问题并进行跟踪管理,确保问题得到妥善处理并形成闭环管理。责任人、处理人及处理方案等信息也将一并记录,以实现全程可追溯。

(2)故障发现阶段。为了尽可能早于用户发现故障,我们认为必须将监控视角从仅仅关注“应用可用性”提升至更全面的“服务可达性”。这一转变旨在更早地发现潜在故障,为后续的故障处置工作赢取宝贵时间,从而优化用户的体验。单纯依赖基础设施层面的监控指标,已无法满足当前的监控需求。我们需要扩展并引入更多关键的指标,尤其是关于用户体验的指标,如响应时间、错误率以及错误的分布等。同时,还需纳入网络流量和用户访问区域等多个监控维度,以提供更全面的故障描述。

考虑到现有告警模式存在的不足,如过度依赖单一指标和固定阈值,无法全面反映复杂的故障状况,并可能产生大量无效告警。为了解决这些问题,我们采取了多项改进措施。首先,我们引入了智能告警中心,该中心具备丰富的告警信息处理能力,能够合并同类告警、智能分配工单、抑制时间范围内的告警等。此外,我们还增强了告警形式的多样性,包括基于算法的制表基线运算与动态阈值告警、运行趋势(陡增、陡降)告警以及心跳检测告警。最重要的是,我们实现了多维阈值设置功能,可以更加精准地配置告警条件。

同时,为了进一步提升告警的有效性,我们建立了预警指标体系和用户影响评估机制。通过与故障定位能力的结合,我们能够更加准确地识别和过滤无效告警。这些改进措施旨在提高告警的准确性和实用性,为用户提供更加优质的服务体验。

(3)故障定位阶段。在解决故障定位问题时,我们重点考虑了如何迅速准确地找出故障的根本原因。为此,我们精心设计了系统智能诊断和全域观测两大模块。智能诊断模块运用预设算法进行初步筛选,对应用自生部署架构的基础组件以及应用间的交互关系进行深入分析。结合CMDB的数据关联和应用交互请求数据,我们成功建立了两类拓扑的关联关系。

在每个节点上,我们都预设了一系列排障指标因素,这些因素通常以基线阈值和短期波动等作为判断依据,进而形成决策树模型。当检测到异常节点时,我们会根据异常出现时间、节点在拓扑中的层级以及历史故障情况等多种因素为疑似故障节点赋予权重,最终推荐出故障根因可能性最高的节点,完成一次精准分析。

此外,该诊断模型具备预警、告警功能,并支持人工或定时触发。这不仅有助于快速定位故障位置,还能有效减少无效告警。每一次诊断的结果都会被详细记录,成为故障画像的重要参考依据。这一系列措施共同确保了我们的故障定位解决方案既高效又准确。

目前,上述诊断模型尚处于试用和调优阶段,日常的故障排查和定位工作仍需依赖运维专家的支持。为了解决各专业团队之间信息传递的壁垒问题,我们特别设计了专属的数据分析页面,涵盖了系统、网络、数据库、应用等多个领域。这些页面不仅展示了各层组件的依赖关系和运行指标,还通过数据处理引擎将不同来源的数据整合至数据观测模块中。我们的目标是通过智能与人工相结合的方式,打造高效的故障定位工具,从而提高故障排查的效率和准确性。

(4)数据处理引擎与数据治理工作。在预防、发现、定位三个阶段的能力建设中,我们以高效且灵活的数据处理引擎为核心,辅以长期以来的数据治理工作。为了实现这一目标,我们基于Clickhouse和MongoDB等相对轻量级的数据库,结合自主研发的流批一体处理引擎,推出了低代码的输出处理功能。这一功能对各类数据来源的指标和日志类数据能够迅速进行处理,降低了数据分析的技术门槛。因此,我们吸引了更多专业团队的运维人员参与到智能分析模式的开发中,形成了部门内部的生态机制。

此外,数据处理引擎固然重要,但是数据质量也是智能分析的另一个关键因素。为此,我们建立了数据准入标准,不断加强CMDB信息的自动采集,为每类数据指定责任团队,并实施自动数据完整性校验等措施。通过技术手段与管理的有机结合,我们持续地提升运维数据质量,确保智能分析的准确性和可靠性。

建设成效

经过这几年的持续努力,我们的智能监控体系已经形成了一定的规模,尤其在预防和提前发现故障方面取得了显著的成效。具体来说,这些成效主要体现在以下几个方面。一是在运维作业执行后,我们能够及时发现潜在的性能隐患,并采取措施进行提前干预,有效降低了故障的发生率。二是通过预警和诊断相结合的监控模式,我们能够更早地发现故障,并同步分析受影响的用户范围。这为处置决策和故障恢复提供了有力的依据。三是故障分析排查方案已在系统中得到有效沉淀,提高了初级运维人员处理故障的效率。同时,也解决了跨团队信息传递的障碍,进一步提升了故障排查的效率。四是运维人员的工作形态发生了积极的变化,更多的运维人员愿意投入到运维工具的建设中来,使人员的工作效率与积极性得到显著提升。五是运维数据的质量得到了保证,数据维护方和使用方的职责明确。所有的运维作业都依赖于统一的数据进行高效运作。六是对于每起故障发生时的运行情况,我们都进行了详细的记录。这些数据可以随时用于故障复盘,对整改任务制定及优化诊断模型具有重要的指导意义。

后续的工作与展望

基于数字化转型的大背景,智能运维已经成为企业稳定、高效运营的关键。经过一段时间的建设,智能运维体系已经取得了初步的成功,基本符合预期效果。然而,正如任何一个复杂的系统工程都会面临诸多挑战,智能运维体系在实践中仍需不断优化和完善。

首先,动态基线的准确度是智能运维体系中的重要一环。在实际应用中,我们发现基线的准确度仍有待提高。为了解决这一问题,我们需要对智能故障诊断模型进行持续的优化和改进,以提升其在复杂环境下的分析和定位能力。

其次,当前的故障分析与定位主要依赖于人工经验和历史故障数据。在未来,为了更加高效地应对未知异常,我们将引入更多的指标数据和日志信息,通过机器学习技术实现自动识别和分类。这将极大地提高故障处理的响应速度和准确性。

此外,针对复杂故障的处理也是智能运维体系面临的一大挑战。目前,对于一些复杂的系统故障,出于安全性方面的考虑,我们尚未直接调用自动化的处置功能。随着技术的不断进步,我们将不断优化诊断模型的准确度,从而将更多的处置动作与诊断模型相融合,我们期望在未来能够扩展更多故障自愈的应用场景,进一步提高系统的稳定性和可靠性。

最后,结合发现、诊断、处置等多阶段能力与大模型技术,我们将逐步实现“运维大脑”的愿景。通过与大模型技术的融合,我们将构建更加智能化的运维平台,为用户提供更加全面、高效的服务。

总结来说,虽然智能运维体系的建设已经取得了一定的成果,但仍需不断努力和改进。在未来,我们将继续深化对智能运维的研究和应用,为实现更加稳定、高效的信息化运营做出更大的贡献。


(此文刊发于《金融电子化》2024年2月下半月刊)