- 原文地址:Is Artificial Intelligence Taking over DevOps?
- 原文作者: Sam Bocetta
- 译文出自:掘金翻译计划
关键要点
- 大多数公司使用一些混合模式或云端基础架构进行项目开发,但是如果没有 AI 的帮助,对这些项目进行管理是难以实现的。
- 对于那些运行着多个不同的云系统的团队来说,如果需要对 DevOps 项目进行扩展,AI 接口几乎是必需的。
- 很显然,在软件的交付阶段,AI 已是决定速度和质量的重要因素。
- AI 的变革令 DevOps 团队比以往更忙碌,也使开发周期变得更短。
- 归根结底,开发团队仍然需要战略性的领导力,虽然现在 AI 在很多方面很强大,但仍然不能以有创意的方式回应用户需求。
对很多开发者来说,预测下一步的 DevOps 工作已经变为一种消遣方式。我们见证了过去十年行业的迅速发展,同时,程序员所承担的角色也发生了根本性变化。
实际上,在那些特定年龄的开发者中,“传统”开发者这一角色可能已经不存在。与传统的软件开发生命周期不同——在生命周期中,软件开发的步骤是:计划,构建,发布——如今我们很多人身处多学科团队,在这个团队中,开发和操作是并存的,而且越来越难以区分。
最近,这个模型已经成为众所周知的 DevOps。DevOps 本身的演化过程只有几年(或几个月)时间。如今,我们的工作中充满了各种首字母缩写词(包括最近出现的 DevSecOps),它表示一种略微不同的工作方式,其中每个都代表对未来的不同看法。
AIOps 也是那些最新的缩写词之一。因此,AI 工具正在逐步取代开发者的角色 - 就像以前的 DevOps 那样 - 最终将完全取代 DevOps。
评估这种预测是否会真正实现是一件棘手的事,但我们还是需要尝试一下。我们将观察 AI 能为开发工作做些什么,评估它是否可以真正取代人类开发者,并展望十年后 DevOps 的发展状况。
自动化的前景
首先,为了理解 AI 工具在 DevOps 团队中广受欢迎的原因,需要了解他们希望 AI 工具实现什么。这些需求可以分为两部分:
- 一方面,使用 AI 工具只是一种令疲惫不堪的开发者在日益复杂的系统处理工作中保持优势的方法。
- 另一方面,AI 工具提供了一系列自动化代码开发和部署技术,从根本上改变了软件的开发方式。
至于前者——让我们生活更轻松的 AI 工具——我们只需了解过去 10 年云基础设施模型的普及,就能理解人工智能的必要性。如今,大多数公司都在使用某种形式的混合云基础设施,如果离开了那些 AI 技术的辅助,就无法这种基础设施进行管理。实际上,混合及多个云端的基础设施、容器和超大规模应用程序等微服务架构已经构成了一个比以往任何时候都要复杂的企业 IT 环境。
接下来是 AI 工具应用的第二个方面——事实上,一些 AI 工具,比如GitHub 编码助手(copilot.github.com/)或微软的开发助手(h…](bitadvisors.com/education/y…
DevOps、AIOps 和 NoOps
由于 AI 工具的实用性,除了顽固不化的 DevOps 团队,大家都在使用它。的确,对于运行多个不同的云系统的团队来说,在开发和扩展 DevOps 项目时,AI 接口已经是一种必需的工具了。
在开发人员花费时间和精力研究的数据和系统上,这种转变是最明显和切实的。例如,过去运营团队的主要角色是构建和维护所有员工都可操作和查询的控制面板,其中包含软件中所有合适的数据。
如今,这种工作方式已经过时了。随着软件变得越来越复杂,用一个控制面板来呈现特定软件模块的所有相关信息的做法听起来非常荒谬。相反,大多数 DevOps 团队现在使用人工智能工具来“自动”监控他们正在开发的软件,并且只在出现问题时才呈现相关数据。
这是我们作为开发人员和运营人员的工作方式的巨大转变,因此它有自己的首字母缩写—— AIOps 也就不足为奇了。事实上,有些人甚至更进一步,认为这种对人工智能工具的依赖意味着我们正在(进入 NoOps 时代)(searchitoperations.techtarget.com/definition/…
AI 变革
所有关于软件开发哲学背景的思考可能听起来有点抽象。不过,如果你查阅相关数据,就会发现人工智能已经对软件发布的速度(如果不考虑质量)产生了巨大的影响。
GitLab 最近对 4000 多名开发人员的调查得到了一些有说服力的数据。这项研究发现,一些公司发布新代码的速度比以前快了十倍。值得注意的是,75%的人利用 AI 和 ML来测试和审查预发布的代码。而在一年前,这一比例仅略高于 40%。
/filters:no_upscale()/articles/ai-devops-takeover/en/resources/2pasted%20image%200-1633456731453.png)
这对开发人员来说是个好消息,至少对那些需要快速生成大量代码的开发者来说是好事。但这并不一定能生成优良的代码。例如,从勒索软件攻击的趋势来看,对许多组织来说,未经测试的代码正在迅速成为一个明显的漏洞来源,而 AI 驱动的测试系统的出现并没有减少这种情况的发生。
尽管如此,未来发展趋势是显而易见的。再过几年,似乎绝大多数DevOps团队都将依赖 AI 工具,软件的发布速度将成倍增长。这又回到了我们开始的问题——既然 AI 工具能进行这么多的 DevOps 工作,我们还需要人来负责 DevOps 相关工作吗?
嗯,既是也不是。为什么?
挑战
在最浅显的层面,可以通过一个非常简单的测试来回答这个问题。随着 AI 工具在整个开发领域的应用,开发人员的工作量是否减少了?问普通开发者这个问题,他们会笑你。答案是否定的。
这是因为,当 DevOps 团队在软件的日常管理上花的时间减少,就有时间用于更有价值的任务——战略规划,荟萃分析,确保他们的发展目标是跟管理层一致的。事实上,有很多人认为人工智能“革命”会让DevOps过时,也会令团队规模比以往任何时候都大,而且开发人员比以往任何时候都忙。这是因为它有加快开发周期的作用。
在行业内,经理们都很明白这一点。在最近[对 ZDNet 的一次采访中] (www.zdnet.com/article/art…), iTech AG 的执行副总裁 Matthew Tiani 指出,现在,“增强的技术工具集——源代码管理、CI/CD、编配等,可以令 DevOps 的能力增强。”
他还认为,成功的 DevOps 实现利用了“一种兼容的软件开发方法论,如敏捷开发、Scrum 和一个组织承诺,以此促进开发和运维人员之间的协作。”
共存
实际上,这些因素和趋势意味着 DevOps 团队越来越注重业务目标,而非技术挑战。这确实是一种变化,但它涉及到软件质量,所以不是负面的。AI 工具已经赋予了团队集中力量办事的能力——包括创造力、综合素质和战略性任务中需要的能力。
你不需要找太多的证据。例如,Vue.JS 现在是世界上发展最快的开发框架,有超过24万个网站使用该框架构建。在 AI 工具出现之前,认为某种新的且复杂的开发框架能够如此迅速地在全世界广泛使用的想法是可笑的。如今,有了 AI 工具的支持,DevOps 团队有了更多的自由,他们敢于做出某些决定,并相信自己的工具足够先进,能应对技术性挑战。
这意味着 AI 工具不太可能取代 DevOps,至少短期内不会。正如我们在前面使用 DevOps 的趋势中看到的,不管开发团队使用的技术工具如何先进,他们仍然需要具有战略眼光的领导者。而且,尽管 AI 在许多领域有强大的能力,但它们仍然不能以真正有创造性的方式响应用户需求。
关键问题
简而言之,在今后一段时期内,我们可能还是需要人工开发者。虽然他们承担的角色跟十年前相比有根本性的不同,但在一个如此快速发展的行业工作,确实很有意义。
关于作者
Sam Bocetta 先前是一名安全分析师,长期担任海军的网络工程师。现在他处于半退休状态,为公众讲授安全和隐私技术课程。他的大多数工作都涉及弹道系统的穿透测试。他对我们的网络进行分析,寻找切入点,并基于我的调查结果进行了安全漏洞评估。为了发现海军系统(陆上和海上)的漏洞并降低受到攻击的风险,他还策划、管理、实施了复杂的黑客演习。他的工作主要是识别和预防应用程序和网络系统面临的威胁,降低攻击向量区域,消除漏洞并编制常规报告。他善于识别薄弱环节,并制定新的战略,支持网络系统应对一系列威胁。他与架构师和开发人员密切合作,确定针对应用程序间漏洞的缓解和控制措施,并实施安全评估,模拟各种网络攻击的策略、技术和过程。