DevOps 和人工智能 – 天作之合

如今,人工智能和机器学习无处不在,所以它们开始在 DevOps 领域崭露头角也毫不令人意外。人工智能和机器学习正在通过自动化任务改变 DevOps,并使各企业的软件开发生命周期更高效、更深刻和更安全。我们在 DevOps 趋势中简要讨论过这一问题,现在是时候让我们加深一下对 DevOps 中的人工智能和机器学习的认识了。首先,我们来了解一下最能突显这一现代技术的趋势和数据。

人工智能和机器学习趋势

毫无疑问,人工智能和机器学习的应用越来越普遍,并且正在成为十分有价值的技能。我们近期有关 DevOps 趋势的文章中提到,到 2023 年,约有 40% 的 DevOps 团队将应用人工智能增强对 IT 运营的监控。此外,根据德勤的预测,全球人工智能定制应用开发服务市场将在 2023 年增长超过 610 亿美元。鉴于未来几年内市场预计会有如此庞大的增长,学习如何与人工智能和机器学习技术合作将会是一项能够带来丰厚利润的技能。

毫无疑问,机器学习很快就会被应用于技术产业以外的领域,例如电子商务、娱乐和医疗保健。由于许多领域都将应用机器学习,机器学习正成为一项重要技能,助力开发人员或 IT 专业人士的职业发展,并为这些持续增长的趋势提供支持。GitLab 2021 年 DevSecOps 调查数据显示,约 30% 受访的开发者认为人工智能或机器学习技术是其未来职业生涯中最重要的技能。此外,弗雷斯特公司预测,在 2022 年,至少有三分之一的测试专业人员将采用机器学习实现更为智能的测试自动化。因此,对掌握人工智能和机器学习技术的需求正在增长,这也进一步证实为何有更多的开发人员认为掌握这些工具十分关键。

为什么 DevOps 需要人工智能

机器学习以及自然语言处理,可基于广泛参考的指导原则,生成高质量的技术项目要求。这有助于确保运行的系统和配置始终符合相应的企业安全政策。实际上,机器学习可以检测出项目中不完善的要求,无法衡量的量化项,以及其他项目要求的不足。这样,项目管理团队便能更好地编制项目所需的要求,同时最大限度减少规划中的不准确性和缺陷,从而开发高性能的产品。

支持现代应用程序的各种工具和技术呈指数级增长,这就导致有更多的组件需要管理。有更多需要管理的资源意味着 DevOps 团队的工作可能会极其乏味和繁琐,尤其是这些工作都需要人工完成时。随着对更高水平的自动化和新的管理技术的需求不断增加, DevOps 也愈发需要人工智能和机器学习。人工智能可帮助 DevOps 团队减轻技术负债,更好地制定项目要求。而基于人工智能的测试将有助于解决测试覆盖率方面的技术负债问题。因此,DevOps 团队便能在无需配置不必要资源的前提下对系统和服务进行测试。

人工智能和机器学习在 DevOps 中还有另一个应用场景,即协助管理来自应用程序或基础设施的警报。例如,根据从过去的行为中提取的信息、警报严重性以及警报来源,人工智能可协助判断警报响应的优先次序。这样,DevOps 团队便能优化警报系统,使系统自动区分噪音或误报与急需采取应对措施的关键问题。此外,经过训练的机器学习算法有助于更快解决关键问题,DevOps 团队将花费更少的时间筛选监控服务中记录的日志信息,判断问题的根本原因。

人工智能的争议

在这里插入图片描述
人工智能和机器学习的应用也伴随着一些安全问题。机器学习算法的好坏取决于训练使用的数据。因此,基于开源项目训练的工具可能会使开发人员无意中将 bug 和安全漏洞引入代码。这可能导致漏洞进入生产环节,对企业生产的软件和服务造成负面影响。

此外人工智能和机器学习还面临着一些安全漏洞威胁。人工智能工具可能会十分容易遭受勒索软件的攻击。黑客利用漏洞将系统驱动器加密,并且只有在支付“赎金”后才能拿到密钥。这是一个在不断发恶化的危险漏洞。实际上,勒索软件正在迅速成为更多企业面临的主要漏洞。然而,随着人工智能和机器学习不断发展,它们将能够在更多漏洞进入生产环节前进行检测并减少影响。

