如何利用AIOps提升资源利用率与成本优化?

发布于:2024-12-21 ⋅ 阅读:(17) ⋅ 点赞:(0)

点击进入运维管理资料库

AIOps 简介与重要性

870ae63b711828820f9ab91792cbef8c.jpeg

概念解析

AIOps(Artificial Intelligence for IT Operations)即智能运维,是一种将人工智能、机器学习或其他高级分析技术应用于业务和运营数据的方法,旨在建立数据关联,并实时提供规范性和预测性答案。它结合了大数据和机器学习,使 IT 运营过程自动化,涵盖事件关联、异常检测以及因果关系确定等方面,利用 AI 及其子集来监控和解决与企业 IT 运营相关的各类问题。简单来说,AIOps 就是基于大数据、机器学习等能力提取和分析 IT 数据,进而为 IT 运维管理产品提供有力支撑,在如今 IT 基础设施愈发复杂、数据量海量增长的背景下,它已然成为应对现代 IT 挑战的关键工具。

重要作用

在提升资源利用率与成本优化方面,AIOps 有着不可忽视的重要意义。首先,它能够减少企业对人力资源的依赖,通过自动化执行日常的、重复性的任务,例如自动处理服务器补丁更新等,让 IT 团队可以从繁琐的基础工作中解脱出来,将更多精力投入到更具战略性、更重要的任务上去,实现人力资源的高效利用,同时也降低了人力成本。

其次,AIOps 具备提前预防问题的能力,它可以实时分析来自多个来源(如基础设施、应用程序、日志等)的大量数据,识别其中的模式、检测异常,并预测潜在问题。这意味着企业能够在问题发生前采取相应措施,避免因故障导致的资源浪费以及后续解决问题产生的高额成本,保障系统的可用性和性能,提升资源的有效利用率。

再者,自动化的流程让很多原本需要人工手动处理的工作变得高效且精准,例如智能自动化可以减少 IT 团队需要手动处理的警报数量,避免无效警报对人力的消耗,同时快速准确地定位问题根源,缩短平均解决时间(MTTR),进而优化整个运维管理流程,使得成本在各个环节都能得到有效控制。

总之,AIOps 在帮助企业提升资源利用率、优化成本方面发挥着关键作用,助力企业在复杂多变的市场环境中更好地发展。

AIOps 的核心组成部分

b7358670ab843e2dd705b79d9d2c0d75.jpeg

数据源

AIOps 能够从多种数据来源提取数据,这其中涵盖了事件、日志、指标、工单、监控以及作业数据等。就拿事件数据来说,它记录着 IT 系统中发生的各类操作及状态变化,像服务器的启动与停止、应用程序的更新等;日志数据则犹如系统的 “日记本”,详细记载了系统运行过程中的各种活动、错误提示等关键信息;指标数据可以直观反映系统各方面的性能状况,例如 CPU 使用率、内存占用量等。

这些丰富多样的数据源共同为 AIOps 提供了 IT 基础设施和运营的全面视图,使得 AIOps 平台能够基于这些数据进行有效的分析和解读。例如,当分析系统性能问题时,通过整合事件、日志和指标等多方面的数据,可以清晰地知晓在某个特定时间点发生了哪些操作,相应产生了什么日志记录,以及各项性能指标的变化情况,进而准确判断问题所在,为后续的优化决策提供有力支撑。

大数据处理

在当今的 IT 环境下,系统会生成大量且快速更新的数据,为了能够妥善处理这些海量的数据,AIOps 依赖着强大的大数据处理工具。像 Elastic Stack,它具备出色的搜索和数据分析能力,能迅速在海量数据中定位到所需信息并进行分析;Hadoop 2.0 则可以分布式地存储和处理大规模数据集,通过将数据分散到多个节点进行处理,极大地提高了处理效率;还有各种 Apache 技术,例如 Apache Kafka 能够实现高吞吐量的实时数据传输,保障数据的及时性。

