65.9K
CodeProject 正在变化。 阅读更多。
Home

机器学习优化 DevOps 的 7 种方法

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2020年2月23日

CPOL

5分钟阅读

viewsIcon

10423

DevOps 是一种旨在在软件工程团队和 IT 运营团队之间创造协同效应的方法论。

通过精简和优化流程与工作流,以及改进工具,这种方法论对于软件交付过程的效率和为企业带来价值至关重要。这一系列实践在很大程度上依赖于海量数据来进行流程编排和监控,以及及时识别故障和错误。虽然所有这些数据对 DevOps 至关重要,但它也是其缺点之一。

具体来说,服务器日志本身在一周内可能会膨胀到几百兆字节,而监控工具可以在短时间内收集到高达几千兆字节的数据。

难怪团队很难解释这些庞大的数据集。

这时,机器学习和人工智能就派上用场了。

1. 提高性能反馈的效率

虽然开发性能在很大程度上依赖于使用最佳人工智能工具,但仍有一个关键组成部分——恰当、及时和透明的反馈。

DevOps 的关键方面之一是在过程的每个阶段利用持续的反馈循环,这也意味着监控当前正在运行的应用程序。换句话说,要做到这一点,需要几乎瞬时、实时的洞察。

得益于 Jira、Jenkins、Git 及类似产品,软件交付过程更加透明。

问题在于,监控所有这些应用程序和过程会产生大量数据——日志、性能指标等。

实施机器学习可以创造奇迹,因为它能够及早识别这些海量数据集中的各种异常和偏差。简而言之,长构建时间、频繁的任务切换、资源利用效率低下或大量的代码将在它们滚雪球变成实际问题并使开发过程复杂化之前被发现。

2. 帮助分析可用数据

同样,如此之多的数据也导致无法全部进行分析。取而代之的是,会设置阈值来触发操作。

不幸的是,尽管这种方法在节省时间方面很实用,但它浪费了大量极其有用的信息。通过关注警报的“异常值”,其主要功能是警报而非告知,这种策略会错过大量可以分析和解释的数据。

机器学习应用程序可以被训练来分析所有数据段,并得出以后可用于预测分析的结论。

3. 利用趋势

正如我们已经提到的,机器学习可以用来预测和预见问题。

具体来说,常规分析侧重于已经发生过的故障和问题。这是一种有些滞后的方法,因为我们在问题发生并可以采取行动之前才了解到问题。

因此,机器学习可以被训练来观察、分析和识别这些阈值以下的模式,从而注意到随时间发生的趋势。这样的输出更具可操作性,因为它允许您在问题发生之前预防它们,并节省大量时间和资源。

4. 关联跨数据集和平台的的数据

趋势只有在同时考虑多个变量时才能被正确解释,因为它们是同时发生的几个不同度量相互作用的结果。

例如,响应时间增加只会发生在同时进行的事务较少的情况下。

由于传统分析无法观察和建立这些趋势,机器学习可以派上用场,因为它能够发现不同变量之间的各种关联和相互作用。

5. 高效管理警报

DevOps 专注于效率和速度,其警报系统被编程为快速识别缺陷和错误。

这意味着系统会生成大量的警报,所有这些警报的优先级和重要性似乎都相同。可想而知,团队不知道如何正确应对。

机器学习可以通过分析和评估各种因素(如先前的行为、警报的来源等)来帮助团队优先排序任务。因此,团队将不再急于处理一个可以等待的警报,而是会被引导到正确的方向,处理最紧急的事项。

6. 优化指标和目标

如果您有特定的指标或目标想要优化,最好利用自适应机器学习系统。

简而言之,自适应机器学习系统是那些不依赖已知结果的系统。它们会分析、处理并优化某些输入数据的特定特征。

例如,亚马逊使用所谓的动态定价模型。换句话说,这家在线零售巨头利用机器学习技术来分析各种因素,例如特定商品的供求关系、特定访问者的意图或其他零售商的定价。值得一提的是,亚马逊会每 10 分钟更改一次价格以对其进行优化。即使您已将商品添加到购物车,商品价格也可能被提高或降低——如果自适应算法评估您很可能购买,您可能会获得折扣作为激励。

DevOps 流程可以以类似的方式从自适应机器学习中受益。

关键在于让系统在运行时能够改变其参数并进行调整,以便在给定情况下获得最佳结果。

7. 正确测试软件

除了在产品开发阶段实施外,机器学习还将应用于软件测试领域。

在过程的测试、质量保证和质量控制阶段会执行大量测试,这也意味着会产生海量数据。机器学习和人工智能算法可以应用于这些测试结果,以发现和识别一些糟糕的编码实践。由于这些算法功能强大且复杂,它们可以识别不同的错误模式,并帮助开发团队改进其实践并消除未来的错误。

正如您所见,虽然没有什么可以替代辛勤工作和为项目付出大量努力,但机器学习技术可以增强您的实践、DevOps 方法和工具,并确保您的流程得到优化,最终结果是出色的。

© . All rights reserved.