有人担心人工智能或机器学习会在工作中取代他们的位置。NoOps,即无需要人为干预即可管理基础设施,可能会在未来导致运营团队被淘汰。机器有可能通过原来的配置模式学习如何自主进行配置和管理,从而导致人和机器之间的竞争。弗雷斯特公司副总裁兼首席分析师指出,有人认为人工智能会在五年内降低对开发人员的需求,因为机器自己就能编写一些基本的基础设施代码。

不过,采用人工智能和机器学习可以带来新的机遇。了解如何利用这些工具训练算法和分析大量数据可获得公司所需的更为准确的结果或预测数据。构建采用机器学习或人工智能的应用程序可以带来更多高性能的应用程序,从而让企业在竞争中保持领先地位。此外,机器和服务会不时出现故障,因此需要有精通机器学习的专业人员进行故障排除,解决使用人工智能工具可能出现的功能性问题。总而言之,虽然人工智能和机器学习有可能取代人们的部分工作,但它们也提供了构建、管理和修复公司运营所需的人工智能工具和技术的机会。

DevOps 中的人工智能和机器学习

在 DevOps 领域采用的人工智能和机器学习技术呈现出不同的形式。以下是两种技术在该领域的部分应用方式。

AI-Ops 和 ML-Ops

AI-Ops 和 ML-Ops 分别指“人工智能操作”和“机器学习操作”,涉及使用人工智能或机器学习来执行操作任务。团队可以训练算法,在软件开发生命周期不同阶段自动运行任务。AI-Ops 通过分析和机器学习来研究 DevOps 管道中使用的操作工具生成的大量数据,从而了解需要执行哪些任务以及如何执行相应的任务。

在构建阶段,可以使用人工智能和机器学习自动构建虚拟环境来测试源代码。而在监控阶段,它们则可以用来确保资源运行不会出现任何问题。这样,开发人员和运营团队便能在他们的应用程序和基础设施中持续保持整体一致性。有了 AI-Ops 和 ML-Ops,计算机系统可以学习现有环境,在开发阶段打包代码,并在生产中以最佳状态运行。由于资源会提前配置,团队因此能够节省手动配置和管理资源的时间,且不必主动监控系统性能。

自动化

DevOps 团队开始利用人工智能和机器学习实现工作流程自动化。人工智能、机器学习和数据科学实践可以毫不费力地迅速解决问题。例如,人工智能可以为软件开发生命周期的开发阶段提速。这可以通过运行 Tabnine 和 GitHub Copilot 等人工智能代码补全工具实现。这类工具在开发阶段提供代码建议来协助开发人员工作。此外,人工智能还能自动创建质量保证环节所需的测试。测试团队因此可以花费更少的时间进行测试,并在测试环境内的自动化方面投入更多时间,提前验证代码并将代码送往生产环节。除了测试代码,人工智能和机器学习还可以执行更多自动化任务。它们根据添加到机器学习算法中的数据集使代码审查工作自动化。这有助于实现代码优化过程的自动化,并提高应用程序性能。

质量

人工智能和机器学习不仅能够将软件开发生命周期中的更多流程自动化,还能提高企业软件的质量。通过检查原来的代码版本和保存的应用程序日志的统计数据,

人工智能工具可以协助预测部署失败的情况。知道哪些方法行得通后,团队便能改进软件版本,并在送往生产环节前相应做出更改。根据 Enterprise Project 一篇文章的内容,机器学习能够发现代码中的问题,如资源泄漏、潜在的并发竞态条件和浪费的 CPU 周期,这些都可能影响生产中的软件性能。 获得这些信息后,DevOps 团队将更深入地了解面临的性能瓶颈,优化代码或基础设施来弥补不足之处。在提高代码质量方面,人们可能会对机器学习和人工智能的可靠性抱有疑虑,但最近的研究证明了这类工具在软件管理方面的可靠性。Facebook 使用的 bug 检测之类的机器学习工具已被证实在检测缺陷和针对源代码提供补救建议方面具有大约 80% 的正确率。人工智能和机器学习工具正逐步完善,在不久的将来,它们在提高软件质量方面也将变得更加可靠。

