AI和DevOps的未来

199 阅读8分钟

OpenAI发布的ChatGPT在软件行业引起了相当大的轰动,因为它以一种易于消化的形式向普通消费者展示了人工智能的潜力。ChatGPT在短短五天内拥有超过一百万的用户,其增长速度甚至超过了最受欢迎的社交媒体平台。这种令人印象深刻的采用率突出了当今世界对人工智能日益增长的需求,以及它颠覆许多行业的潜力,包括DevOps。然而,即使有这样惊人的增长和兴奋,仍然有相当多的怀疑态度--毕竟这是早期。

随着人工智能的不断发展,我们预计它将在DevOps领域产生深刻的影响和实际应用。人工智能在提高代码质量、加强监控和警报系统、增强安全措施和提高工程生产力方面具有真正的潜力。

代码质量

随着GitHub的Copilot和Replit的Ghostwriter等人工智能工具的不断发展,我们已经看到越来越多的软件由人工智能编写。这种趋势只会继续下去,人工智能在DevOps中被用来编写配置文件、IAM策略、基础设施即代码(IaC)等等。

下面是ChatGPT调试AWS IAM策略的错误的例子。

AI将继续在代码生成中发挥重要作用。虽然开发人员仍然需要审查和调整人工智能编写的代码,但人工智能生成的代码的速度和准确性将可能超过人类编写的代码。这可能会改变软件的开发方式,让人工智能在开发过程中发挥更重要的作用。然而,这可能发生的确切时间表仍是未知数。它可能取决于几个因素,包括人工智能技术的发展和开发人员将人工智能纳入其工作流程的意愿。看看人工智能被开发人员接受或保持距离的速度有多快,这将是一件有趣的事情。

代码审查

随着人工智能技术的发展,它可能会深刻地影响代码审查。随着亚马逊CodeGuru和GitLab的ModelOps等工具的发展,这种情况已经开始发生。这些工具将代码审查过程的某些方面自动化,如识别潜在的错误并提出改进建议,在节省开发人员的时间和精力的同时也有助于提高代码质量。

在未来,人工智能驱动的代码审查工具可能会变得更加复杂和全面,承担更复杂的任务,并向开发人员提供更详细的反馈。这可能会导致更高效和有效的代码审查过程,帮助确保代码具有尽可能高的质量。

人工智能将验证代码是否正确,测试安全漏洞,并确保其正常工作。随着人工智能执行越来越多的代码审查,它将更熟练地识别问题并提出修复建议。随着时间的推移,人工智能将变得越来越了解你的应用程序的代码库,使它能够提出更准确的建议。起初,开发人员仍然需要审查和批准人工智能所做的任何修改,然而,随着时间的推移,对人类干预的需求将减少。

测试

人工智能将彻底改变测试。左移的测试方法,重点是在开发过程的早期识别和修复问题,将受到人工智能的显著影响。传统的测试金字塔强调了不同类型测试的重要性,随着人工智能在测试过程中发挥更重要的作用,它将变得过时。有了人工智能,你的应用程序的代码库可以在各个层面进行彻底分析和测试,从单个单元到端到端的用户场景。此外,人工智能将测试安全漏洞、性能问题、边缘案例等。

除了进行全面的代码审查和彻底的测试外,人工智能将在生产中监测你的应用程序,并确定可能出现的任何问题。通过持续监测应用程序,AI将从这些问题中学习,并调整其测试策略,以防止类似的问题在未来发生。这种不断学习和改进的能力使人工智能能够为你的应用程序提供持续的支持和保护,确保它保持稳定。此外,通过将测试中涉及的许多繁琐和耗时的任务自动化,人工智能可以释放你的开发团队,使其专注于更关键的任务,并加速整个开发过程。

监测和警报

人工智能将监测一个应用程序的性能,如果有任何问题需要解决,会自动提醒团队。这可以帮助团队快速响应问题,防止问题变得更加严重。我们相信,人工智能可以很快取代大多数网站可靠性工程师(SRE)的职责。人工智能可以分析大量的数据,如日志,以实时识别潜在的问题和趋势。分析这样的大量数据将提供洞察力和建议,可以帮助团队做出更明智的决定。

当在你的应用程序中发现一个错误时,人工智能可以部署一个工作版本的应用程序,而不中断其运行。在部署了之前的工作版本的应用程序后,人工智能可以创建一个新的PR,并编写必要的代码来修复这个错误。

人工智能还可以识别你的云基础设施中的低效率,并提出提高性能和降低成本的方法。这可能包括根据需求扩大或缩小资源,整合未充分利用的资源,以及更多。在云管理和监控中使用人工智能有可能提高效率,降低成本,并防止错误的发生。

安全性

人工智能技术将在应用程序和基础设施的安全方面发挥重要作用。例如,人工智能可以自动检测和阻止恶意攻击,如DDOS、XSS和CSRF。它还将在代码审查期间即时识别潜在的安全漏洞。此外,人工智能可以浮出任何泄漏或脆弱的PII(个人身份信息)。

人工智能可以监测网络流量,并识别表明企图攻击的可疑模式。这可能包括分析网络数据包的内容,请求的频率和位置,以及其他特征。基于这种分析,人工智能可以自动采取行动抵御攻击,如阻止流量来源或将其重定向到一个蜜罐。此外,人工智能可以在开发过程中对你的应用程序进行安全测试,模拟各种攻击和漏洞,在攻击者利用它们之前找出潜在的弱点。

提高生产力

人工智能已经将重复性和耗时的任务自动化,使团队的生产力和效率更高。人工智能将通过减少基础设施即代码(IaC)、模板和配置文件的模板代码的数量来提高DevOps工程师的生产力。诸如Copilot和Ghostwriter等工具目前在这方面有所帮助,而且随着时间的推移,这些工具只会得到改善。

此外,人工智能可以帮助DevOps工程师从文档中提供即时访问信息。工程师可以向人工智能询问他们需要的信息,而不是通读文档,使他们能够即时获取所需信息。此外,人工智能可以处理配置基础设施和设置云服务等任务,将DevOps工程师解放出来,专注于更专业的工作。

Coherence和人工智能

在Coherence,我们看到了几个机会,可以将人工智能融入到我们的客户中,使其获得实质性的好处。例如,AI可以帮助我们和我们的客户简化新应用程序的入职流程。由于每个应用程序都有独特的要求,入职过程会因应用程序的复杂性和架构而有很大不同。人工智能可以分析客户的应用程序,并协助创建Dockerfiles,我们的 coherence.yml,并确保应用程序准备好在云中部署。这将节省时间并减少错误,改善我们客户的整体入职体验。

人工智能可以帮助我们定期监测客户的基础设施和云服务,以确保最佳性能和成本效益。人工智能可以加强应用安全和对HIPAA、SOC2和其他方面的遵守。此外,我们相信,人工智能可以协助我们的团队更有效地进行代码审查,提高代码质量。

结论

公司将创建DevOps的特定模式,这些模式是超重点和专业化的,比如亚马逊的DevOps Guru。OpenAI的首席执行官Sam Altman预见,在未来,一些新的公司和初创公司将为特定的垂直行业训练现有的模型。公司将利用已经训练好的现有模型,但用针对DevOps的数据来加强它们。这些人工智能将改善代码质量,加强监控和警报系统,增强安全措施,并提高工程生产率。

在DevOps中使用AI有可能极大地提高软件开发和部署的效率和可靠性。我们相信,通过利用人工智能的力量,公司可以更快、更便宜地建立更好的产品。如果这能为我们的客户和用户提供更好的体验,我们应该拥抱它。