首页 > 其他分享 >使用 AI 构建面向未来的 DevOps

使用 AI 构建面向未来的 DevOps

时间:2024-01-29 18:35:48浏览次数:37  
标签:帮助 CodeWhisperer AI CodeGuru 代码 面向未来 DevOps 开发者

从去年底开始,生成式 AI(AIGC) 作为热门话题,深入影响到了 IT 行业的各个领域和所有从业者。

DevOps 是通过持续集成、持续部署、持续交付的方式,将开发和运营更好地整合在一起的流程,它的发展与架构的演进是紧密相连的。当前的架构逐渐在向微服务化的方向发展,出现了许多新的技术,如容器、无服务器、可观测等技术等,它们都推动了 DevOps 技术以及整个 DevOps 生态的发展。这些技术将安全、数据、智能等技术和 DevOps 集中在一起,使开发和运维能够更紧密地衔接在一起,使产品能够更快地迭代和演进。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

 

4c7725886f51d104e6ed4b9b102da97a.png

DevOps 的现代化

从开发和运维两个维度来看,实现 DevOps 的现代化需要采取不同的策略。

在开发方面,我们需要更快速地迭代产品,减少编译和生成的时间,采用更多的低代码或无代码技术,将开发和测试尽可能地融为一体。

在运维方面,我们需要采用主动监控来减小噪声,提高运维效率,使得运维可以更好地帮助开发进行反馈,从而实现快速的迭代。

7348a18ecb703f31cd753a42d429bd7c.png

如果从代码的角度来看 DevOps 的话,可以将 DevOps 核心分为三大领域:

  1. 代码开发:如何利用人工智能技术来更好更快地开发出更精准、更高效的代码?虽然开发者数量不断增加,但仍然没有达到满足市场需求的程度,而人工智能技术可以辅助开发者更快地完成工作,来避免花费时间在重复性工作上。

  2. 代码审核:如何使代码审核的流程更加便捷、更加自动,能更好地发现其中的错误,并且提供一个更佳的修复建议?人工智能技术可以帮助检测错误并提供修复建议,从而提高代码审核的效率和准确性。

  3. 代码运行:如何更加智能地发现代码运行在实际生产环境中运行可能出现的错误,又如何改进运行中可能发现的性能缺陷?目前,智能监控和观测可以帮助快速发现并解决代码运行中的错误和性能缺陷。

6591e7971119628147603ea80d6d70d2.png

面向未来的 DevOps

人工智能技术在 DevOps 中的应用越来越广泛,尤其是生成式 AI 技术。

自从跨时代意义的 Transformer 论文在 2017 年发表之后,生成式 AI 就已经开始在学术界逐渐崭露头角。去年,OpenAI 推出的 ChatGPT,极大引发了全球关注。不仅如此,不同的厂商、社区、研究机构和公司都在生成式 AI 领域做了大量的工作。

5 年多来,大模型的效率和性能都有了显著提升,这使得大模型可以在越来越多的场合进行应用。

亚马逊云科技提供高效的开发者工具通过生成式 AI 为开发者提供帮助。

8a5808c7696e768a01c5f4d5f6626a10.png

Amazon CodeWhisperer

Amazon CodeWhisperer 的主要特点:

  1. 多语言支持和 IDE 集成:CodeWhisperer 支持多种语言,包括 Java、Python、C 和 C++ 等,并且可以与主流的 IDE 集成,如 Visual Studio Code 和 IntelliJ 等。

  2. 完全免费:该工具是完全免费的,只需要注册亚马逊云科技的 Builder ID 即可开始使用。

  3. 避免偏见:CodeWhisperer 能够帮助开发者构建面向任何人群的应用。

  4. 生成各种类型的代码:CodeWhisperer 能够生成各种类型的代码,甚至可以生成数据结构中的代码。

  5. 高效生产力:使用 CodeWhisperer 可以有效提高开发者的效率。在 CodeWhisperer 生产力挑战赛中,使用该工具的参与者,完成所有任务的可能性提高了 27%,而相对于未使用该工具的参与者,这个概率速度增加了 57%。

b2199ed2c3777d6f3a079bfc67cc5e1c.png