安全

尽管有人担忧人工智能和机器学习的安全问题,但事实证明,这类工具能够有效保障服务和基础设施安全。它们可以检测系统和服务中的异常。根据 GitLab DevSecOps 报告,人工智能数据整合和机器学习算法使异常检测效率更高,甚至在设备启动的时间内便能完成。DevOps 团队在设备启动完成后会立即收到与系统漏洞有关的消息。此外,机器学习工具可以通过训练实时检测异常,并立即提醒 DevOps 团队。因此,这些工具可以防止更多软件漏洞被利用,保证企业和终端用户的安全。

人工智能和机器学习在管理 IT 环境整体合规性方面也有帮助。例如,DevOps 团队可以训练人工智能或机器学习算法,通过制定基线来监控企业整体的安全合规性。这样,他们便能采取预防措施,通知用户漏洞情况或关闭不符合安全规则的设备,将威胁扼杀在摇篮中。见证了安全方面的进步,一些公司开始为自己的服务应用或收购新的人工智能工具。例如,杰蛙近期就收购了 Vdoo。Vdoo 是一个用于检测和修复漏洞的人工智能工具,它通过调查设备的行为实现相应功能,其中人工智能会将设备的行为与基线做比较,以确定设备未按设计目的运行的时间。之后,DevOps 团队将决定是否关闭该恶意设备,并将设备与其他关键资源隔离,或额外对人工智能工具提示的设备行为进行研究。多亏了人工智能和机器学习具有的异常检测能力,DevOps 团队因此更容易保障安全并维持资源整体合规性。

低代码/无代码

值得一提的是,科技行业越来越多地在采用低代码或无代码工具。人工智能学习和管理技术资源的能力将减少团队的人工管理成本,他们只需编写很少的代码甚至不需要代码即可让系统和服务运行。可以肯定的是,这样的能力将使未来的开发人员在确保项目整体质量的同时,通过最少的手动作业和简单的界面开发软件。而且,由于低代码/无代码工具减少了编程中的复杂性,利用更少的代码在应用程序中创建所需的功能将使开发团队效率更高,更容易排除故障。因此,越来越多的开发人员和 DevOps 工程师正在采用低代码或无代码工具,他们希望把更多的精力用于保障软件质量,建立和部署高性能的应用程序。

人工智能工具

行业中已经存在多种人工智能和机器学习工具。 以下列举了该领域中的几个工具。

Arize AI 是一个 DevOps 机器学习工具,可以更快识别根本原因并解决模型性能问题。Arize AI 支持实时监控且监控范围广,可以自动发现潜在的性能和数据问题,并向 DevOps 团队发送实时警报以尽快采取补救措施。基于该工具为训练其模型而收集的数值型数据的模式,DevOps 团队将收到与应用程序或基础设施性能潜在问题相关的通知,因此该工具有助于团队在软件开发生命周期持续实施监控。

Dynatrace 是一个 AIOps 工具,提供DevOps 团队可在 CI/CD 管道中利用的能力,包括可观察性、自动化、人工智能和云原生应用安全。基于其确定性人工智能训练所采用的操作数据, Dynatrace 可在异构云环境中提供可实施的洞察。这有助于 DevOps 团队

识别可能对企业产生负面影响的云原生异常,从而安全地将应用程序部署到一个或多个云环境中。此外,其自动化运行时应用漏洞检测功能结合了 Snyk 的漏洞数据库与 Dynatrace 分析能力,可覆盖整个软件开发生命周期,旨在解决从代码阶段到监控阶段的安全漏洞。

另一个值得一提的机器学习工具是 Diffblue。Diffblue 是用于实现软件开发生命周期测试阶段自动化的人工智能平台典范。它与 Java 代码库集成,并生成反映当前代码行为的单元测试,几乎毫不费力便能执行自动回归测试,优化持续集成工作流程,提前发现回归问题。