借助这些大数据处理工具,AIOps 能够实时处理和分析大数据集,确保可以及时获得有价值的洞察以及可操作的信息。比如在监测电商平台的运营情况时,面对每秒都在产生的海量用户访问数据、交易数据等,利用上述大数据处理工具,AIOps 可以实时分析出当前流量高峰时段、哪些商品最热门、哪些页面的加载速度出现异常等关键信息,运营团队就能依据这些信息及时调整资源配置、优化页面性能等,从而保障平台的流畅运行。

机器学习

机器学习算法在 AIOps 中处于核心地位,它赋予了平台依据数据分析自动适应和演变的能力。机器学习算法能够对数据模式进行深度分析,例如通过对历史系统故障数据以及对应的运行状态数据进行学习,总结出在何种数据模式下容易出现故障,像是当某几个指标数据同时出现异常波动,且日志中频繁出现特定错误提示时,往往预示着即将发生故障。

同时,它还能自动修改现有算法或构建新算法,来提高检测异常、预测结果和优化操作的准确性与有效性。比如在网络流量监控方面,最初的算法可能只能基于简单的阈值判断流量是否异常,随着机器学习不断对大量正常和异常流量数据的学习,它可以构建出更智能的算法,不仅考虑流量大小,还会综合分析流量的来源、流向、时间分布等多种因素,更精准地检测出那些隐蔽的异常流量情况,并且可以基于过往数据预测未来流量趋势,帮助提前做好资源调配,避免因流量过载导致网络拥堵等问题。

自动化

AIOps 的一个重要成果就是实现自动化,它充分利用机器学习和人工智能分析得出的结果,自动构建和应用对已识别问题和场景的响应。例如,当检测到某台服务器的内存使用率持续过高这一异常情况时,AIOps 可以依据预先设定的规则以及过往处理类似问题的经验,自动触发相应的响应操作,像是自动增加虚拟内存、调整相关应用程序对内存的占用策略等,而无需人工手动去逐一排查分析并执行操作。

通过这样的自动化流程,极大地简化了 IT 运营工作,提高了响应时间,减少了人工干预的需求。在面对大量重复性的运维任务时,比如每天定时的系统健康检查、数据备份等工作,都可以交给 AIOps 自动完成,让 IT 运维人员能够从繁琐的日常操作中解脱出来,将精力更多地投入到如架构优化、新业务系统部署等更具战略性、更有价值的工作上去,使得企业能够在如今复杂的 IT 环境中更高效地运作,更好地应对各种运维挑战,保障业务的稳定运行。

利用 AIOps 提升资源利用率的策略

应用画像构建

在提升资源利用率方面,构建应用画像有着重要作用。以携程为例,作为国内最大的在线旅游 OTA,其拥有成千上万的应用,而每个应用对资源的使用情况各不相同,有的是 CPU 计算型应用、有的是内存消耗型应用、还有的是高 IO 应用等。为了提高应用对资源的整体利用率,就需要有能力对它们进行区分,于是携程设计了应用画像。

其具体做法是利用聚类算法来构建应用画像。聚类算法能够依据应用在多维度数据上表现出的特征,将相似的应用归为一类。例如,收集应用在运行过程中的 CPU 使用率、内存占用峰值、磁盘 IO 读写频率、网络带宽占用情况等数据,通过聚类算法进行分析,把那些 CPU 使用率波动曲线相似、内存占用情况相近的应用聚类在一起,进而区分出不同类型的应用。

当完成应用画像的构建后,就可以依据应用的类型以及它们之间的亲和性来合理部署应用。比如,将对内存需求高峰时段不同,但整体内存占用量较为稳定的几个应用部署在同一台服务器上,或者把 CPU 计算型应用与 IO 密集型应用搭配部署,使得服务器的各类资源在不同时段都能得到较为充分的利用,避免出现某些资源闲置而某些资源紧张的情况,以此提高整体资源利用率。

数据预处理与特征提取

要想通过 AIOps 精准分析数据,进而提升资源利用率,数据预处理与特征提取是必不可少的环节。

