根据研究公司德勤今年早些时候发布的一份调查报告,提供基于人工智能的软件开发工具的初创公司在2019年筹集了7.04亿美元的资金。研究公司IDC预测,全球定制应用开发服务市场规模预计将从2018年的470亿美元增长到2023年的610亿美元以上,并在五年内实现5.3%的复合年增长率(CAGR)。根据IT软件质量研究所关于美国低质量软件成本的调查报告,糟糕的软件质量在2019年给美国企业造成了3190亿美元的损失。据研究公司Gartner称,到2023年,40%的DevOps团队将使用人工智能集成IT运营(AIOps)平台来处理应用程序和基础设施监控应用程序。为了减少DevOps团队面临的延迟,软件开发工具提供商正在加速将人工智能和机器学习技术集成到他们的应用程序和平台中。其目标是加速软件开发生命周期(SDLC)的每个阶段,同时提高软件质量。好消息是它的用例表明这些目标正在实现,使DevOps能够实现更高水平的准确性、质量和可靠性。AI可以加速DevOps的10种方式最吸引人的方面是它在帮助开发人员完成困难、耗时的任务方面的有效性。最耗时的任务之一是管理需求文档的许多迭代和版本。JiraSoftware由Atlassianps公司开发,在使用人工智能简化软件开发生命周期(SDLC)的每个阶段并帮助管理需求方面处于行业领先地位,被广泛认为是DevOps领域的行业标准。以下是人工智能加速DevOps的10种方式(1)依靠人工智能和机器学习实时自动提示代码片段来加速开发,从而提高DevOps生产力。一些行业领先的企业软件供应商的DevOps团队在客户关系管理(CRM)、供应链管理和社交媒体市场上展开激烈竞争。他们说,这种AI用例效率更高,准确性也更高。一家行业领先的客户关系管理(CRM)提供商的DevOps负责人表示,最初使用人工智能自动完成代码的努力是徒劳的。她认为DevOps开发工具提供商使用受监督的机器学习算法来提高模型学习和响应代码请求的速度。微软的VisualStudioIntellicode目前安装量超过600万次,这也是DevOps团队将其列为DevOps中最有价值的AI开发的原因。(2)实践证明,利用人工智能简化需求管理,可以有效提高需求文档的准确性和质量,从而在下一代应用或平台中捕捉用户??需求。人工智能正在提供可靠的结果,简化创建、编辑、验证、测试和管理需求文档的每个阶段。DevOps团队成员正在使用基于人工智能和机器学习的需求管理平台来节省时间,因此他们通常可以在紧迫的期限内继续编码和创建软件产品。在第一时间获得正确的需求有助于使整个项目与其项目计划保持一致。基于AI的软件开发工具的供应商看到了构建业务案例以按时完成项目的机会,因此正在该领域快速开发和推出新的应用程序。令人兴奋的是,自然语言处理技术在DevOps工具这一领域的采用速度很快,使用基于人工智能的工具的企业已经能够将需求审查时间减少50%以上。(3)人工智能已被证明在检测错误和改进代码的自动化建议方面非常有效。Facebook的错误检测工具可以预测缺陷并建议补救措施,在80%的情况下,人工智能工具会学习自动修复错误。SemmleCodeQL被认为是该领域领先的基于人工智能的DevOps工具。使用CodeQL的DevOps团队可以跟踪代码中的漏洞,还可以在整个代码库中查找逻辑变体。Microsoft安全响应团队的安全研究人员使用Semmle-QL来发现关键问题的变体,使他们能够识别和响应关键代码问题并防止事件发生。(4)人工智能正在协助确定安全测试结果的优先级和漏洞分类。Checkmarx首席技术官MatySiman解释了机器学习如何实时发现代码漏洞。“即使是拥有最成熟软件开发生命周期(SDLC)的组织,也常常难以对漏洞进行优先级排序和分类,”他说。关注开发人员或应用程序级安全团队的机器学习算法。使威胁变得脆弱的真正优势和组成部分是应对这一挑战的关键。”他说,可以教授机器学习算法来了解一种类型的漏洞相对于另一种类型的漏洞有多少。比例更高。通过这种自动审查流程,团队能够以更明智的方式优化和加速他们的补救工作。(5)通过基于给定代码库的独特属性自动生成和自动运行测试用例来提高软件质量保证,这是采用AI技术为DevOps团队节省宝贵时间的另一个领域。这对于跨各种用例对新应用程序和平台进行压力测试非常宝贵。创建和修改测试用例是任何DevOps团队中的一项独特技能,拥有这种技能的开发人员通常会被测试更新淹没。AI驱动的软件开发工具正在消除测试覆盖范围的重叠,通过更可预测的测试优化现有测试工作,并加速从缺陷检测到缺陷预防的进程。基于人工智能的软件开发平台可以识别复杂且相互关联的产品模块之间的依赖关系,从而在整个过程中提高产品质量。提高软件质量也可以改善客户体验。(6)人工智能技术善于解决复杂的软件应用和平台发布交付给客户后的问题。企业软件供应商在他们的软件质量保证过程中付出了巨大的努力,以消除错误、逻辑错误和不可靠的代码段。较新的版本或最坏情况下的召回成本高昂,并且会影响客户的工作效率。基于AI的QA工具已被证明可以有效地预测企业应用程序的哪些领域在交付给复杂的客户环境之前会失败。人工智能在根本原因分析方面非常有效,并且在加速领先客户关系管理(CRM)提供商的应用程序交付以及缩短客户企业环境中的恢复时间方面也被证明是有效的。另一个DevOps团队表示,他们正在使用人工智能自动配置应用程序设置,以优化客户部署的性能。(7)基于机器学习的代码漏洞检测可以可靠地发现异常并实时提醒DevOps团队。Checkmarx的首席技术官MatySiman说:“假设组织的开发人员正在编写高质量、安全的代码,机器学习可以设置‘正常活动’的基线,并从该基线识别和标记异常。最终,人们的生活在IT和安全环境每天都在变化,系统和工具需要以相同或更快的速度学习和适应。组织和开发人员无法单枪匹马地实施提高威胁检测准确性的解决方案,从而帮助他们优先考虑最重要的事情。”快速发现异常并采取行动是为基于AI的软件QA和DevOps工具构建业务案例的一个组成部分。(8)高级DevOps团队正在使用AI来分析和发现对所有开发工具、应用程序性能监控(APM)、软件质量保证和发布周期系统的新见解。一家行业领先的供应链管理(SCM)企业软件提供商的DevOps团队正在使用人工智能来分析为什么一些项目进展顺利并交付了出色的代码,而其他项目则陷入了无休止的审查和代码重写循环。通过使用受监督的机器学习算法,他们可以看到模式并深入了解他们的数据。该公司的DevOps负责人表示,数据驱动正在迅速成为其DNA的一部分。(9)提高每个发布周期内的可追溯性,以确定DevOps协作和数据集成工作流程中需要改进的领域。AI使DevOps团队能够更好地相互协调,尤其是在偏远地区。AI驱动的洞察力有助于了解共享需求和规范如何反映本地化、独特的客户需求和特定的性能基准。(10)创建一个更加集成的DevOps战略,可以最大限度地发挥AI的价值,这取决于使DevOps以客户为中心的框架,同时提高敏捷性和培养分析驱动的DNA,以洞察运营力量。许多DevOps领导者表示,将安全性集成到开发周期中可以减少阻碍事情按计划进行的瓶颈。一个可以将质量保证集成到DevOps工作流中的框架是关键。人工智能用例共同反映了彻底改变DevOps的潜力。但兑现这一承诺需要一个框架,使企业DevOps团队能够提供卓越的客户体验并自动执行客户交易,并在任何地方实现自动化。结论所有DevOps团队都面临着加快开发周期同时确保生成最高质量代码的挑战。AI通过在开发人员提出要求之前预测他们的需求,帮助加快DevOps开发周期的每个阶段。自动建议代码、自动测试以改进软件质量保证技术以及简化需求管理都是AI为DevOps带来价值的核心领域。
