Gartner 研究报告:平台工程团队如何利用 AI 增强 DevOps
我们来聊聊AI在DevOps领域引发的变革——这个话题目前热度极高,但真正理解其深层影响的人并不多。可以肯定地说,AI正重新定义软件工程的运作逻辑,而平台工程团队,正是这场变革的关键推动者。
主要发现
大量的组织已经开始引入AI编码助手、AI测试工具以及AIOps平台来优化DevOps中的特定环节。但这里有一个关键点:要真正缩短整体交付周期,必须识别并打通软件交付全流程中的瓶颈,单点优化远远不够。
生成式AI带来了新的可能,尤其是在减少开发者摩擦、提升开发者体验方面——这些摩擦可能来自对代码库的理解不足,也可能来自调试、代码审查、根本原因分析中消耗的大量时间。而提升效率的核心,在于优化和协调软件开发生命周期中的所有阶段。常见的低效表现包括:构建过程漫长、构建流水线错误难以排查、变更影响分析迟缓、事件响应拖沓。
与传统的自动化手段相比,AI提供了更强大的能力,帮助产品团队以更可靠、更可持续、更具成本效益的方式管理软件交付基础设施。
建议
对于推动平台工程计划的软件工程领导者,以下是几条务实的行动建议:
不要盲目追逐AI。应该先识别软件交付流程中的实际瓶颈,并优先解决,从而系统性地改进SDLC。必须警惕供应商的“AI洗涤”现象——在传统自动化手段已经足够解决问题的情况下,引入AI反而是一种过度设计。
通过支持AI增强的工作流改善开发者体验,降低认知负担,帮助开发者在开发、交付、运营各阶段进入顺畅的工作状态。
将AI优化嵌入DevOps流程,提高各环节的反馈效率。
在内部开发平台中,提供自助式的AI基础设施管理能力,以优化软件交付基础设施。
战略规划假设
预计到2027年,使用AI增强SDLC每个阶段的平台工程团队比例,将从目前的5%增长至40%。
介绍
随着AI编码助手和ChatGPT的面世,软件开发已成为生成式AI最重要的应用领域之一。在2023年Gartner的调查中,52%的IT领导者表示,他们期望自己的团队在软件开发中使用生成式AI。Gartner同行社区的调查也显示,61%的软件工程领导者对生成式AI在代码生成方面的潜力感到兴奋。
但这里有个容易被忽略的事实:开发者平均只有10%到25%的时间在写代码。其余的时间花在了阅读规范、撰写文档、代码审查、参加会议、帮助同事、调试、跨团队协作、环境配置、处理生产故障、学习技术及业务知识等等。所以,如果只盯着代码生成,而忽视DevOps流程的其他环节,很可能掩盖了开发周期中真正的低效点,整体性能也就无从提升。
正因如此,越来越多的客户开始从更宏观的视角看待AI在DevOps中的应用,他们问的是:“未来三年,AI将如何影响DevOps和DevSecOps?”以及“如何在敏捷和DevOps流程中全方位地应用AI?”
平台工程团队将在解决这些问题中扮演核心角色——他们的职责就是帮助开发团队提升交付速度、软件质量,并优化大规模开发者的体验。要做到这一点,就必须深入了解现有及潜在平台用户的需求,并从多个产品开发团队的挑战中提炼出有价值的洞察。
那么,平台工程团队该从哪里入手?一个三管齐下的方法值得参考:
- :在SDLC各阶段引入AI增强用例,比如代码建议与解释、总结拉取请求变更、解释流水线错误,以及通过自然语言查询操作数据和服务健康状态。
改善开发者体验
- :AI优化的例子包括测试影响分析(缩短构建时间)、自动化代码审查与变更影响分析(辅助人工监督)、事件关联(缩短事故解决时间)。
提升软件交付工作流的效率
- :AI技术可实现自主工作负载优化和增强的FinOps,从而在可靠性、成本和环境可持续性之间找到最佳平衡。
优化软件交付基础设施
分析
识别并优先解决SDLC中的瓶颈
想要通过AI增强DevOps工作流的团队,第一步应该是识别并优先解决那些阻碍SDLC工作流的瓶颈。这些瓶颈主要有两类:一类是跨越SDLC各阶段的工作流障碍,另一类则是每个阶段内部的工作流障碍。
第一类瓶颈只有在系统性地审视整个软件交付价值流时才会显现出来。这种全局视角能帮我们发现那些存在于不同角色、不同团队“交接”过程中的问题。比如:开发人员等待设计师和产品经理的输入、运营团队等待变更影响分析的结果、安全团队在部署前的检查环节形成等待。这些延迟,对客户来说并没有创造任何价值。
第二类瓶颈更容易被发现,因为它们出现在相对独立的工作线程中。例如:开发流程内部的编码、构建、测试、调试、重构、提交;代码检入过程中的拉取请求、代码审查、安全检查;持续集成环节的构建代码、运行单元测试、执行SAST/DAST测试、服务健康检查;环境管理中的虚拟机创建、容器编排、基础设施配置;事故响应中的警报分类、事件关联、日志分析、根本原因分析。
不同团队面临的瓶颈可能完全不同。比如,处理遗留代码库并进行增量更改的团队,最大的限制往往不是编码效率,而是对旧代码库缺乏理解。因此,平台工程团队需要与产品工程团队密切合作,真正了解开发者的痛点,确保AI功能的落地是基于实际需求,而不是凭空想象。
图3详细分析了每个工作线程中的具体活动,并展示了AI如何解决这些限制。一个现实是:我们无法一次解决所有问题。所以,必须识别并迭代地解决当前阶段最大的约束点。
改善开发者体验
改善开发者体验已成为软件工程领导者的核心优先事项,58%的领导者表示,这对组织高管层非常重要。提升开发者体验或生产力,是开发者平台和相关工具链的首要价值来源。因此,平台工程团队在应用AI增强DevOps工作流时,第一步应当聚焦于改善使用平台的人员体验。
图4展示了在软件开发、交付和运营过程中,通过AI增强改善开发者体验的具体用例。
开发阶段
交付阶段
运营阶段
提升软件交付效率
除了改善开发者体验,AI在优化工作流效率方面的潜力同样不可忽视。平台工程团队可以在构建“铺装道路”时集成AI功能,以简化从构思到生产的价值流动。在这个过程中,需要系统性地理解从客户承诺到客户看到结果的整个工作流程。这种系统视图,通常来自价值流映射。
值得注意的是,单靠自动代码生成来提升软件交付性能,在超过一定阈值后,收益会递减——因为最大的价值交付瓶颈可能在其他地方。图5展示了能够帮助克服SDLC限制(约束点)的AI使能案例,与第一部分所述一致。
图6则列出了一些用于实现上述用例的工具。不过,供应商正在快速扩展功能,一个工具可能支持比图中所示更多的用例。
一个值得警惕的副作用是:AI编码助手虽然提升了开发者的编码效率,却可能意外导致代码审查和安全审查的工作量积压——缓慢的代码审查反而会拖慢整体开发效率。根据2023年DORA报告,代码审查速度快的团队,其软件交付性能提高了50%。平台工程团队有能力看清这些系统性的相互关联,也适合推动系统性的变革,而不是局部修补。因此,在支持AI增强开发工具的同时,必须补充卓越的DevSecOps实践。否则,就可能面临开发者产生虚假安全感、重复代码和未经审查的代码推送进入生产环境,从而引发质量与安全问题。
优化软件交付基础设施
平台工程团队负责管理、治理并向产品团队提供软件交付基础设施。然而,规模化管理这些基础设施的复杂度可以用一个公式来概括:软件交付基础设施 = (支持所有环境中应用及其组件的完整SDLC所需的基础设施)×(应用数量)。这里的基础设施不仅包括生产环境,还涵盖开发、测试、压力测试和预发布环境;支持的组件也包括源代码管理系统、云开发环境、持续集成服务器、数据库服务器,以及由物理主机、虚拟机、容器和应用运行时共同构成的运行时基础设施堆栈。
产品团队越来越期望自助工具能够在成本、可靠性和可持续性之间实现优化。优化公有云基础设施尤其困难,但也尤为重要——因为云服务种类多、定价模式不一致、云原生应用分布广、流量模式存在季节性变化。为了可靠、经济、可持续地管理基础设施,平台工程团队应为产品团队提供支持AI增强的自助平台和工具。
新兴技术如自主工作负载优化和增强的FinOps,可以自动化地优化价格与性能,同时实现预定义的业务目标。Akamas、Anodot、Apptio、A vesha、CAST AI、Densify、Google Cloud、IBM、Sedai、StormForge等供应商都在这一领域发力。平台工程团队应将这类技术整合到内部开发平台中,使开发人员和站点可靠性工程师能够可靠、经济地管理和运行应用程序。
快速回答:有哪些陷阱?
软件工程领导者必须警惕几个潜在陷阱和意外副作用:
注意供应商的“AI洗涤”,在传统自动化选项已经足够时,不要硬用AI过度设计。建议通过跨职能团队进行试点,创建并验证假设,做前后对比分析,使用结果驱动的KPI来定义和衡量成功。
将AI应用于SDLC的局部环节,可能导致工作量转移而非节省。例如,编码阶段节省的时间,可能因为代码审查和调试时间的增加而被抵消。
AI旨在降低认知负荷,但可能无意中导致认知技能退化——当AI工具达到极限时,人类反而因为缺乏锻炼而无法做出正确决策。另一个风险是,AI作为决策引擎会降低人类对系统运作方式的理解,导致情境意识缺失。
大多数生成式AI工具无法保证输出的一致性、准确性、可重复性和可预测性。“幻觉”问题使得当前技术还难以胜任关键任务。不过,检索增强生成和模型微调等技术,可以通过引入最新的知识源和特定上下文数据来减少幻觉。使用基础模型作为控制器来构建执行狭窄任务的智能体,也是一个有前景的方向。Gartner将这类技术称为“自主智能体”。
证据
Gartner IT领导者对软件工程生成式AI的调查,2023年5月在线进行,收集了生成式AI在软件工程中的当前与预期使用数据,共91名IT领导者参与。
生成式AI对软件工程团队的影响
软件开发人员的日常工作,微软
软件开发中AI的现状,GitLab
全球代码时间报告,基于25万多名开发者的数据,Software.com
2023年DevOps状态报告,基于3000名专业人员的数据,Google Cloud
自动化的讽刺,Lisanne Bainbridge
国家人类系统集成委员会小组:人类与AI团队合作,ResearchGate
注释1
在《目标》一书中,Eliyahu Goldratt博士将“约束”定义为“限制系统实现更高性能的因素”。缓解最关键的约束,对整体系统性能有着巨大的影响。因此,我们必须迭代地识别、优先处理,并解决阻碍团队交付价值的最大约束。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名