首先是数据预处理,采集到的数据往往存在各种问题,需要进行清洗、过滤噪声数据等操作。例如,在采集服务器的性能数据时,可能会由于网络波动等原因出现一些异常值,或者存在重复记录的数据,这时候就需要通过特定的算法和规则来识别并剔除这些异常值,去除重复数据,保证数据的准确性和一致性。同时,对于一些明显不符合业务逻辑的数据,比如某时段 CPU 使用率超过 100% 这样的错误数据也要进行修正或删除。

而针对不同类型的数据,特征抽取的方法也各有不同。对于像 CPU 使用率、内存使用率这类字符数据,可以采用归一化的方法进行特征抽取,将数据处理为 [0,1] 区间内的值,方便后续的比较和分析。对于文本数据,例如系统日志中记录的操作信息、故障描述等,则可以采用混合的特征抽取方法。比如先采用 TF*IDF(词频 - 逆文档频率)方法对长文本进行特征抽取,它能够衡量某个词对于文本的重要程度;针对短文本,采用卡方检验方法进行特征抽取,然后再使用信息增益对抽取的特征进行打分,根据评分来合理设置权重,从而提取出最具代表性、对后续分析最有价值的特征。通过这些数据预处理与特征抽取操作,为后续基于 AIOps 的精准分析做好充分准备。

资源智能调度

AIOps 的智能算法在资源智能调度方面发挥着关键作用,能够助力实现资源的合理分配,避免浪费,提升利用率。

它可以依据应用对资源的需求特点来进行智能调度。例如,通过对应用长时间的运行数据监测与分析,了解到某个应用在每天上午 9 点到 11 点是业务高峰期,对 CPU 资源的需求量会大幅增加,而在其他时段则相对平稳。AIOps 系统就能根据这一特点,在业务高峰来临前,自动调配更多的 CPU 资源给该应用,保障其流畅运行;待高峰时段过后,再将多余的资源收回,重新分配给其他有需求的应用。

再比如对于一些具有周期性资源使用规律的应用集合,AIOps 可以统筹安排,将它们部署在同一资源池中,根据各自的周期错峰使用资源。如一部分应用在白天使用较多内存资源,另一部分则主要在夜间占用较高的网络带宽,通过智能调度,让服务器的内存、网络带宽等资源在不同时段都能被高效利用起来,实现整体资源的优化配置,最终达到提升资源利用率的目的。

借助 AIOps 实现成本优化的方法

减少人力依赖

在企业的 IT 运维管理中,人力成本往往占据着较大的比重,而 AIOps 的出现为减少人力依赖、优化成本提供了有效的解决方案。

以往,大量的日常运维任务需要人工手动去完成,例如服务器的日常巡检、数据的定时备份、各类系统的补丁更新等等,这些重复性的工作不仅耗费了运维人员大量的时间和精力,而且容易因人为疏忽产生错误。而 AIOps 能够将这些日常运维任务进行自动化处理,以服务器补丁更新为例,AIOps 可以依据预设的规则和时间计划,自动检测服务器是否需要更新补丁,并在合适的时间自动完成下载、安装等一系列操作,无需人工逐个去排查服务器状态并手动执行更新。

通过这样的自动化方式,IT 团队的成员就可以从这些繁琐的基础工作中解脱出来,将更多的精力投入到更具战略性、更能为企业创造价值的工作上去,像是架构优化、新业务系统的部署规划以及对业务发展更有前瞻性的运维策略制定等方面。这不仅实现了人力资源的高效利用,让专业的人员可以去做更专业且更重要的事情,同时也实实在在地降低了企业在 IT 运维方面的人力成本,使得企业在人力投入上更加合理、高效,有助于提升整体的运营效益。

精准问题预防

AIOps 具备强大的数据分析和预测能力,它可以实时收集并分析来自多个来源(如基础设施、应用程序、日志等)的海量数据,通过对这些数据中的模式进行深度挖掘,提前精准地识别潜在问题,从而采取相应的预防措施,避免问题进一步升级造成更大的损失,进而实现成本的优化。

