当前位置: 首页 > 科技观察

人工智能和机器学习如何改变DevOps

时间:2023-03-17 10:35:31 科技观察

人工智能和机器学习为DevOps带来了新的自动化功能,这需要了解这些技术如何优化组织运营的示例。DevOps工程旨在加速软件开发过程,以便在不影响代码质量的情况下更快地为客户提供价值。传统的DevOps在过去十年中取得了长足的进步,现在允许许多组织实施持续集成(CI)/持续部署(CD)管道。然而,在大多数情况下,组织仍然依赖手动流程和未优化的人工驱动的自动化流程的组合。人工智能和机器学习在DevOps中的应用也见证了人工智能和机器学习技术在DevOps领域的兴起。这些工具正在成为集成到传统DevOps工具堆栈中的有力候选者。从改进决策流程到自动化操作和提高代码质量,在人工智能和机器学习的帮助下,DevOps的未来充满希望。以下是七个值得关注的趋势和变化:(1)自动化代码审查在软件开发的早期阶段,从编码本身开始,人工智能和机器学习工具已经能够输入学习算法)以执行自动化代码审查和代码分析。这些有助于减少人类的参与。此外,使用代码管理和协作工具,用户可以在团队成员之间自动分配审查工作量。最终结果是更早地检测到这些算法可以轻松发现的代码缺陷、安全问题和代码相关缺陷。这些工具还可以减少代码审查中的噪音。除了检测缺陷外,自动代码审查还强制执行编码和安全标准。(2)代码分析工具自动化由人工智能和机器学习(例如代码分析和改进)提供支持的智能工具可以从数百万行代码的存储库中学习。然后,这些工具可以理解代码的意图并记录开发人员所做的更改。从那里,这些智能工具可以为他们分析的每一行代码提供建议。其他开发人员采用不同的方法来分析代码。在分析了来自开源项目的数百万行代码之后,由机器学习工具提供支持的代码侧重于性能,并帮助找到可能影响应用程序响应时间的昂贵代码行。这些工具可以发现代码中的问题,例如资源泄漏、潜在的并发竞争条件和浪费的CPU周期,它们还可以在代码审查阶段和应用程序性能监控中与持续集成(CI)/持续部署(CD)集成阶段。管道集成。在同一类别下,在编写新功能后,开发人员开始致力于由人工智能和机器学习驱动的自动化单元测试创??建。这可以为开发人员节省大约20%的时间。(3)自愈测试构建后验收和集成编码的下一阶段是功能和非功能测试。在这里,使用人工智能和机器学习进行代码创建和自我修复测试代码和维护已经成为DevOps领域的现实。测试自动化可能是一个巨大的瓶颈,并且通常是项目延迟的原因。不可靠的自动化会影响测试过程。不可靠的测试自动化的根本原因之一是被测应用程序和测试中使用的元素的不断变化。智能技术可以帮助识别这些变化并调整测试,使其更加稳定可靠。(4)低代码/无代码工具此外,创建健壮测试代码的技能非常昂贵,而且并不总是可用,尤其是对于移动应用程序和Web等数字应用程序。在这里,通过学习应用程序流程、屏幕和元素,人工智能和机器学习测试工具可以自动生成几乎不需要代码的测试。这些工具可以在每次测试运行之间自我修复。低代码或无代码工具允许更多团队成员参与测试自动化创建活动。它们还让开发人员有时间专注于更紧迫的活动,例如创建新功能。(5)机器人过程自动化机器人过程自动化(RPA)是另一层自动化,它使用人工智能和机器学习进行测试。此类技术可用于自动化大型组织中大量手动、耗时、容易出错且难以自动化的流程。(6)测试影响分析工具测试执行完成后,人工智能和机器学习测试影响分析(TIA)工具将到位,以指导决策者哪些测试要进行到下一个版本,哪些领域不包括在内.在同一测试类别下,人工智能和机器学习算法可以根据思维测试数据确定故障的根本原因,节省大量平均解决时间(MTTR)。(7)AIOps在DevOps过程的后期,在将代码部署到生产之前和之后,人工智能和机器学习引领AIOps中的新兴技术。一个好的AIOps解决方案不仅包括智能应用程序性能监控(APM),还利用了IT基础设施管理(ITIM)和IT服务管理(ITSM)。这些共同构成了一个全面的生产和运营洞察分析层,可以运行在大数据上,也可以运行在先进的现代软件架构(微服务和云平台等)之上。借助AI驱动的运营能力,组织团队可以专注于确定其应用程序的服务健康状况,并获得对其生产数据的控制和可见性。这样,DevOps团队可以使用实时自动化事件管理来加快他们的平均解决时间(MTTR)。在这里,AI和ML可以在生产应用程序中的日志可观察性、趋势和预测方面做更多的事情。在AIOps产品组合中使用此类工具,团队可以减少并经常防止服务停机(预测性警报)。他们还可以加快支持故障排除,更快地分析大型日志文件,并确定根本原因和类别(安全、网络、服务器等)。结论虽然DevOps和人体工程学永远不会消失,但它们当然可以使用一些帮助来优化和加速难以自动化和维护的繁琐、容易出错的活动。人工智能和机器学习是应对这些挑战的绝佳解决方案,通过对每个组织的问题进行适当分析,决策者可以从这些工具中获得巨大价值。只有将这些解决方案与现有流程和工具无缝集成,才能取得成功。如果AI和机器学习不能轻松集成到标准DevOps工具堆栈中,项目将无法交付价值并最终恢复到传统的软件开发实践。