GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。
更多关于极狐GitLab :https://gitlab.cn 或者 DevOps 的最佳实践,可以关注文末的极狐GitLab 公众号。
学习极狐GitLab 的相关资料:
- 极狐GitLab 官网:https://gitlab.cn
- 极狐GitLab 官网文档:https://docs.gitlab.cn
- 极狐GitLab 论坛:https://forum.gitlab.cn/
- 极狐GitLab 安装配置:https://gitlab.cn/install
- 极狐GitLab 资源中心:https://resources.gitlab.cn
DevSecOps 是极狐GitLab 旗舰版的重要功能,旨在将多种安全扫描能力嵌入软件研发的各个阶段,以实现真正的安全左移。详细情况可以查看极狐GitLab 官网。
学习如何将人工智能在整个平台中集成,可以为组织及其 DevSecOps 团队带来实质性的回报。
生成式 AI 引入了一波新的创新,旨在帮助减轻软件开发和交付中许多繁琐的手动和耗时工作,从而加速 DevSecOps 的工作流。但要实现生成式人工智能的全部潜力,AI 能力不仅仅要加在代码创建的时候,而且要添加到软件研发生命周期的各个阶段。
根据我们的《2023年软件开发中的人工智能状况报告》显示,代码创建仅占开发人员时间的 25%。从第一次提交到生产的许多其他关键任务可以受益于人工智能的力量。
我们关注 A I可以被注入到软件研发生命周期的所有机会,以帮助创建更好、更安全的软件,更快地交付。例如,即使是检查失败的构建这样的常见事情,也可以通过使用 AI 来评估发生了什么问题以及如何解决来进行改进。虽然 AI 不能消除任务,但它可以帮助减少完成任务所需的步骤和时间。
以下是我们对话中的一些要点,可以帮助您开始利用 AI 在 DevSecOps 环境中的应用。
从评估工作流开始
要完全实现 AI 的影响,您需要做一些前期工作,包括重新审视您的工作流程。您需要了解您可以构建的理想工作流程,以确保在使用AI方面保持一致,并设置适当的防护措施以减少AI可能引入的任何风险。
例如,如果您正在使用生成式人工智能编写代码,那么生成的部分代码可能包含安全漏洞。这就是它的工作原理。因此,您需要一个工作流程来捕捉这些漏洞并降低它们进入生产的可能性。一旦有了这个工作流程,您就可以开始以更一致的方式引入许多AI功能,从而增加开发速度。
评估工作流程的方式可以改善您从AI获得的好处。虽然AI可以自动为您构建测试,但您不希望在代码已经创建后进行这样的操作。如同开发人员并不是质量保证团队的一部分,因为他们只测试他们编写的内容。生成式人工智能也是如此,因此您需要为由AI生成的测试设置工作流程,起始位置应提前一些——开发人员可以利用问题中的细节交互式生成他们想要编写的代码单元测试。通过考虑工作流程,他们可以首先使用测试创建合并请求,然后,当他们拉取分支开始处理实现时,他们的代码建议更加完善,因为上下文现在包括了适当的测试,他们的响应点击会比直接从代码开始更高。
您不能一次改变所有的工作流程,因此请确保专注于与您最大的软件开发和交付挑战相关的工作流程,例如现代化遗留代码库、处理安全问题增加或在成本和人员不断减少的情况下进行操作。
为AI设定防护措施
此外,您还需要考虑AI交互数据的风险,并确保设置保护措施以减轻风险,并满足您独特的合规需求。您需要考虑您正在使用的AI模型,是否正在访问向量数据库以及如何训练大型语言模型(LLM)。
对于这些问题,您需要让法律、合规和DevSecOps团队一起给您的AI提供商提出严格的问题。
另一个关键的保护措施是减少在软件开发生命周期中以及组织中使用的AI工具数量。使用的工具越多,引入的复杂性就越大,可能导致操作问题、监督挑战和安全风险。此外,使用大量工具会增加额外的开销成本。
衡量 AI 的影响
衡量生产力和其他关键指标的变化对于真正理解组织中AI的影响至关重要。通常,组织会从如何经常将代码交付到生产的角度、四个DORA指标或修复错误的时间等角度来查看结果。但这并不能提供全面的视角或动产。
在极狐GitLab中,我们通过在层次结构的团队和项目内构建工作流程的标准化,以便从团队到业务单元将指标汇总,并在用户界面内直接分析这些输出,来衡量AI的影响。
当您在这个架构之上实施 AI 时,您可以看到速度在增加,包括解决漏洞所需的时间,并验证合并请求是否有正确的审核者和正确的测试,这会减少经过代码审查流程所需的时间。您可以在极狐GitLab 内看到每个阶段,包括依赖关系,以及开发团队完成这些阶段所需的时间差。仪表板显示速度是如何的,并且基于这些数据作出关键决策变得更容易。例如,您可以决定是否发行软件到生产。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。