CodeWhisperer 的三大主要功能:

  1. 代码生成:CodeWhisperer 可以生成任何类型的代码,包括数据结构中的代码等等。它具有自主学习能力,可以根据开发者的风格生成和其模式相匹配的代码,使得代码风格更加协调,帮助开发者提供更好的代码建议。使用 CodeWhisperer 可以大大提高开发者的效率。

 

  1. 参考跟踪:CodeWhisperer 可以根据函数生成相应的代码参考引用,即 reference 以及代码的引用源,为开发者提供多种建议。尤其对于企业商业化过程中需要选择开源数据和代码构建应用的典型应用场景来说,这个功能至关重要。

 

  1. 安全扫描:安全对于代码来说至关重要, CodeWhisperer 利用其 AI 能力进行代码扫描,检测代码中的安全漏洞,并提供修复建议。工具支持多种编程语言来扫描难以发现的安全建议。对于企业用户来说,可以进行身份认证和单点登录的配置,以便更好地进行权限管理和协作。

 

CodeWhisperer 是如何生成代码的呢?

7ce97b666e9ef07f2bc32e5539059b39.png

首先,在 IDE 中编写一些代码,然后 IDE 自动将其发送到 CodeWhisperer 中。CodeWhisperer 会进行实时的代码建议,并给出源代码的参考,进行安全扫描。其次,它会返回代码建议,给开发者更多选择的权利。最后,开发者可以根据 CodeWhisperer 提供的多个代码建议进行选择,进行确认。

Amazon CodeGuru

代码审核是软件开发过程中不可或缺的一部分。它有助于提高代码性能和错误处理能力,以及整体性能效率。

人工智能技术在代码审核中扮演着重要的角色,尤其是在发现低效率代码和进行日志和调试分析方面。

然而,代码审核也存在着一些挑战,比如:如何改进代码性能、缺乏行业标准和最佳实践等。开发者需要不断积累经验,对代码进行不断改进,以提高性能效率,并解决可视化最昂贵代码行的问题等等。

5aa58fc9f7c88cb07bacfe6d263d0f38.png

Amazon CodeGuru 是一项开发者服务,旨在帮助开发者提高代码审核和优化性能效率。它包含两个小组件:

  • CodeGuru Reviewer 用于代码审核和修改建议;
  • CodeGuru Profiler 用于检测和优化最昂贵的代码行,提高代码性能。

CodeGuru Reviewer:自动化代码审核

0cc050922b43d479e4e6fd4df83bd277.png

CodeGuru Reviewer 类似于人工审核,但使用了人工智能技术来加速整个流程。它支持 Java 和 Python 两种语言,和 Amazon CodeCommit、GitHub 等代码库。审核完成后,开发者可以根据修改意见进行代码修改,并将代码合并到原来的代码库中。

对于 Java 语言,CodeGuru Reviewer 提供了许多亚马逊的最佳实践,包括并发处理、资源泄露等。同时,它还支持安全问题的审核,以帮助开发者构建更安全的 Java 应用程序。对于 Python 语言,CodeGuru Reviewer 同样提供了许多最佳实践,包括如何更好地使用标准库、如何进行错误处理以及如何解决资源泄露等问题。

CodeGuru Profiler:性能调优工具

b2a00e99c7ec94ebc0f649906804c0b1.png

CodeGuru Profiler 用于查找性能最低的代码行,以帮助开发者优化代码性能。它支持 Java 和 Python 两种语言,在 Lambda、EC2、ECS、EKS、Fargate 等平台上运行。CodeGuru Profiler 安装一个小型代理程序来收集观测性数据,并将其传送到后端进行可视化分析。这个代理程序占用的 CPU 利用率不到 1%,对生产系统的影响几乎可以忽略。

CodeGuru Profiler 可视化展示了系统的性能数据,以帮助开发者发现性能瓶颈。它可以查找最耗时的代码行,并提供优化建议。这个工具可以帮助开发者在生产系统中解决性能问题,提高系统的性能和可靠性。

在 Amazon Prime Day 中,CodeGuru 得到了广泛的应用。通过 CodeGuru 的使用,整个系统的 CPU 效率提升了 300% 以上,成本降低了将近 40%。这使得整个系统的性能得到极大的提升,满足了更多消费者网购对于平台性能的需求。

AI 实现可观测

可观测性在 DevOps 中扮演着重要的角色,通过观测能够帮助开发者获取系统的修改建议、以及代码调整、开发测试的洞察等,可以帮助我们提升整个系统的运作效率。

在大规模运营中,我们需要对不同的指标进行观测,包括资源指标、监控指标和日志指标等。然而,随着系统越来越复杂,需要更多的资源来进行监测,为了避免出现问题,我们需要更加自动化、智能化的工具来帮助我们进行大规模运维。

137b810c6d2c83cd6e0d39d6e07004a1.png