例如,在电商大促等业务高峰期来临前,AIOps 系统可以通过对过往类似时段的数据以及平时系统运行数据进行分析,提前预测出哪些服务器可能会出现负载过高、哪些关键应用可能会出现性能瓶颈等潜在故障隐患。像对于那些长期高负载运行、硬件老化的服务器,系统可以提前发出预警,运维团队便能提前采取防范措施,如提前增加服务器资源、进行硬件维护或者将部分业务迁移到其他空闲服务器上,避免在业务高峰期出现服务器崩溃等严重故障。

再比如,通过对应用程序的日志数据进行实时分析,当检测到某些特定的错误代码出现频率逐渐增加,或者某些关键操作的响应时间开始出现异常波动等情况时,即便还未真正影响到用户使用,AIOps 也能及时察觉并预判可能出现的故障,促使运维人员提前介入排查问题根源,提前修复,避免故障全面爆发导致的业务中断、用户流失以及后续为解决问题投入的高额成本,保障了系统的可用性和性能,也让成本得到了有效的控制。

优化资源配置

合理的资源配置对于企业来说至关重要,而 AIOps 可以通过深入分析系统性能和用户行为等多维度的数据,帮助企业做出更明智的资源配置决策,避免资源的闲置或过度使用,从而达到成本的有效控制。

一方面,AIOps 可以对不同应用在不同时段的资源使用情况进行精准分析。比如,对于一个同时运行多个业务应用的企业,有些应用白天使用频率高、对计算资源需求大,而有些应用则主要在夜间进行数据处理、对存储资源需求突出。AIOps 通过长时间的数据收集和分析,就能清晰掌握各个应用的资源使用规律,然后据此将资源进行合理分配,让不同应用在各自需要的时段可以充分获取所需资源,避免出现白天某些服务器计算资源紧张,而夜间又大量闲置的情况,提高资源的整体利用率。

另一方面,通过分析用户行为数据,了解用户对不同功能模块、业务流程的使用偏好和频次,企业可以相应地调整资源分配优先级。例如,某在线教育平台发现用户在晚上八点到十点之间对直播课程功能的使用量最大,那么就可以在这个时段重点保障直播相关服务器、网络带宽等资源的充足供应,而对于一些非核心功能模块的资源占用进行适当限制,实现资源的动态优化配置,确保每一份资源都能在最需要的地方发挥作用,避免不必要的资源浪费,从源头上控制成本支出,助力企业以更合理的资源成本实现更高效的业务运营。

AIOps 的实际应用案例分析

银行业案例

在银行业的数字化转型进程中,AIOps 发挥着至关重要的作用,擎创夏洛克 AIOps 平台助力 E 银行实现高效智能运维就是一个典型案例。

E 银行作为五大国有银行之一,随着数字化转型的不断推进,其业务系统和基础架构日益复杂,运维数据大量增长,传统运维系统面临着诸多难题。

首先是数据治理难,业务量的增多使得数据规模急剧扩大,数据种类与结构愈发复杂多样,数据标准不统一导致质量较低,且数据分散在各应用处、集中度不高,存在孤岛现象,可复用能力欠缺。

其次,发现问题也变得困难起来。原有的运维系统监控不全面,缺乏对整体业务运行状态的监控,采用固定阈值告警,误报漏报率高,发现问题较为被动,缺乏趋势预测能力,严重依赖运维人员经验,这使得运维成本升高,效率却降低了。

再者,根因定位难也是一大痛点,原有运维系统和工具基本为事后统计分析,缺乏实时分析能力、以业务指标驱动的根因分析能力、场景化的相关性分析能力以及多维数据的交叉分析能力,对运维排障能力的提升作用有限,导致故障处理能力较低。

还有运营分析难的问题,传统运维系统主要依赖人工经验、通过报表来分析数据,缺乏智能化的动态数据分析手段,且过去的数据分析从运维角度出发而非业务视角,较为片面,落地性不强,数据价值挖掘不充分,无法为综合运营提供有力保障支撑。此外,E 银行部署了云平台,对运维侧提出了更多如与态势感知可视化工具深度结合以解决云上安全风险、检测排查内部人员违规操作等定制化需求。

