云智能:AIOps - 在云计算系统中融入AI

一.摘要

当传奇计算机科学家吉姆·格雷在1999年接受图灵奖时,他列出了十二项长期信息技术研究目标。其中一个目标呼吁创建无故障的服务器系统,用格雷的话说,是“建立一个每天被数百万人使用,然而只需要一个兼职人员管理和维护的系统。

”格雷设想了一个自组织的“天空中的服务器”,它将存储大量的数据,并根据需要刷新或下载数据。今天,随着人工智能(AI)、机器学习(ML)和云计算的出现和迅速发展,以及微软对云智能/ AIOps的开发,我们比以往任何时候都更接近实现这一愿景——并超越它。

在过去十五年中,计算行业最重大的范式转变是向云计算的迁移,这为企业、社会和人类生活创造了前所未有的数字化转型机遇和利益。

其意义深远:云计算平台已经成为世界基础设施的一部分。因此,云计算平台的非功能属性,包括可用性、可靠性、性能、效率、安全性和可持续性,变得无比重要。然而,云计算平台的分布式本质、大规模和高复杂性——从存储到网络、计算等——为构建和运营此类系统带来了巨大挑战。

二.什么是云智能/AIOps

云智能/AIOps(简称AIOps)旨在创新AI/ML技术,以帮助大规模高效地设计、构建和运营复杂的云平台和服务。AIOps有三个支柱,每个支柱都有自己的目标:

  • AI for Systems - 使智能成为内置能力,以实现高质量、高效率、自我控制和自我适应,减少人工干预。

  • AI for Customers - 利用AI/ML为用户创造绝佳的体验,并通过使用云服务达到卓越的用户满意度。

  • AI for DevOps - 在整个软件开发生命周期中融入AI/ML,以实现高生产率。

AIOps研究从何开始?

领先的行业分析机构Gartner于2017年首次提出了术语AIOps(人工智能运营)。根据Gartner的说法,AIOps是将机器学习和数据科学应用于IT运营问题的方法。虽然Gartner的AIOps概念仅仅关注DevOps,但微软的云智能/AIOps研究范围要广泛得多,包括AI for Systems和AI for Customers。

微软云智能/AIOps更广泛的范围源自我们在2009年提出的软件分析研究,其目的是使软件从业人员能够探索和分析数据以获取与软件和服务相关的数据驱动任务的有见地和可操作的信息。我们于2014年开始将软件分析研究的重点放在云计算上,并将这个新主题命名为云智能(图1)。回顾过去,软件分析是关于软件行业自身的数字化转型,例如赋能从业人员采用数据驱动的方法和技术来开发软件、运营软件系统和与客户互动。

三.AIOps问题空间是什么?

有关AIOps三大支柱的许多场景。一些示例场景包括:在AI for Systems中,进行预测容量规划以实现高效和可持续的服务,监控服务运行状态,及时检测运行状况问题;在AI for DevOps中,确保代码质量,防止将缺陷构建部署到生产环境中;在AI for Customers中,提供有效的客户支持。 在所有这些场景中,有四个主要的问题类别,汇总起来构成了AIOps问题空间:检测、诊断、预测和优化(图2)。 具体来说,检测旨在及时识别异常的系统行为(或异常)。 给定症状和相关的工件,诊断的目标是定位服务问题的原因并找到根本原因。 预测试图预测系统行为、客户工作负载模式或DevOps活动等。 最后,优化试图识别实现与系统质量、客户体验和DevOps生产力相关的某些性能目标所需的最佳策略或决策。

每个问题都有自己的挑战。以检测为例。为了确保运行时的服务健康状况,工程师需要持续监控各种指标,及时检测异常非常重要。在开发过程中,为了确保持续集成/持续交付(CI/CD)实践的质量,工程师需要创建机制来捕获有缺陷的构建,并防止它们被部署到其他生产站点。

两种场景都需要及时的检测,并且在两种场景中,进行有效检测都存在一些共同的挑战。例如,时间序列数据和日志数据是最常见的数据形式。但它们通常是多维的,数据中可能存在噪声,并且它们通常有不同的检测要求——所有这些都可能对可靠检测造成重大挑战。

四.微软研究院:我们的AIOps愿景

微软正在对AIOps的每个问题类别进行持续的研究。我们这项研究的目标是使云系统在整个云堆栈中变得更自主、更先行、更可管理和更全面。

4.1 使云系统更加自主

AIOps的目标是使云系统更加自主,尽可能地减少人工操作和基于规则的决策,这对于显著降低系统问题对用户的影响、做出更好的运维决策以及降低维护成本大有裨益。这是通过尽可能地自动化DevOps来实现的,包括构建、部署、监控和诊断。例如,安全部署的目的是及早捕获缺陷构建,防止它被推送到生产环境并对客户产生重大影响。这对工程师来说可能非常劳力密集和时间消耗,因为异常行为具有各种可能随时间变化的模式,并且并非所有异常行为都是由新的构建引起的,这可能会引入假阳性。

在微软研究院,我们使用转移学习和主动学习技术开发了一个安全部署解决方案,以克服这些挑战。我们一直在微软Azure上运行该解决方案,它已被证明非常有效地帮助捕获缺陷构建——在18个月的生产过程中实现了90%以上的精确度和接近100%的召回率。

