DevOps旨在加速软件开发过程并在不影响代码质量的情况下更快地为客户交付价值。在过去的十年里,传统的DevOps经历了一个漫长的发展周期。如今,企业组织开始按照DevOps原则构建CI/CD管道。但在大多数情况下,团队仍然依赖手动流程和人为驱动的自动化相结合。显然,这种优化程度还没有达到理想或理论上的极限。近期,DevOps的理论高地迎来了AI和ML两大技术力量。相关工具开始在传统的DevOps工具栈中融合并释放出巨大的能量。从决策流程改进到运维和代码质量提升自动化,在AI(人工智能)和ML(机器学习)的双重加持下,DevOps迎来更加光明的发展前景。下面,我们详细讨论其中的一些亮点:第一,自动代码审查。在软件开发的早期阶段,从编码本身开始,AI和ML工具已经能够基于富有表现力的管理指导性数据集(即为机器学习算法提供输入数据,根据所需的机器行为和响应)。这一切都将大大减少人类在代码质量管理方面的工作量。此外,借助代码管理和协作工具,用户可以在团队成员之间自动分配审查工作量。此过程可以通过此类算法更早地检测到代码缺陷、安全问题和代码质量问题。这些工具还可以减少代码审查中的噪音。除了检测缺陷之外,自动代码审查还负责执行编码和安全标准。二、自动代码分析工具。由AI和ML提供支持的智能工具,例如代码分析和改进工具,可以从包含数百万行代码的报告中学习,以了解代码的意图并记录开发人员所做的更改。基于此,这些智能工具可以通过分析对每一行代码提出建议。其他方案从不同角度分析代码。在分析了来自开源项目的数百万行代码之后,机器学习工具可以提供有效的性能调优结论,包括识别要运行的最昂贵的代码行并避免这些代码影响应用程序的响应时间。这些工具可以发现代码中的问题,例如资源泄漏、潜在的并发争用和浪费的CPU周期。更重要的是,这些工具可以在代码审查阶段和应用程序性能监控阶段与CI/CD管道顺利集成。在对新功能进行编码后,开发人员可以研究如何开发由AI和ML驱动的自动化单元测试。在开发冲刺阶段,这款智能单元测试工具可以帮助开发者节省大约20%的时间。第三,自我修复测试。构建和集成之后,下一阶段是实施功能和非功能测试。现阶段,使用AI和ML创建代码并执行自我修复测试/维护已成为DevOps世界中的现实。当然,测试自动化本身可能会成为一个巨大的瓶颈,也成为很多项目频繁延期的原因。不可靠和不稳定的自动化过程会减慢测试过程,这通常是由被测应用程序甚至测试过程中的各种元素的快速变化引起的。智能技术的出现可以帮助识别这些变化并立即调整测试方法,从而实现测试过程的稳定性和可靠性。第四,低代码/无代码工具。对于移动应用和Web应用,过去我们需要投入大量资源培训相关人才,以获得稳定可靠的代码测试技能。在这方面,AI和ML测试工具可以充分学习应用流程、屏幕内容和元素,最终以低代码甚至无代码的方式自动生成测试。这些工具还可以在每一轮测试中自我完善,提升测试质量。低代码或无代码工具允许团队成员参与自动化测试的开发。完成后,开发人员将节省大量时间,可以将精力投入到其他更紧迫的任务中——比如开发其他创新功能。第五,机器人过程自动化。RPA(机器人过程自动化)将使用AI和ML的自动化测试提升到一个新的水平。此类技术可以使大型组织中大量传统上手动、耗时、容易出错且难以自动化的流程实现自动化。第六,测试影响分析工具。测试执行完成后,AI和ML测试影响分析(TIA)工具可以接管,指导决策者确定哪些测试需要在后续版本中继续,哪些测试可以在后续流程中淘汰。此外,在同一测试类别下,AI和ML算法可以根据引导的测试数据确定故障的根本原因,从而显着缩短平均解决时间(MTTR)。第七,AIOps。在DevOps流程后期,即代码部署到生产环境前后,AI和ML成为引领AIOps发展的新兴技术。完整的AIOps解决方案不仅涵盖了智能APM(应用性能监控),还引入了ITIM(IT基础架构监控)和ITSM(IT服务监控)机制。两者共同构成一个综合层的生产和运营洞察分析,可以运行在大数据之上,对先进的现代软件架构(微服务、云架构等)生效。借助AI驱动的运营能力,团队可以专注于确定其应用程序的服务健康状况,同时保持对生产数据的完全控制和可见性。借助AI驱动的运营能力,团队可以专注于确定其应用程序的服务健康状况,同时保持对生产数据的完全控制和可见性。基于此,DevOps能够使用实时自动化事件管理进一步降低MTTR。其中,AI和ML将负责为生产级应用提供日志可观测性、趋势聚合和相应的预测结果。在AIOps产品组合中使用这些工具,团队可以减少和防止服务停机(预测性警报)、加快故障排除并快速分析大型日志文件以确定问题的根本原因和类别,例如安全、网络、服务器等。总结DevOps和人类工程的探索永远不会消失,但在探索的旅程中,我们可以利用当前的成果来优化和加速过去难以自动化或维护、容易出错的环节。AI和ML是应对这些挑战的绝佳解决方案,决策者可以通过分析各种问题从这些工具中获得巨大价值。当然,只有将这些解决方案与遗留流程和工具无缝集成,才能真正实现这一预期价值。如果AI和ML不能轻松集成到标准DevOps工具堆栈中,该项目将成为空谈,并最终退回到传统的软件开发实践。