选择要观测哪些指标是一个挑战,需要有针对性地监测应用和数据库等各个方面。有时候可能会漏掉一些问题,甚至对于开发者认为不会出现的问题也可能经常出现,这给 DevOps 团队带来了很多的困扰和加班的压力。因此,我们需要一个更加自动化、智能化的工具来帮助我们进行大规模的运维。

f935338d783f6ae4c596affa9dfcd0dc.png

可观测性的成熟度模型通常被分为从 1 到 4 这样四个级别。

最简单的是基础设施监控,只实现一些基本的监控,提供了一些简单的可视性。而最高级别则是自我修复的能力,通过持续的反馈回路自动解决问题。然而,对于有些系统来讲,实现最高级别的自我修复能力可能是非常遥不可及的。因此,针对不同的系统和不同的能力,构建一个可观测性成熟度的矩阵可以不断提升自己的能力。

d6cf75f719dcecc400229c5b580b7d08.png

亚马逊云科技提供了很多能力和服务来帮助大家构建一个成熟的可观测性体系,从基本的 CloudWatch、CloudTrail 到高级的服务如 DevOpsGuru、CodeGuru Profiler、X-Ray 等等。此外,也有很多可观测开源项目可以在云上方便地使用。

DevOps Guru 监控系统

亚马逊云科技的 DevOps Guru 监控系统是一个完全托管的服务,由人工智能提供支持,帮助企业自动创建调整警报,进行异常检测,解决持续观测中的问题,提供预防性建议,以及将人工智能技术与大规模运营整合,提升企业开发者的 DevOps 能力。

在使用 DevOps Guru 监控系统时,我们需要确定要监控哪些资源。这里有很多要监控的资源,所以需要进行统一的策划和部署。可以使用标签、CloudFormation 或自定义边界来选择要监控的资源群,然后设置通知。有很多通知方式,包括 SNS、事件、桥接、系统管理器等等,可以帮助快速响应通知警报,定义整个代码群应用。

接下来,我们将进行两种洞察方法:被动式和主动式。

被动式洞察称为反应式洞察,会在适当的时候进行检测,使用数十个指标、事件、日志等来监测,发现因果关系,解决各种问题。

主动式洞察则是更前瞻性的,可以预测故障和问题,早期发现、早期解决,更好地服务运营。预防是比解决问题更为重要、也更复杂的过程。

因此,我们需要将被动式和主动式的洞察方式进行整合,构建更好的可观测性体系。

这是 DevOps Guru 洞察的一个示例:

451a89b40b398ed7c09cde69d4a5ab7d.png

这里可以看到全面的展示,包括不同的指标和曲线,展示系统的观测和运营情况。此外,还提供了修改建议的操作方式。使用 DevOps Guru,可以自动化地创建和监测资源的度量,为快速缓解提供前瞻性的意见,实现更多的机器学习驱动的主动洞察,为整个 DevOps 运营提供帮助。

使用 DevOps Guru,可以大幅度提升报警创建、报警维护运营问题的性能,包括问题缓解和主动报警情况下。可以自动化地创建和监测资源的度量,为快速缓解提供可前性的验意见。使用 DevOps Guru 之前,通常无法实现主动性的见解。使用 DevOps Guru 之后,有更多的机器学习驱动的主动见解,为整个 DevOps 运营提供了良好的帮助。

这是在亚马逊云科技的平台中使用 AIOps 进行监控的整体架构图:

1de65287d656d9ff6d05aa31ed6c70cf.png

这是一个非常开放、非常全面的生态系统,可以连接到很多不同的指标数据和源,监控不同的日志跟踪记录等。同时,还可以进行异常检测、增强洞察等,有各种各样的维度向开发者进行各种仪表的展示和报警。同时,和很多第三方平台相结合,帮助进行更好的运营管理和故障排查。

大模型技术的进一步发展,也在影响更多的 DevOps 领域。同时 DevOps 也在不断的影响大模型的训练、调优和部署,使得大模型可以得到更快的开发和应用,通常我们称之为 LLMOps。

eec4d055e7bc8795ee3934edc59f1fff.png

总结

人工智能技术在 DevOps 中的应用越来越受到关注,可以通过代码生成、代码审核和监控观测三个维度来完全赋能 DevOps。希望能够通过本文的介绍为更多的 DevOps 开发者提供帮助。

请持续关注 Build On Cloud 微信公众号,了解更多面向开发者的技术分享和云开发动态!

往期推荐

#GitOps 最佳实践

#Generative AI 新世界