根因分析是AIOps减少云系统中人工操作的另一种方式。为了缩短缓解时间,云系统中的工程师必须快速识别出现故障的根本原因。然而,由于云系统的复杂结构,故障通常只包含部分信息,可能同时由多个服务和组件触发,这迫使工程师在采取任何有效操作之前花费额外时间诊断根本原因。通过利用先进的对比挖掘算法,我们实现了自动化事件诊断系统,包括HALO和Outage Scope,以减少响应时间并提高事件诊断任务的准确性。这些系统已经集成到Azure和Microsoft 365(M365)中,大大提高了工程师处理云系统事件的能力。

4.2 通过AIOps使云系统更加主动

AIOps通过引入主动设计的概念使云系统更加主动。在主动系统的设计中,会在传统系统中添加基于机器学习的预测组件。预测系统接受输入信号,进行必要的处理,并输出系统的未来状态。例如,集群A下一周的容量状态如何,某个磁盘在几天内是否会失败,或在接下来1小时内需要多少特定类型的虚拟机(VM)。

了解未来状态使系统能够主动避免负面影响。例如,工程师可以将不健康计算节点上的服务实时迁移到健康节点,以减少VM宕机时间;或者为接下来1小时预配特定类型的若干个VM,以减少VM预配的延迟。此外,AI/ML技术可以使系统随时间学习做出哪种决策。

作为主动设计的一个例子,我们构建了一个名为Narya的系统,它可以主动缓解潜在的硬件故障,以减少服务中断并最大限度地减少客户影响。Narya已在Microsoft Azure中投入生产,它对硬件故障进行预测并使用多臂老虎机算法决定采取哪种缓解措施。

4.3 使云系统更易于管理

AIOps通过引入分层自治的概念来实现这一目标。每个层次代表一组需要特定水平人工专业知识和干预的操作。这些层次范围从最高层的自治日常操作到最底层,需要深厚的人工专业知识来应对稀有和复杂的问题。AI驱动的自动化通常无法处理这类问题。通过针对每个层次构建AIOps解决方案,我们可以使云平台更易于跨复杂系统不可避免出现的稀有问题的长尾进行管理。此外,分层设计确保自治系统从一开始就评估确定性和风险,并在自动化失败或平台面临以前未见过的一系列情况时有安全后备,例如2020年由于COVID-19大流行导致的无法预见的需求增加。

作为分层自治的一个例子,我们构建了Safe On-Node Learning(SOL),这是一个用于服务器节点上层的安全学习和执行的框架。作为另一个例子,当顶层自动化未能预防事故时,我们正在探索如何预测操作员应执行的命令来减轻事故,同时考虑这些命令的相关确定性和风险。

4.4 使AIOps在云栈中更全面

AIOps也可以通过跨云栈进行扩展而变得更全面——从最底层的基础架构(如网络和存储)到服务层(如调度程序和数据库)再到应用层。在AIOps中应用更广泛的好处将是显著提高全面诊断、优化和管理的能力。

构建在Azure之上的Microsoft服务称为第一方(1P)服务。1P设置通常用于优化系统资源,非常适合AIOps的更全面的方法。这是因为在1P设置中,单个实体可以查看云栈的各个层面并对其进行控制,这使得工程师能够放大AIOps的影响。Microsoft的1P服务示例包括大型和成熟的服务(如Office 365)、相对较新但规模可观的服务(如Teams)以及新兴服务(如Windows 365云PC)。这些1P服务通常占有大量的资源使用量,如广域网(WAN)流量和计算核心。

举个例子,在1P设置中应用更全面的AIOps方法,OneCOGS项目考虑了三个广泛的优化机会:

  1. 使用跨层面的信号(如使用用户的消息活动而不是固定的工作时间)来建模用户及其工作负载,从而提高准确性以实现适当的系统资源分配。

  2. 联合优化应用和基础设施以实现成本节约等目的。

  3. 驯服数据和配置的复杂性,从而使AIOps普及化。

用于云计算平台和1P服务的AIOps方法、技术和实践也适用于云栈上的第三方(3P)服务。为实现这一点,需要进一步的研究和开发,以使AIOps方法和技术更具普适性和/或易于适配。例如,在运营云服务时,检测多维空间中的异常以及后续的故障定位是常见的监控和诊断问题。

受Azure和M365实际需求的驱动,我们提出了AiDice技术,它可以自动检测多维空间中的异常,以及HALO,这是一种利用从云系统收集的遥测数据定位故障指示组合的分层感知方法。除了在Azure和M365中部署AiDice和HALO,我们还与产品团队合作伙伴合作,将AiDice和HALO打造成第三方服务可以利用的AIOps服务。

五. 结论

AIOps是系统、软件工程和AI/ML社区中的一个快速兴起的技术趋势和跨学科研究方向。通过多年来对云智能的研究,微软研究院已经在检测、诊断、预测和优化方面积累了丰富的技术资产。而通过与Azure和M365的密切合作,我们已经在生产环境中部署了一些技术,这极大地提高了Azure和M365的可靠性、性能和效率,同时也提高了在这些产品上工作的开发人员的生产力。此外,我们还与学术界和行业中的同行合作,推进AIOps研究和实践。例如,在我们的共同努力下,我们在顶级学术会议上组织了3届AIOps研讨会,包括AAAI 2020、ICSE 2021和MLSys2022。

展望未来,我们认为作为一种新的创新维度,云智能/AIOps在使云系统变得更自主、更主动、更易于管理以及在整个云栈中更全面方面,都将发挥越来越重要的作用。最终,云智能/AIOps将帮助我们实现对云的未来愿景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值