机械自动化去年如此:人工智能将更多智能推向软件开发
使用生成式人工智能来创建或修改软件代码引起了很多关注。现在是时候看看人工智能如何以其他方式帮助 IT 专业人员和管理人员了。
人工智能 (AI) 能否帮助 DevOps 工作从脆弱转向敏捷?整个行业都猜测,人工智能不仅可以大大加速软件的代码生成,还可以大大加速随后的所有细节——包括规范、文档、测试、部署等。
人工智能以其可操作和预测的形式已经使用了多年,在幕后工作以实现工作流程和调度的自动化。现在,IT 经理和专业人士正在拥抱生成式人工智能的潜力。
Manjunath Bhat 领导的 Gartner 分析师团队发布的一项分析显示,未来三年内,采用人工智能来增强软件开发生命周期的平台工程团队的数量可能会从 5% 增加到 40%。
在整个 IT 行业,人们对人工智能为 DevOps 和相关敏捷实践提供的潜在推动力持乐观态度。 SAS 首席软件工程师 Billy Dickerson 告诉 ZDNET:“将 DevOps 和 AI 领域相结合,可以增强软件开发生命周期的所有阶段,并使软件能够更快、更可靠、更高效地推向市场,从而实现互补。”
许多活动都围绕生成式 AI 和 DevOps 流程进行。在自动化专家 Stonebranch 发布的一项调查中,几乎所有 (97%) 的 408 名技术经理都表示,他们“有兴趣将生成式人工智能纳入他们的自动化程序中”。调查作者指出,这些专业人士“将 genAI 视为连接更多样化的工具并为更广泛的用户提供支持的关键工具”。
Stonebranch 调查显示,人工智能促进了 DevOps,但 DevOps 也促进了人工智能应用程序的开发。至少 72% 的受访者已经接受机器学习管道来支持他们的生成式人工智能计划。
虽然使用生成式人工智能来创建或修改软件代码引起了很多关注,但这只是开发过程的一小部分。现在是时候看看人工智能如何以其他方式帮助 IT 专业人员和管理人员了。
“开发人员平均花费 10% 到 25% 的时间编写代码,”Gartner 的 Bhat 和他的合著者写道。 “其余时间用于阅读规范、编写文档、进行代码审查、参加会议、帮助同事、调试现有代码、与其他团队协作、配置环境、解决生产事件以及学习技术和业务概念——仅举几例。”
SAS 的迪克森指出,将人工智能与“DevOps 反馈循环的所有阶段——计划、代码审查和开发、构建、测试、部署、监控、测量——相结合,可以增强团队协作并积极改善结果”。通过规划,“人工智能可以根据用户请求自动生成需求,检测不一致的时间表,甚至识别不完整的需求,从而使项目管理流程更加高效。”
迪克森表示,人工智能还可以处理代码审查和开发中的繁重流程:“人工智能不仅可以为开发人员提供自动生成样板代码的建议,还可以为代码审查过程做出贡献。这种方法增强了团队之间的协作,并可以导致更多的创新、更快的上市时间以及更好地符合业务目标。”
尽管如此,技术经理和专业人士仍需要谨慎行事,避免在人工智能驱动的 DevOps 和其他敏捷实践方面走得太远。 “过度依赖会带来风险,”SiFive 高级总监、Lynx Software Technologies 前营销副总裁 Ian Ferguson 告诉 ZDNET。
弗格森说:“如果不了解自主人工智能平台如何做出决定,我们就会失去责任。” “如果人工智能的推理不透明,我们就有可能盲目接受结果,而无法质疑或验证它们。我们面临的未来是,只有非常有限的公司可以创建复杂的系统,或者我们会看到系统质量的下降。 ”
Ferguson 敦促在 DevOps 中培养“人类和人工智能之间的协作动态。人工智能可以处理死记硬背的编码,而人类必须拥有一套完整的系统需求和行为的定义,”他解释道。
Dickerson 还建议在进行 AI 驱动的 DevOps 时要小心:“由于 AI 可以在 DevOps 反馈循环中自动执行许多任务,因此理想的做法是进行人工监督,以确保 AI 做出正确的自动化决策。最佳实践是确保人类批准每一项重要的业务决策。”
Bhat 和他的合著者在提交给 Gartner 的报告中表示,将人工智能应用于软件开发生命周期的一部分“可能会带来转变,而不是节省精力,从而创造一种例如,编码期间节省的时间可以通过增加代码审查和调试的时间来抵消。”
然而,我们有理由对人工智能对 DevOps 的影响感到兴奋。有证据表明人工智能可用于协助或加速 DevOps 流程的后期阶段。例如,当谈到软件构建和测试阶段时,“人工智能可以评估构建过程的输入和输出,并寻找故障模式以帮助优化恢复时间,”迪克森说。
此外,“凭借分析大量数据并做出预测的能力,人工智能还可以协助分析测试结果。这可以帮助识别最有影响力和最不可靠的测试模式,以协助优化测试过程。”
在部署阶段,“人工智能可以自动配置、配置和管理通用基础设施资源。反过来,这可以触发使用这些自动生成的工件的部署,从而使工程师可以将更多时间花在复杂的部署上,”迪克森说。
对于监控和测量,“由于企业部署会产生大量数据,DevOps 团队可能很难消化必要的信息来解决出现的问题,”迪克森说。 “为了协助完成这项工作,人工智能可以实时分析指标和日志,以更早地检测问题并更快地解决问题。通过分析连续数据和模式,人工智能可以预测潜在的瓶颈,确定需要改进的领域,并协助优化DevOps 生命周期的所有阶段。”
Ferguson 表示,在人类监督下,“人工智能可以加强 DevOps 和敏捷等方法。”他表示,人工智能和人类在整个软件生命周期中的有效结合可以提高生产力和创新:“不过,我们必须通过透明度、建立信任、工作流程重新设计和技能培训来积极塑造这个未来。”
