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

有关提高生成速度的建议

适用于此 Azure 精心构建的框架卓越运营清单建议:

OE:04 通过遵循经过行业验证的开发和测试做法,优化软件开发和质量保证流程。 对于明确的角色指定,请跨组件(如工具、源代码管理、应用程序设计模式、文档和样式指南)标准化做法。

相关指南有关标准化工具和流程 | 的建议,建议使用持续集成

本指南介绍了提高部署基础结构性能的建议。 请务必在产品开发的第一天启动并运行生成过程。 生成是持续交付系统的检测信号,因为生成状态会表明产品何时可部署。 内部版本提供有关产品状态的重要信息,因此应始终努力实现快速生成。

如果生成需要更长的时间,则很难解决生成问题。 当延迟发生并规范化时,团队往往不那么有动力解决问题。

关键设计策略

优化生成时间

若要更快地执行生成,可以:

  • 选择满足性能要求的代理:通过选择正确的生成计算机来加快生成速度。 速度快的计算机可以在小时和分钟之间产生差异。 如果管道位于 Azure Pipelines 中,则可以使用 Microsoft 托管代理运行作业。 使用Microsoft托管代理时,会为你负责维护和升级。 有关详细信息,请参阅 Microsoft 托管的代理

  • 优化生成服务器位置:生成代码时,数据通过网络发送。 从源代码管理存储库和项目存储库提取对生成的输入。 需要复制生成过程的输出,包括已编译的项目、测试报告、代码覆盖率结果和调试符号。 必须快速运行这些复制操作。 如果使用自己的生成服务器,请确保生成服务器位于源和目标位置附近。 快速上传和下载可以减少总体生成时间。

  • 横向扩展生成服务器:单个生成服务器可能足以满足小型产品的需求。 随着产品的大小和范围以及处理产品的团队数量增加,单个服务器可能不够。 达到限制时,在多台计算机上水平缩放基础结构。 有关详细信息,请参阅 创建和管理代理池

  • 优化生成

    • 添加并行作业以加快生成过程。 有关详细信息,请参阅配置并行作业并为其付费

    • 启用并行测试套件运行,这通常会节省大量时间,尤其是在运行集成和 UI 测试时。 有关详细信息,请参阅 针对任何测试运行程序并行运行测试。

    • 使用乘数的概念,可在其中通过多个生成代理横向扩展生成。 有关详细信息,请参阅在管道中指定作业

    • 请考虑将集成、UI 和冒烟测试移动到发布管道。 迁移到发布管道可提高生成速度和生成反馈循环的速度。

    • 将生成项目发布到包管理解决方案,例如 NuGet 或 Maven。 发布到包管理解决方案可以更轻松地重复使用生成项目。

最大程度地减少人工干预

组织可能会选择创建多种不同类型的生成来优化生成时间。 可能的生成包括:

  • 持续集成(CI)生成:此生成的目的是确保编译代码并运行单元测试。 每次提交时都会触发此生成。 它充当项目的检测信号,并立即向团队提供质量反馈。 有关详细信息,请参阅 指定触发管道的事件。

  • 夜间生成:夜间生成的目的不仅是编译代码,而且要确保每个生成在常规节奏上运行效率较低的任何更大的测试套件。 通常,这些测试包括集成、UI 或冒烟测试。 有关详细信息,请参阅配置管道的计划

  • 发布版本:除了编译和运行测试之外,此版本还编译 API 文档、符合性报告、代码签名以及每次生成代码时不需要的其他步骤。 此版本提供推送到发布管道的黄金副本,最终部署在生产环境中。

组织所需的生成类型取决于因素,包括团队的成熟度、你正在处理的产品类型以及部署策略。

Azure 便利化

Azure DevOps 是一系列服务,可帮助你构建协作、高效且一致的开发实践。

使用 Azure Pipelines 生成和发布服务,以支持应用程序的持续集成和持续交付(CI/CD)。

使用 适用于 Azure 的 GitHub Actions 自动执行 CI/CD 过程,并直接与 Azure 集成以简化部署。 还可以创建工作流,以便生成和测试存储库的每个拉取请求,或使用适用于 Azure 的 GitHub Actions 将合并的拉取请求部署到生产环境。

azure Pipelines本机提供Microsoft托管代理。 这些代理是一次性虚拟机,仅用于一个作业,然后被丢弃,为生成提供易于管理的选项。

卓越运营清单

请参阅完整的建议集。