AI 会取代 [DevOps](https://zh.wikipedia.org/zh-sg/DevOps) 吗?

940 阅读9分钟

原文标题:Is Artificial Intelligence Taking over DevOps?

关键词:DevOps、AI、企业 IT 管理、软件开发人员

关键点

  • 大多数公司使用混合或云基础架构,但如果没有人工智能的帮助,管理几乎是不可能的。
  • 对于运行多个不同云服务的团队,随着他们的 DevOps 计划的发展和扩展,AI 接口几乎已成为必需品。
  • 很明显,AI 已经对软件的交付速度和质量产生了巨大影响。
  • AI 革产生的副作用就是让 DevOps 团队比以往任何时候都更忙,开发周期也更快。
  • 归根结底,开发团队仍然需要战略领导,虽然人工智能现在在许多领域都非常有能力,但他们仍然缺乏以真正创造性的方式响应用户需求的能力。

对于许多开发者来说,预测 DevOps 的未来发展已经成为一种最喜欢的消遣。在过去的十年里,我们看到我们的行业发生了迅速的变化,而在同一时期,程序员的角色也发生了根本性的变化。

实际上,特别是在那些(我们应该说)特定年龄的开发人员中,似乎“传统”开发人员的角色不再存在。现在的软件开发已经不再是传统的软件开发生命——制定计划构建和发布软件。我们中的许多人现在在多个不同的团队中工作,其中开发和运营并存,并且越来越难以区分。

这种模式被称为 DevOps, 但直到最近。DevOps 本身只用了几年(或几个月?)就开始改变和适应。现在,我们身边有一大堆首字母缩略词(包括最近的 DevSecOps) ,每一个缩写词表示一种略有不同的工作方式,每个缩略词都代表着对 DevOps 未来发展的不同看法。

最近经常出现的缩写词是 AIOps。在这个愿景中,AI 工具正在慢慢取代开发人员的角色 —— 正如 DevOps 之前所做的那样—— 最终将完全取代 DevOps。

评估该预测是否正确很棘手,但在本文中,我们仍将尝试。我们将研究 AI 对软件开发过程的作用,评估它是否真的可以取代人类开发人员,然后看看 DevOps 在几十年后可能会是什么样子。

自动化

首先,为了理解为什么 DevOps 团队如此迅速地采用 AI 工具,我们必须了解 AI 能够支持什么样的功能。可以分为以下两部分内容:

  • 一方面,AI 的使用可以降低开发人员对于日益复杂系统使用的成本,降低开发人员使用复杂系统的门槛。
  • 另一方面,AI 提供了一系列自动化代码开发和部署技术,从根本上改变了软件的制作方式。

关于前者 —— AI 让我们的生活更轻松 —— 我们只需看看过去十年云基础设施模型的激增,就能明白为什么需要 AI。如今,大多数公司都使用某种形式的混合\云基础设施,如果 AI 帮助,管理它几乎是不可能的。事实上,混合和多云基础设施、容器和超大规模应用程序等微服务架构创造了一个比以往任何时候都更难以跟踪的企业 IT 环境。

译者注:随着企业云基础服务、容器化、应用程序规模的扩大,企业 IT 环境越来越复杂,其管理成本越来越高。

之后是 AI 采用的第二个方面 —— 事实上,一些 AI 工具,如 GitHub 的人工智能编码助手或微软的 DeepDev,不仅让我们的生活更轻松,在代码开发和分发方面,它们开辟了新的可能性。人工智能系统评估个人用户需求的速度,例如,可以使用它们分别调整和指定每个用户的 默认 Web 浏览行为,从而减少他们在使用我们的软件时对特定类型恶意软件的脆弱性。

DevOps, AIOps, and NoOps

由于 AI 工具的实用性,它们已被除最顽固的 DevOps 团队之外的所有人广泛而迅速地采用。事实上,对于现在运行多个不同云的团队(几乎就是所有团队),随着他们的 DevOps 程序的发展和扩展,AI 接口几乎已成为必需品。

这种转变最明显和切实的结果是开发人员花时间研究的数据和系统。例如,过去运营团队的主要职责是构建和维护一个所有员工都可以查阅的仪表板,其中包含一个软件的所有相关数据。

今天,这项核心任务已基本过时。随着软件变得越来越复杂,包含特定软件的所有相关信息的单一仪表板的想法开始听起来很荒谬。相反,大多数 DevOps 团队现在使用 AI 工具“自动”监控他们正在开发的软件,并且仅在明显出现问题时才提供数据。

这是我们作为开发人员和运营人员的工作方式的巨大转变,因此它被赋予了自己的首字母缩略词 – AIOps 也就不足为奇了。事实上,有些人走得更远,声称这种对人工智能工具的依赖现在意味着我们正在进入 NoOps 时代。然而,引人注目的是,对于消除哪个角色的意见存在分歧——NoOps 是意味着“没有开发人员”还是“没有运营”。

AI 革命

所有这些对软件开发哲学背景的思考听起来可能有点抽象。直到,也就是,看到下面这些数字,从中可以清楚地看出,人工智能已经对软件的交付速度(如果不是质量)产生了巨大影响。

GitLab 最近对 4000 多名开发人员的调查对此给出了一些确切的数字。研究发现,一些公司发布新代码的速度比以前快十倍。很明显,75% 的人使用 AI 和 ML 来测试和审查预发布的代码。这比一年前超过 40% 。

Image Source

这对开发人员来说是个好消息,或者至少对于那些想要快速生成大量代码的人来说是个好消息。不幸的是,这并意味着代码质量能够得到保证。例如,很明显,从勒索软件攻击趋势来看,测试不佳的代码正迅速成为许多组织的显着漏洞来源,而人工智能驱动的测试系统的出现并没有减少这种情况。

尽管如此,前进的方向还是非常明显的。再过几年,绝大多数 DevOps 团队似乎都将依赖 AI 工具,软件的发布速度将是以前的许多倍。这又回到了我们开始的问题 —— 鉴于 AI 工具现在正在做如此多的 DevOps 工作,我们还需要人类 DevOps 员工吗?

上面已经给出了答案。

挑战

在最表面的层面上,可以参考一个非常简单的测试来回答这个问题。随着 AI 工具在整个开发部门的采用,开发人员的工作量是否有所减少?问一般开发人员的这个问题,他们会笑着说:“工作量并没有减少”。

这是因为,随着 DevOps 团队花在软件日常管理上的时间越来越少,他们过去花在这方面的时间现在可以用来处理更有价值的任务 —— 战略规划、元数据分析,确保他们的发展目标与管理层的目标一致。事实上,许多人认为会让 DevOps 过时的 AI“革命”似乎让团队变得比以往任何时候都更大,也比以往任何时候都更加忙碌。

业内管理人员对此深有体会。在最近关于 ZDNet 采访时,iTech AG 执行副总裁 Matthew Tiani 指出,DevOps 现在“通过增强的技术工具集得到增强 —— 源代码管理、CI/CD、容器编排。”

他还补充说,成功的 DevOps 实施利用了“兼容的开发方法,如敏捷和 Scrum,以及组织致力于促进和鼓励开发人员和运营人员之间的协作”。

学习共存

在实践中,这些因素和趋势意味着 DevOps 团队越来越关注业务目标,而不是技术挑战。这当然是一种变化,但就我们生产的软件质量而言,这可能不是负面的。可以说,事实上,人工智能工具使团队能够将人力资源集中在他们最擅长的地方—— 创造性的、整体的、战略性的任务

您不必费力寻找这方面的证据。例如,请考虑一下,Vue JS 现在是世界上增长最快的开发框架,超过 240,000 个使用该系统构建的网站现已上线。在人工智能工具出现之前,一个新的复杂的开发框架可以如此迅速地在世界范围内推出的想法是可笑的。现在,在 AI 工具的支持下,DevOps 团队有更多的自由来勇敢地做出决策,并相信他们的工具足够先进以应对技术挑战。

这意味着 AI 工具不太可能取代 DevOps,或者至少在短期内不太可能。正如我们在之前采用 DevOps 的趋势中看到的那样,开发团队仍然需要战略领导,无论他们的技术工具多么先进。而且,尽管人工智能现在在许多领域都具有很强的能力,但它们仍然缺乏以真正创造性的方式响应用户需求的能力。

最后

简而言之,我们很可能在很长一段时间内都需要人类开发人员)。尽管他们的职责可能与十年前完全不同,这就是在这样一个充满活力的行业工作的代价(和乐趣)。