我们的名单上还有最后一个工具 —— Amazon CodeGuru。该人工智能工具用于检测安全漏洞和自动进行代码审查。借助机器学习和自动推理、最佳安全实践以及从代码审查中学习的信息,Amazon CodeGuru 可帮助实现代码审查自动化,并就如何针对检测到的问题采取补救措施提供建议。在某种程度上,该工具可以被视为下一代静态代码分析工具,并为其添加机器学习能力。

结论

人工智能和机器学习正深刻影响着软件和基础设施的构建、部署、管理及测试方式。从自动测试到异常检测,人工智能和机器学习将显著改善整个开发周期。DevOps 团队应该把所有这些工具和能力视作新的驱动力,将部分人工作业留给自动化人工智能工具执行,以提高产品质量和优化系统与服务管理。根据需要自动化的任务和条件训练算法,DevOps 团队也就不会被公司运营方面需要关注的要求压得喘不过气。尽管有人对这些工具保持警惕,但未来几年内,人工智能和机器学习很可能会在 DevOps 团队的系统和服务中发挥重要作用。

点击了解 CI/CD 加速解决方案,并获取试用 License!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/244488.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Hive】——DDL(DATABASE)

1 概述 2 创建数据库 create database if not exists test_database comment "this is my first db" with dbproperties (createdByAllen);3 描述数据库信息 describe 可以简写为desc extended 可以展示更多信息 describe database test_database; describe databa…

有意思!40小时工作制来了,996再见

​在中国,加班文化已经深入人心。工资越高加班越多,“996”已成为一些行业标签,月薪30k以上的职场人中超过86%经常加班。所以今天我就来说一下这40小时工作制到底是从何而来,感兴趣的往下看看吧! 40小时工…

【Hive_02】查询语法

1、基础语法2、基本查询(Select…From)2.1 全表和特定列查询2.2 列别名2.3 Limit语句2.4 Where语句2.5 关系运算函数2.6 逻辑运算函数2.7 聚合函数 3、分组3.1 Group By语句3.2 Having语句3.3 Join语句(1)等值与不等值Join&#x…

【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 NLP 部分