基于这些情况,E 银行选择与擎创科技合作,引入夏洛克 AIOps 平台。擎创科技为其构建了集成数据采集、处理和存储多种功能的数字运维中台。在数据采集方面,具备多源数据采集能力,能覆盖指标、事件、日志等多种运维数据,无论是工单系统、监控系统还是日志平台的数据,均可作为可配置的数据源融入平台,还会对接不同体系如容器云、K8s 等。数据采集完成后,基于 Flink 和 Spark 两大技术栈进行抽象整合形成数字运维中台,实现数据标签化、体系化、规范化,可通过拖拉拽操作实现基本处理与一体化查询分析。最后在数据存储上,提供相应的技术栈和配套软件,并运用大数据工具提升运维数据存储能力。

通过这一数字运维中台,解决了 E 银行数据治理难的问题,为智能运维场景建设奠定了基础,持续提升了运维数据的质量和治理水平。并且,AIOps 在精准告警、异常检测、根因定位和容量分析等落地场景中发挥作用,明显优化了运维成本,提高了运维效率,以全局运营视角解读 IT 运维,充分挖掘数据价值,助力 E 银行更好地应对数字化转型中的挑战,实现业务的稳健发展。

电信业案例

在电信行业,AIOps 同样有着出色的应用表现。以某运营服务为例,面对复杂的网络环境和大量的运维工作,AIOps 技术展现出了独特的优势。

该运营服务涉及众多机器,运维人员需要对其进行有效的监控和管理,以保障服务的正常运行。首先,会对该服务下全部机器的监控数据及服务调用耗时数据进行预处理,将其转化为机器可计算的数据,就如同进行数据的 “梳理” 和 “提纯” 工作,去除那些无效、杂乱的数据信息,使后续分析能够更加精准地开展。

接着,运用 KNN、逻辑回归等模型进行分类计算,重点在于预测服务调用是否会超时。例如,通过对过往大量的历史数据进行学习和分析,掌握不同时间段、不同业务场景下服务调用耗时的规律和特征,当新的数据流入时,模型就能依据这些学习到的模式进行判断,提前 30 分钟预测出服务调用是否会超时。

这样一来,运维人员便可以提前对此类可能出现的告警加以防范或采取相应措施,不必等到服务真正出现故障后才进行修复操作,变被动为主动。以往,当系统发生故障时,由于服务分散在不同主机上,问题定位困难,故障排查耗时较长,而现在借助 AIOps 技术,能有效减轻运维人员的工作负担,提升他们的工作效率。

同时,通过合理运用 AIOps 技术,还可以依据预测结果对资源进行提前调配和优化,避免因服务故障导致的资源闲置或浪费,提升了资源的利用率。比如在预测到某一时段可能出现服务调用超时风险时,可以提前为相关服务分配更多的网络带宽、服务器算力等资源,保障服务的流畅性,待风险过后再对资源进行合理回收和重新分配,从而实现资源的高效利用,让整个电信运营服务更加稳定、高效地运行,更好地满足用户的需求,在激烈的市场竞争中占据优势。

实施 AIOps 的要点与挑战

40b41779fa9b011997ce5a400bda386c.jpeg

要点把握

在实施 AIOps 的过程中,有几个要点需要重点把握,以确保其能够顺利落地应用并发挥最大价值。

数据采集的全面性

全面的数据采集是 AIOps 的基础。这意味着要涵盖各种可能与 IT 运维相关的数据来源,比如事件、日志、指标、工单、监控以及作业数据等。就拿指标数据来说,不仅要采集如 CPU 使用率、内存占用量这些常规的性能指标,还要关注诸如网络带宽利用率、磁盘 IO 读写速度等。对于日志数据,要确保能完整记录系统运行过程中的各种活动、错误提示等关键信息,像应用程序更新时的详细操作记录、服务器启动和停止过程中的报错信息等。而且,要覆盖不同的设备、应用以及业务环节,例如在电商平台中,要采集从用户下单、支付到物流配送等各个环节涉及的相关系统数据,只有这样全面的数据,才能为后续的分析提供充足的素材,让 AIOps 平台能够准确洞察系统的整体运行状况,发现潜在问题以及优化的机会。

算法选择的适配性