#架构模型最佳实践

e8ea70dc47f07d4e6989ba665d12f268.jpg

文章来源:
https://dev.amazoncloud.cn/column/article/64b913bdc15bee3a7e83a408?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=bokey

 

标签:帮助,CodeWhisperer,AI,CodeGuru,代码,面向未来,DevOps,开发者
From: https://www.cnblogs.com/AmazonwebService/p/17995091

相关文章

  • C# 使用自定义特性标注类的方法,直接在当前类中让Main函数调用它
    有的时候我们想要再Main执行一些代码,如果直接在里面写的话,下次再想用的时候就会把之前的代码删掉,好不容易写的代码不想删掉于是我们可以将这些代码写到类文件中,想要执行了,就在Main中调用该类的方法,但是有的时候我们又懒的去Main函数指定的,有没有什么办法能直接在新类中就能指定......
  • AI智能视频监控系统自动检测、识别工服工装,准确率更高!
    工服工装的识别在很多行业场景中都具有重要的意义,如公共场所监控、工地管理、人员安全、明厨亮灶、医疗卫生等,员工穿戴特定的工服工装已然成为各个行业的安全要求与标准。随着AI+人工智能技术的快速发展,工服工装识别技术得以应用于实际项目现场中,实现自动化、高效化的管理。方......
  • CF1764H Doremy's Paint 2 题解
    题目链接:CF或者洛谷高分题,感觉挺有意思的题,值得一提的是这个题的\(1\)和\(3\)版本却是两个基础题。一开始以为跟这道差不多:P8512[YnoiEasyRound2021]TEST_152题解。后面重新读了一下发现一个有趣的点:也就是是说操作的\(val\)并不太好搞了,如果\(val\)确定就基......
  • 烟火AI智能检测,让火灾无处遁形!
    一、方案背景近日,某县某校不幸发生火灾,目前已造成13人遇难,为此社会各界深感悲痛。在这一悲剧发生后,公众对火灾预防的关注度急剧上升。为了保障师生的人身安全和财产安全,越来越多的学校开始引入AI智能检测技术,通过运用AI智能烟火检测技术,对学校的周界、教室、走廊、公共区域、教学......
  • 探索Synthesys.io:解锁规模化生成AI内容的无限可能
    在数字化时代,内容创作的需求日益增长,而Synthesys.io正是为满足这一需求而生。这个平台提供了一站式的AI内容创作解决方案,让专业内容创作变得前所未有的简单。无论是视频、图像还是语音,Synthesys都能助你一臂之力。AI语音与人类形象的完美结合Synthesys的核心产品之一是AI语音和AI......
  • 安防视频监控平台LntonAIServer视频算法分析平台算法检测明烟明火预警
    今天,我要讲述的是一个关于智慧与安全的故事,它发生在LntonAIServer视频算法分析平台上,一个能够精准检测明烟和明火预警的高科技平台。想象一下,当夜幕降临,城市的喧嚣渐渐平息,大多数人沉浸在甜美的梦乡时,LntonAIServer却在无声中坚守着它的岗位。它的眼睛不眨不闭,通过高......
  • AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案
    作者:王佳、江昱、筱姜StableDiffusion模型,已经成为AI行业从传统深度学习时代走向AIGC时代的标志性里程碑。越来越多的开发者借助stable-diffusion-webui(以下简称SDWebUI)能力进行AI绘画领域创业或者业务上新,获得高流量及商业价值,但是面对多客户、高并发的复杂场景,使用原......
  • 解决MySQL设置时区时的错误Unknown or incorrect time zone: 'Asia/Shanghai'
    问题描述:在trino中配置了mysql.properties文件,但是通过trino客户端,执行命令showschemasfrommysql;查看数据库信息时报错:Errorlistingschemasforcatalogmysql:java.sql.SQLNonTransientConnectionException:Couldnotcreateconnectiontodatabaseserver.Attempted......
  • Gogs,支付宝沙箱支付,DevOps&CI/CD
    1.Gogs2.支付宝沙箱支付测试3.DevOps是生么4.CI/CD是什么1.Gogs是一款极易搭建的自助Git服务。Gogs的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git服务。使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括Linux、Ma......
  • 程序员 | 开发必备12个高效AI编程助手神器
    ⛳前言根据StackOverflow公布的开发者问卷调查报告,70%的受访者今年已在使用AI工具编程。AI浪潮下在程序员领域,未来,一定不是AI取代你,而掌握AI的人将取代你,这里整理12个高效AI助手,建议大家收藏使用~......