【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 NLP 部分 概述NLP 简介文本处理词嵌入上下文理解 文本数据加载to_device 函数构造数据加载样本数量 len获取样本 getitem 分词构造函数调用函数轮次嵌入 RobertaRoberta 创新点NSP (Next Sentence Prediction…

uniapp原生插件之安卓动态权限申请原生插件

插件介绍 安卓动态权限申请原生插件,集成了常用的权限申请,可以自定义权限申请 该插件为原生开发,如果您想使用UTS版本可以点击这里 插件地址 安卓动态权限申请原生插件,支持常用的权限申请,支持自定义权限申请 - DC…

CleanMyMac X2024中文版好不好用?有哪些特点

CleanMyMac X您的 Mac。极速如新。点按一下,即可优化调整整个 Mac畅享智能扫描 — 这款超级简单的工具用于优化您的 Mac。只需点按一下,即可运行所有任务,让您的 Mac 保持干净、快速并得到最佳防护。CleanMyMac 是一款功能强大的 Mac 清理程序…

【网络安全】Suspicious DNS Query(可疑的DNS查询)

文章目录 名词解释可能原因分析Action sinkhole在防火墙里面查询Suspicious DNS Query预防Suspicious DNS查询带来的风险推荐阅读 名词解释 “Suspicious DNS Query(可疑的DNS查询)”通常指的是在网络中检测到的可能具有风险或异常行为的DNS&#xff08…

【数据结构】栈和队列超详解!(Stack Queue)

文章目录 前言一、栈1、栈的基本概念2、栈的实现(数组实现)3、栈的基本操作3.1 栈的结构设计3.2 栈常见的基本函数接口 4、栈的实现4.1 初始化栈4.2 栈的销毁4.3 入栈4.4 出栈4.5 判空4.6 长度4.7 获取栈顶元素 完整代码Stack.hStack.cTest.c 二、队列1、…

点对点协议PPP

目录 一. PPP协议的特点1.1 PPP 协议应满足的需求1.2 PPP 协议的组成 二. PPP协议的帧格式2.1 PPP协议的透明传输2.1.1 同步传输2.1.2 异步传输 三. PPP协议的工作状态 \quad 一. PPP协议的特点 \quad \quad 用户到ISP的链路使用PPP协议 \quad \quad 1.1 PPP 协议应满足的需求 …

面试题:HashMap 为什么不能一边遍历一遍删除

文章目录 前言foreach 循环?HashMap 遍历集合并对集合元素进行 remove、put、add1、现象为什么会抛出这个异常呢?2、细究底层原理 前言 上面出现这样的原因是在使用 foreach 对 HashMap 进行遍历时,同时进行 put 赋值操作会有问题&#xff0c…

6-6 堆排序 分数 10

typedef int Datatype; typedef struct {Datatype* elem; int Length; }SqList; typedef SqList HeapType; void swap(int* a, int* b) {int tmp *a;*a *b;*b tmp; } //建大堆 //m: 结点个数 s: 待下调父结点下标 void HeapAdjust(HeapType H, int s, int m) {int child …

骨传导耳机和开放式耳机哪个对听力的损伤小一些?

先说结论,骨传导耳机对听力的损伤更小,并且更值得入手。 其实骨传导耳机也算开放式耳机的一种,开放式耳机中又包括了骨传导耳机和气传导耳机,与其说骨传导耳机和入耳式耳机,不如说是骨传导耳机和气传导耳机&#xff0…

代码随想Day36 | 435. 无重叠区间、763.划分字母区间、56. 合并区间

435. 无重叠区间 这道题和前一天的射箭题目思想类似,用总区间个数-不重叠的区间个数等于需要去除的区间个数。首先对左边界排序,如果当前的左边界大于等于上一区间的右边界,则说明是一个不重叠的区间,否则,更新上一重…

基于Web的智慧城市实验室主页系统设计与实现论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对实验室信息管理混乱,出错率高,信息安全性差&…

Layui实现自定义的table列悬停事件并气泡提示信息

1、概要 使用layui组件实现table的指定列悬停时提示信息&#xff0c;因为layui组件中没有鼠标悬停事件支持&#xff0c;所以需要结合js原生事件来实现这个功能&#xff0c;并结合layui的tips和列的templte属性气泡提示实现效果。 2、效果图 3、代码案例 <!DOCTYPE html&g…

Hdfs java API

1.在主机上启动hadoop sbin/start-all.sh 这里有一个小窍门&#xff0c;可以在本机上打开8088端口查看三台机器的连接状态&#xff0c;以及可以打开50070端口&#xff0c;查看hdfs文件状况。以我的主虚拟机为例&#xff0c;ip地址为192.168.198.200&#xff0c;所以可以采用下…

如何处理好面试中的“压力测试”?

作为一名求职者&#xff0c;在面试时有时遇到的是压力测试&#xff0c;有时则遇到的是一些无良企业单位&#xff0c;究竟如何把握忍耐的限度&#xff0c;才合格当一个能经受压力的员工&#xff0c;才能避免对无良单位的一味隐忍! 压力面试是指有意制造紧张&#xff0c;以了解求…

Java_内部类枚举

内部类 内部类: 是类中的五大成分之一&#xff08;成员变量、方法、构造器、内部类、代码块)&#xff0c;如果一个类定义在另一个类的内部&#xff0c;这个类就是内部类。场景:当一个类的内部&#xff0c;包含了一个完整的事物&#xff0c;且这个事物没有必要单独设计时&#x…

L1-042:日期格式化

题目描述 世界上不同国家有不同的写日期的习惯。比如美国人习惯写成“月-日-年”&#xff0c;而中国人习惯写成“年-月-日”。下面请你写个程序&#xff0c;自动把读入的美国格式的日期改写成中国习惯的日期。 输入格式&#xff1a; 输入在一行中按照“mm-dd-yyyy”的格式给出月…

SSL通配符详解

通配符证书是一种特殊的SSL/TLS证书&#xff0c;它允许一个域名及其所有子域名使用相同的证书。这意味着&#xff0c;如果您有一个通配符证书&#xff0c;您可以为该证书中的任何子域名提供SSL/TLS加密&#xff0c;而无需为每个子域名单独购买和配置证书。 通配符证书使用通配…