应用程序和基础设施以我们人类难以匹敌的速度不断发展。难怪aiOps正在上升。
使用像AIOps这样的新技术可能会让人感到不知所措。充分理解AIOps的功能以决定它是否对您的业务有益是至关重要的。
别担心——我们也经历过你的处境,我们可以帮助你!
通过本文,您将对AIOps是什么、它是如何工作的以及为什么应该考虑实现它有一个很好的了解。我们的指南还涵盖了监督采购或实施的最佳实践,因此您可以在整个过程中感受到授权。
应用程序是复杂的。但是运行这些应用程序所需的基础设施也很复杂——甚至比10年前还要复杂得多。
部分原因在于使用云计算为用户和开发人员提供更多的资源和更好的灵活性。云计算使按需访问所需的内容成为可能,通常是自助服务。
这样做的好处是,如果您的开发人员需要更多资源,他们可以快速获得资源。糟糕的是,您的开发人员可能会使用公共云和私有云的组合,将您的应用程序散布到整个互联网上。您甚至可能不知道所有应用程序托管在哪里。
这种现象被称为影子IT,即使您设法将问题暴露出来并重新控制您的应用程序,也不意味着您已经解决了问题。
您仍然需要处理潜在的中断和安全漏洞。
根据Statista的数据,2022年发生了1802起安全漏洞。这还只是在美国——整个哥斯达黎加政府被一个勒索软件团伙搞垮了好几个星期!
当整个政府都被打乱时,你就会知道,事情已经到了技术变得过于复杂,人类无法有效管理的地步。
这是开发AIOps的复杂性的结果。
AIOps,即IT领域的人工智能(AI),通过使用人工智能和机器学习(ML)来观察基础设施内发生的事情,从而增强了人类的能力。它通过分析数据和观察模式来发现哪里出了问题。
例如,AIOps系统可以识别访问模式中的异常值,并确定它们与正常活动不匹配。根据系统的配置方式,它可能会关闭访问或联系人工进行第二次检查,以确定是否发生了攻击或其他安全问题。
您还可以为不太紧急的情况构建AIOps系统。您和您的团队可以决定AIOps系统自己处理什么,以及在更敏感或不太明确的情况下需要人工处理什么。
AIOps系统可能会注意到,来自特定硬件的响应时间表明它即将发生故障。操作人员可以在故障发生前更换部件,既方便又保存数据。
或者系统可能会注意到与过去事件一致的活动模式,从而导致资源使用增加。如果人类允许,系统可以在需要可用资源之前增加可用资源,从而消除延迟和等待时间。
这跟你和你的团队有关系吗?
在理想情况下,AIOps可以对几种不同的用例有所帮助,包括:
AIOps可以监视来自应用程序和基础设施的数据洪流中的异常情况。
这些异常可能表明即将出现的错误,或者是对企图或成功的安全漏洞的警告。在任何一种情况下,操作员都需要知道它们的存在。
如果您的团队对异常有足够的了解,他们可以对AIOps系统进行编程,以便针对异常采取行动,例如在原始主机发生故障之前将工作负载转移到新主机,这样用户就不会经历任何停机时间。
AIOps可以分析生成的日志,以确定出现问题的最可能原因,从而减少平均解决时间(MTTR)。
一旦问题暴露出来并且确定了根本原因,您就可以设计AIOps系统来采取措施来修复问题。
作为集成系统的一部分,您可以依靠AIOps来监视各种组件的性能,并找出可以改进的地方。
AIOps可以查看事件之间的关系,并识别来自不同来源的事件,或者帮助确定解决问题所需的信息。
AIOps跟踪系统内当前发生的事情,以预测未来可能发生的事情。
例如,特定的事件模式可能表明您需要在不久的将来增加容量(也称为“容量预测”),或者您需要一种全新类型的资源。
队列分析评估一个群体的需求,基于时间或行为,允许你为你的基础提供更有效的产品和服务。
也许AIOps最常见的用途是智能警报,它过滤管理员和操作员面临的所有事件,这样关键信息就不会丢失。
这些用例通常涉及精炼大量数据并将所有内容塑造成有用的内容。它们不仅仅是让你的IT操作运行得更顺畅——它们还能让你的业务运行得更好。
当然,传统的IT操作也是为了使您的业务运行得更好,所以让我们来看看两者之间的区别。
在2020年,几乎一半的DevOps受访者声称在他们的日常工作中使用AIOps。
然而,也有可能这些人中有一部分人认为他们在使用AIOps,而实际上并没有。让我们看看传统Ops和AIOps之间的区别。
传统上,IT团队有很多事情要做。
他们不仅仅负责为用户提供资源和支持。他们还负责确保系统保持正常运行,如果出现问题,则尽可能快地修复,尽量减少对用户的干扰。
根据基础设施的不同,您可能会跳过一些步骤。
例如,如果您有一个基础设施即服务(IaaS),用户可以简单地配置他们自己的资源。此外,有很多公司将尽可能多地自动化你的工作流程。但最终,您仍然需要手动查看性能监视器并清除来自系统的事件。
这是主要的问题。您可能会收到来自存储、网络、计算资源、应用程序甚至外部api的警报,但这些信息太多了,几乎比没有信息更糟糕。
自动化是有帮助的,但是自动化这个工作流的一部分并不意味着你有AIOps在起作用,即使自动化的一部分使用AI来做事情。
AIOps的设计不是为了取代操作员,而是为了帮助他们更有效地完成工作。一个典型的工作流程是:
通常,您使用AIOps是因为您有太多的数据,人类无法跟上。第一步是让AIOps系统筛选千兆字节甚至兆兆字节的数据,并确定哪些事件实际上是重要的。
在此步骤中,AIOps系统分析前一步中无关紧要的数据,以查看是否存在需要处理的模式或异常。此步骤将不同系统之间的事件关联起来。
例如,特定计算资源上的活动爆发可能会在短时间后与网络拥塞相关联。
一旦AIOps系统检测到一个模式,它就会尝试发现它的含义。是否即将出现系统故障?是不是有些东西已经失败了?如果是,为什么?
AIOps系统通常还不能独立行动。下一步是AIOps系统将其发现传递给控制整个基础设施的人工操作人员。
一旦有人审查了情况,系统就可以修复已检测到的任何问题。
如果您是操作员,您的目标是减少当前处理的数据量,只处理相关信息。
对于许多人来说,当你提到人工智能时,他们会认为这是一种超越他们的东西,可能类似于魔法。但是当你仔细研究它的时候,AI——尤其是AIOps——并没有那么复杂。
它所做的只是分析现有数据,并提出建议或实施决策。
尽管如此,了解这些系统的工作原理还是很重要的。一般来说,有两种不同类型的AIOps系统。第一种是基于确定性人工智能,以前被称为专家系统。第二组是基于ML的。
让我们简单地看一下这些术语的含义,这样你就能很好地了解发生了什么。
确定性人工智能系统基于所谓的专家系统。从本质上讲,它们将专家的知识编码到计算机系统中。一个简单的例子可能是这样一条规则:“如果驱动器的容量达到75%,则通知管理员它已经满了。”
但是,一个运行这个系统10年的专家可能知道,在假日季节,硬盘将更快地填满,或者除非网络活动出现飞跃,否则在硬盘达到90%的容量之前,存储情况是良好的。
这些系统也被称为规则引擎或推理引擎,它们可以通过外部资源或内部专家进行填充。通常情况下,通过从我们的决策中学习,它们会变得更加准确。
确定性人工智能系统已经开箱即用,所以它们不需要大量的训练和历史数据。团队可以很容易地调整它们以适应不断变化的情况。
但实际上,他们的能力取决于他们所拥有的知识。如果出现不熟悉的情况,您的AIOps系统可能无法捕捉到它,或者即使捕捉到了,它也可能不知道或不知道如何处理新场景。
理解机器学习系统的三个组成部分非常重要。推理引擎直接从人那里获取知识,而基于关联的人工智能(ML)使用算法并从数据中学习。
算法是一组说明如何使用数据找到答案的指令。例如,穿鞋的算法可能是:
为了确定机器学习问题的答案,该算法可能更接近以下内容:
模型是对数据上的算法进行训练后发现的内容的表示。你可能已经发现,对一组点最接近的表示是这个公式:
Y = 3x + 4
来源:Mirantis
该模型很有用,因为您可以使用它来预测实际数据中可能没有的其他点。假设数据没有告诉我们一周需要多少捆干草来喂养9只山羊。但模型显示,对于9只山羊,你需要31(3*9 + 4)包。
当然,没有数据,这一切都没有意义。为了确定模型,必须有系统可以用作示例的训练数据。
让我们继续讨论三种类型的机器学习:有监督的、无监督的和强化的。
监督式学习很像上面的例子,你给机器一组数据,你确定一个模型,然后用这个模型来决定采取什么行动,或者在模型没有相关数据的情况下预测新的信息。
监督学习的一些例子包括语音识别、垃圾邮件检测或最终的自动完成,ChatGPT。
无监督学习和监督学习有不同的目标和方法。监督式学习要求你提前训练模型,而非监督式学习的算法则从现有的数据中找出模式。
您可以使用无监督学习来查找数据中的事件集群或异常。其他一些无监督学习的例子包括客户细分、推荐系统或网络使用挖掘。
强化学习不需要训练数据。相反,它通过奖励的方式发挥作用。
例如,一个设计用来在迷宫中穿行的机器人很快就学会了远离墙壁,因为移动到空白空间会给它一个积极的奖励,而移动到有障碍的空间会给它一个消极的回报。
这并不是说强化学习程序可以不从一些初始训练开始。流媒体服务的推荐系统可能会考虑你的观察列表上的项目来决定给你看什么。在你做出决定之后,这些选择会强化推荐。
强化学习发挥作用的另一个地方是社交媒体算法。
您从一个通用的选择开始,但每次观看视频或单击链接时,您都会提供算法信息以改进模型。这就是为什么你点击一个特定主题越多,你就会看到更多关于这个主题的信息。
无论您如何使用AIOps,它都依赖于数据。这些数据可以来自各种来源,包括:
不幸的是,数据并不总是干净友好的。有时它会损坏、不完整或完全丢失。你怎么做取决于问题本身。
如果您只是因为刚刚启动AIOps系统而丢失了数据,那么您真正能做的就是等待并收集历史数据。也就是说,有些SaaS系统可以通过向您提供对其他系统匿名数据的访问来解决这个问题,从而为您提供一个良好的开端。
有时,问题是你有数据,但它并不完整。
例如,您可能有一个表单,其中“age”是一个可选字段,而您的许多用户选择不使用它。如果系统的某些部分出现故障,特定数据损坏或丢失,您也可能遇到这个问题。要解决这个问题,可以使用其他数据的统计分析来确定最可能的值,并将它们插入到您的数据中。
此外,尽管要涵盖您需要了解的关于构建数据的所有内容远远超出了本文的范围,但请注意维度的诅咒—您决定分析的参数越多,系统就会变得越笨拙和不可靠。
现在您知道了AIOps是什么以及为什么需要它,那么让我们来讨论如何设置。
不管有没有供应商,这个过程都有相同的基本步骤。
很有可能,你不会想自己做这件事。这是一项专业技能。
第一个也是最明显的问题是缺乏可用的人才。
毫无疑问,目前对人工智能和机器学习的大肆宣传将在几年内培养出一批数据科学家和工程师。但你现在需要人!
学习如何使用AI/ML并不是火箭科学,但许多已经在IT领域工作的人要么太害怕,要么太忙,无法将其添加到他们的技能集中。此外,除了最基本的系统之外,您还需要一些对这些概念具有深厚背景和理解的人。
一旦克服了这个问题,就必须考虑数据质量和可访问性。对于许多公司来说,他们的数据湖是杂乱无章的,试图弄清楚如何使用它们本身就是一项工作。数据的形状越好,您就可以在AIOps管道中走得越远,但是当您开始时,您可能不会处于一个非常好的位置。
接下来,验证您的工具是否与系统集成。您的历史数据必须是可用的,并且您的当前系统必须能够以AIOps可以访问的形式发出数据。如果您的目标是自动修复,那么您的系统应该能够接收来自AIOps系统的命令。
除非您经常使用ML,否则最后的挑战并不那么明显:可解释性。现实情况是,在许多情况下,甚至大多数情况下,我们根本不知道系统为什么会做出这样的决定。
我们知道它应该采取的步骤,但神经网络和其他阶段太复杂了,我们无法理解为什么系统会这样做。从哲学的角度来看,缺乏可解释的人工智能是很麻烦的,也因为它使改进程序变得更加困难。
考虑到所有这些挑战,选择与AIOps供应商合作是有意义的。
有很多东西你可能还没有准备好自己去做,所以如果你决定去那个方向,最好知道在供应商那里寻找什么。
确保你考虑了以下几点:
因为AIOps系统的命脉是数据,所以首先要考虑的是供应商是否有能力安全地摄取您需要的所有数据。如果没有,他们是否愿意并且能够将这些功能添加到他们的解决方案中?
收集数据是不够的;供应商需要能够智能地处理它。他们是否拥有必要的AI/ML能力,或者他们只是在炒作AIOps ?
最有用的AIOps系统与现有的安全系统和其他软件集成,以便收集情报并执行补救,同时向相关人员发送适当的警报。
AIOps系统摄取大量数据。你确定它是安全的,不会受到外部恶意行为者的攻击吗?里面的人呢?潜在的供应商有什么样的措施来防止问题的发生?
你的供应商准备好规模化了吗?他们是否有适当的措施来防止可靠性问题?
不同的产品专注于不同的功能。例如,有些侧重于跨不同系统聚合事件,而另一些侧重于减少警报量。确保你选择的产品符合你的目标。
所有这些都是大量的信息,并且可能感觉AIOps还没有完全完成。在某些方面,这是真的!
它仍在寻找自己的立足点,直到它被包含在易于消费的产品中,它会感觉有点像一个科学项目。
但AIOps并不是第一个出现这种情况的技术。像OpenStack和Kubernetes这样的成熟技术也是以同样的方式开始的,需要付出巨大的努力来部署一个集群,而这个集群只是你实际需要的一个骨架,而且随时都有可能崩溃。
现在,只需按一下按钮,就可以获得让您创建功能齐全的企业级集群的软件。
考虑到事情发展得如此之快,我们真的没有办法确切地知道AIOps的前景。不过,我们确实有一些相当安全的赌注。
第一个优先级是上面提到的挑战,例如教育或雇用知识渊博的员工来构建和维护AIOps,并在新旧系统之间创建更好的集成。
可解释人工智能的问题也已经存在了一段时间,也许是一个长期的问题,但随着人工智能逐渐渗透到社会的越来越多的方面,影响人们的生活,解决它将变得更加重要。
从那里开始,期待AIOps作为服务工作流集成到DevOps和DevOps中,因为它可以改善堆栈上的体验。
最后,我们将看到AIOps的更多创新用途,比如更复杂的优化、与其他工具的更好集成,以及无需人工干预即可正常工作的能力。
最重要的是,有些事情我们甚至还没有想象到,这可能是现在开始这个过程的最好理由。
G2高级研究分析师田林预测了AIOps的未来。了解生成式AI如何促进AIOps的采用。