不同的运维场景和数据特点需要适配不同的算法。例如,在进行异常检测时,如果面对的是具有周期性规律的数据,像企业办公网络在工作日白天流量大、晚上流量小这种情况,那么采用能识别周期模式的算法(如 Tima 算法)会更加合适;而对于一些平稳数据,像服务器长时间稳定的 CPU 使用率情况,自动阈值算法、Tima 算法等都可以作为不错的选择。对于根因分析场景,关联规则、相关性分析等算法则可以帮助挖掘出不同事件、指标之间的内在联系,从而精准定位问题根源。同时,还要考虑算法的可解释性,选择那些能够让运维人员相对容易理解其决策过程的算法,避免出现 “黑箱” 操作,便于后续对结果进行验证和调整,确保算法真正能解决实际运维中的痛点问题。

与现有系统的兼容性

AIOps 需要融入企业现有的 IT 运维生态系统中,与已有的 “监管控” 平台体系良好兼容。比如要能和现有的监控系统(如 Zabbix、Nagios 等)、自动化运维工具(如 Ansible、SaltStack 等)以及工单系统无缝对接,实现数据的互通和流程的协同。在数据层面,能够接收来自这些现有系统的数据输入,并将 AIOps 分析产生的结果反馈给相应系统,驱动后续的自动化操作或者作为运维人员决策的参考依据。在流程方面,要契合企业已有的事件处理流程、问题排查流程等,例如当 AIOps 检测到异常并定位到根因后,能按照企业规定的流程自动生成工单并流转到对应的运维人员处进行处理,最大程度减少对现有运维工作模式的冲击,保障企业运维工作的连续性和稳定性。

挑战应对

实施 AIOps 并非一帆风顺,也会面临诸多挑战,以下是一些常见的挑战以及相应的应对建议。

数据质量问题

在大型系统中,数据量大且复杂,数据质量参差不齐是常见的难题。比如数据可能存在不准确、不完整、重复或者过时等情况。例如由于网络波动,采集到的服务器性能数据出现异常值,或者因为系统故障导致部分日志丢失,影响了数据的完整性。

应对建议是建立健全的数据治理框架,定期进行数据审计、验证和清理工作。利用自动化工具和 AIOps 平台本身的功能对数据进行实时监控,及时发现并纠正数据中的错误。例如,设定合理的数据校验规则,对于超出正常范围的 CPU 使用率、内存占用量等数据进行标记和排查;对于重复的数据记录,通过去重算法进行筛选剔除,确保输入到 AIOps 系统中的数据是准确、完整且及时的,为后续的分析和决策提供可靠的基础。

算法的精准度

不同业务场景需要不同的算法,而且即使选择了看似合适的算法,其精准度也可能受到多种因素影响,如数据的分布变化、业务需求的动态调整等。随着时间推移和数据的不断更新,原本有效的算法可能出现性能偏移,导致检测异常、预测结果等方面的精准度下降。

对此,需要建立持续的模型监控机制,及时跟踪算法在实际应用中的表现,通过对比实际结果和预期结果,识别出算法精准度的变化情况。同时,根据业务的发展和数据特点的变化,适时对算法进行调整和优化,例如重新训练模型、调整算法参数等。另外,多采用一些交叉验证、对比试验的方法,选择不同的算法在相同的数据集和业务场景下进行测试,选取精准度最高、稳定性最好的算法应用于实际的 AIOps 系统中。

组织架构的协同

AIOps 的实施往往涉及多个部门和团队,如运维团队、数据科学家团队、开发团队等,不同团队之间的目标、职责以及工作方式存在差异,容易出现沟通不畅、协作困难的情况,影响 AIOps 项目的推进和落地效果。

为了应对这一挑战,企业需要从组织文化和流程上进行优化。培养一种数据驱动的文化,鼓励各个团队成员积极利用 AIOps 工具和平台,打破部门之间的壁垒,加强沟通与协作。明确各个团队在 AIOps 项目中的职责,例如运维团队负责提供实际运维场景需求和数据采集工作,数据科学家团队负责算法的研发和优化。

f5ed3804109390e8e8b6d015f1178a60.png