你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将开发测试实验室与 DevOps CI/CD 管道集成

DevOps 是一种软件开发方法,它将软件开发 (Dev) 与系统操作 (Ops) 相集成。 系统提供符合业务目标的新软件功能、更新和修补程序。

DevOps 方法还包括:

  • 根据目标、使用模式和客户反馈设计新功能。
  • 在出现问题时修复、恢复和强化系统。

DevOps 方法的一个组件是持续集成 (CI) 和持续交付 (CD) 管道。 CI/CD 管道通过一系列步骤从源代码管理提交中提取信息、代码和资源来生成系统。 步骤包括生成、测试和发布。

可以在 CI/CD 管道中使用 Azure 开发测试实验室。 本文讨论如何在企业环境的 CI/CD 生成和发布管道中使用开发测试实验室。

DevOps 流中的开发测试实验室的优势

实验室应侧重于在某个功能领域工作的团队。 这种共同的关注点可实现更快更改,同时将任何负面影响限制在较小的群组中。 更改或问题发生在实验室环境中,而不会影响任何其他对象。

共同关注点允许共享区域特定资源,如工具、脚本和 Azure 资源管理器 (ARM) 模板。 开发人员可以使用共享资源,创建具有所有需要的代码、工具和配置的虚拟机 (VM)。 ARM 模板使用相应的 Azure 资源创建实验室 VM 和实验室环境。 这些模板动态创建资源,或通过使用自定义项创建基础映像。

例如,假设产品是安装在客户计算机上的独立系统。 开发测试实验室可以创建安装了客户软件、项目和配置的实验室 VM,以便快速进行内部循环代码测试。

在 DevOps 工作流中使用实验室的一些优势如下:

  • 集中访问:将实验室作为组件将特定生态系统与受限人员关联。 通常,在公共区域中或特定功能方面工作的团队或组会分配有一个实验室。

  • 云中的基础结构复制:开发人员可以快速设置开发生态系统,其中包含带有源代码和工具的开发人员 VM。 开发人员还可以创建几乎与生产配置完全相同的环境,以便更快地进行内部循环开发。

  • 预生产环境:CI/CD 管道的实验室可以同时运行多个不同的预生产环境或计算机来进行异步测试。 可以在实验室中部署和管理不同的支持基础结构和生成代理。

在 CI/CD 管道中使用实验室

CI/CD 管道是一个关键 DevOps 组件。 该管道将开发人员拉取请求中的代码与现有代码集成,并将代码部署到生产生态系统中。 对于开发测试实验室集成,并非所有资源都需要在实验室中。 例如,可以在实验室外部设置 Jenkins 主机,以增加资源的持久性。 下面是将实验室集成到 CI/CD 管道的一些具体示例。

构建

生成管道创建一个组件包,用于一起测试,然后交付以发布。 动态生成基础结构可实现更好的控制。 实验室可以是生成管道的一部分,放置生成代理和其他支持资源。 开发测试实验室可以限制实验室访问,进而提高生成代理的安全性并减少意外损坏的可能性。

由于一个实验室中可具有多个环境,因此每个生成都可异步运行。 生成 ID 是环境信息的一部分,用于唯一标识特定生成的资源。

测试

CI/CD 管道可以自动创建开发测试实验室资源(例如 VM 和环境),用于自动和手动测试。 管道使用生成信息项目或公式创建具有不同自定义测试配置的 VM。

发布

发布过程可以在部署代码之前使用开发测试实验室进行验证。 此过程类似于测试。 生产资源不应部署在开发测试实验室中。

自定义

Azure Pipelines 是 Azure DevOps Services 的一个组件,具有操作特定实验室中的 VM 和环境的现有任务。 Azure Pipelines 是管理 CI/CD 管道的一种方式。 可以将实验室集成到任何支持调用 REST API、执行 PowerShell 脚本或使用 Azure CLI 的系统。

某些 CI/CD 管道管理器具有可管理 Azure 和开发测试实验室资源的现有开源插件。 可能需要使用自定义脚本来满足管道的需求。 在执行任务时,请对服务主体采用适当的角色(通常是参与者)来访问实验室。

后续步骤