依托 ML/AI 技术,提升云服务,这是微软亚洲研究院在智能运维领域的探索之路。
运维是一家公司正常运行的重要组成部分。为了保证在线系统的服务质量和用户体验,公司运维部门需要实时监控系统运行状况,以便对异常及时进行分析和处理。传统的人工运维方式耗时耗力,之后出现了使用大量自动化脚本的自动化运维方式,但随着系统规模日益增长,海量用户、大规模集群、复杂的系统架构自动化运维渐渐力不从心。
如何实时检测异常、快速响应故障、预测故障、合理规划容量等成为了重要研究课题。大数据和 AI 时代的到来使公司运维迈入了智能化阶段,智能运维(AIOps)应运而生。
AIOps 是「Artifical Intelligence for IT Operations」的缩写,由 Gartner 在 2016 年提出。据其解释,AIOps 有两个主要组成部分,分别是大数据和机器学习。AIOps 需要远离数据孤岛,在大数据平台中将观测数据(如在监控系统和工作日志中发现的数据)和互动数据(如在突发事件和记录中发现的数据)聚合起来。然后,对组合 IT 数据执行全面分析和机器学习策略。最终获得自动化驱动的洞察力,这些洞察力可以实现运维平台持续的修复和改进。
图源:Gartner
伴随着各行业数字化转型的趋势以及近年来新冠疫情带来的远程工作、协同合作需求,云计算进一步蓬勃发展。Gartner 研究副总裁 Sid Nag 认为云已经成为主流策略,「下一代的产品方案,几乎都是搭建于云平台上的。」越来越多的应用服务转向了云端,5G 也为云计算的发展注入了新的活力。但是,随着越来越多的用户上云,系统管理正面临着前所未有的挑战。
AIOps 与云服务的融合
在 1 月 13 日的微软亚洲研究院「智能运维」媒体沟通会,微软亚洲研究院副院长、微软杰出首席科学家张冬梅认为,AIOps 应通过创新的 AI 或 ML 技术,有效且高效地设计、构建并运营大规模的复杂云服务。
张冬梅。图源:msra
其中,AIOps 又可分为不同的服务对象以及不同的服务目标:
- AI for System(服务 / 系统):设计和构建更可靠、更高性能和更高效率的高质量服务;
- AI for DevOps(开发 / 运维):使用智能工具为工程人员赋能,在 DevOps 中实现高生产力;
- AI for Customer(客户):通过智能化和更好的用户体验,改善客户满意度。
下图为 AIOps 分别针对服务 / 系统、开发 / 运维和客户的应用场景:
从应用场景可以看出,AIOps 的研究主要聚焦于检测、诊断、预测和优化四个领域,每个领域涵盖的运维任务不同,又各自面临不同的挑战。我们以检测为例,包含了时间序列的异常检测、基于日志的异常检测以及多维度变化检测等任务,但检测过程中面临着差异化需求、噪音数据、高纬度以及标注数据缺乏等挑战。
一直以来,微软亚洲研究院致力于探索 AIOps 领域的研究边界。10 年前,率先开发云智能以及 AIOps 相关领域的研究,在该领域提出了全新的方法与设计,如主动系统设计(Proactive System Design)、数据驱动型安全部署(Data-driven Safe Deployment),并在 ICSE/FSE(软件工程领域)、OSDI/NSDI(计算机网络系统领域)以及 AAAI/IJCAI(人工智能领域)等全球高影响力学术会议上发表论文 50 多篇。
其中,与天津大学智能与计算学部软件工程团队、纽斯卡尔大学等合作完成的论文《 How Long Will it Take to Mitigate this Incident for Online Service Systems? 》更是获得了 ISSRE 2021 唯一最佳论文奖。
实践中的 AIOps 技术
利用大规模数据挖掘、机器学习和人工智能技术,微软亚洲研究院开发了一系列 AIOps 创新技术,并已经在云系统的故障预测、异常检测、智能诊断、容量规划、事故管理等诸多实际应用场景中落地,极大地提升了工业生产力、服务质量和用户体验和。研究成果已经应用到了微软 Skype、OneDrive、Office 365、Azure 等诸多在线服务中。
微软亚洲研究院首席研究员林庆维以磁盘故障预测、安全部署诊断和智能虚拟机预配置(PPS)为例展示了 AIOps 在软硬件故障预测、智能诊断和智能化建议 / 提示等三个应用场景中的落地及实现效果。
首先,硬盘故障预测。在故障发生之前,提前预测以避免可能的损失是智能服务的杀手锏。我们知道,硬件故障是造成虚拟机(VM)宕机和重启的最主要原因之一,而磁盘故障又是造成硬件故障的主要原因。在磁盘完全失效前,虚拟机就会受到影响,并且磁盘数据存储分布极端失衡,磁盘健康状态也会受到邻近磁盘的影响,
针对这些特征,微软亚研在论文《NTAM: Neighborhood-Temporal Attention Model for Disk Failure Prediction in Cloud Platforms》中提出了邻域 - 时间注意力模型(Neighborhood-Temporal Attention Model, NTAM),这是一种基于深度学习的全新磁盘故障预测方法。此外,本文还提出了时间渐进采样法(Temporal Progressive Sampling, TPS),一种用于处理极端数据失衡的数据增强方法。
论文地址:https://dl.acm.org/doi/10.1145/3442381.3449867
下图为 NTAM 模型概览。微软亚研在公共数据集以及从微软 Azure 中收集数百万个磁盘创建的两个工业数据集上对该模型进行了评估。结果表明,NTAM 显著优于其他 SOTA 模型。更值得关注的是,NTAM 和 TPS 方法已经应用到了微软 Azure 和微软 365 等云平台中,并在工业实践中获得收益。
其次,安全部署诊断。不规范、不安全部署会可能会引发灾难事故,因此针对部署的异常检测(Anomaly Detection)非常重要。微软亚研采用的方法如下图所示:
其中,在检测异常过程中,微软亚研在论文《Cross-dataset Time Series Anomaly Detection for Cloud Systems》中提出了主动迁移学习异常检测(Active Transfer Anomaly Detection, ATAD),它集成了迁移学习和主动学习技术。迁移学习用于将知识从源数据集迁移至目标数据集,主动学习用于确定未标注数据集中一小部分样本的信息标签。
论文地址:https://www.usenix.org/conference/atc19/presentation/zhang-xu
ATAD 概览如下。微软亚研通过实验证明了 ATAD 在跨数据集时间序列异常检测中的有效性,只需要少于 0.1% 的人工标注即可实现良好的准确率。
最后,智能虚拟机预配置。作为最常见的核心操作,虚拟机配置对用户体验产生直接影响。配置性能不良会造成长时间等候导致客户不满意,而且难以处理大客户的批量请求,造成巨大经济损失。微软 Azure 中的预配置服务(Pre-Provisioning Service, PPS)通过创建预配置的虚拟机提升了 VM 部署的性能,带来了可靠性和延迟收益。
不过,依然面临一些挑战,比如可预测的 VM 需求量少,存在大量的 VM 类型和差异化 VM 需求模式。此外,预测不确定不可避免,难以纳入优化体系中。决策变量和约束条件是离散,且离散域的优化是 NP - 难问题。对此,微软亚研提出了全新的方法框架,将不确定性感知框架用于预测与优化。结果表明,微软亚研提出的方法实现了相较于其他竞品更优的表现。
未来,微软亚洲研究院将致力于「更自动化、更主动化和更通用化」的智能运维,更高效地赋能于运维人员、开发者和客户。
参考链接:https://www.bmc.com/blogs/what-is-aiops/封面图源:bagotaj