适用于 IaaS 的 Azure Pipelines 体系结构

重要

适用于 IaaS 应用程序的 CI/CD 是使用 Azure DevOps 设计 CI/CD 管道的变体。 本文重点介绍如何将 Web 应用程序部署到 Azure 虚拟机。

希望灵活和精细地管理计算时,可使用 Azure 虚拟机托管自定义应用程序。 在整个开发生命周期中,虚拟机 (VM) 应遵循与平台即服务 (PaaS) 产品/服务相同级别的工程严谨性。 例如,实现自动化生成和发布管道,以将更改推送到 VM。

本文介绍了通过 Azure Pipelines 使用持续集成 (CI) 和持续部署 (CD) 实践将应用程序更改部署到 VM 的高级 DevOps 工作流。

体系结构

使用 Azure Pipelines 的 CI/CD 管道的体系结构示意图。

下载此体系结构的 Visio 文件

数据流

本部分假设你已阅读 Azure Pipelines 基线体系结构,并仅重点介绍将工作负载部署到 Azure 虚拟机的具体内容。

  1. PR 管道 - 与基线相同

  2. CI 管道 - 与基线相同,但为将 Web 应用部署到 IaaS 而创建的生成工件是 Web 部署包

  3. CD 管道触发器 - 与基线相同

  4. 将 CD 发布到过渡环境 - 与基线相同,但有 2 个例外:1) 下载的生成工件是 Web 部署包,2) 包部署到过渡 Azure 虚拟机。

  5. 将 CD 发布到生产环境 - 与基线相同,但有 2 个例外:

    a. 发布到生产环境的操作是通过更新 Azure 流量管理器以交换过渡和生产环境来实现的。 可以通过带有两个终结点的流量管理器配置文件(在其中启用生产环境并禁用过渡环境)来实现此策略。 若要交换过渡和生产环境,请禁用生产环境并启用过渡环境。
    b. 通过更新 Azure 流量管理器来将生产环境和过渡环境交换回来,可以完成回滚。

  6. 监视 - 与基线相同

组件

本部分假设你已阅读 Azure Pipelines 基线体系结构组件部分,并仅重点介绍将工作负载部署到 Azure 虚拟机的具体内容。

  • Azure 虚拟机使用 Windows 或 Linux 服务器按需提供大规模的安全虚拟化基础结构。 虚拟机在此体系结构中用于托管工作负载。

  • 使用虚拟机规模集可以创建并管理一组完全相同且负载均衡的 VM。 可以根据需求或定义的计划自动增减 VM 实例的数目。 规模集还可用于托管工作负载。

  • Azure 流量管理器是一种基于 DNS 的流量负载均衡器,可用于将流量分配到配置的终结点。 在此体系结构中,流量管理器是客户端的单一入口点,并配置了多个终结点,表示生产虚拟机和过渡虚拟机。 已启用生产虚拟机终结点并禁用过渡环境。

备选方法

本文重点介绍如何将 Azure 流量管理器用作负载均衡器。 Azure 提供各种可供考虑的负载均衡选项

注意事项

本部分假设你已阅读 Azure Pipelines 基线体系结构中的注意事项部分,仅重点介绍将工作负载部署到 Azure 虚拟机的具体注意事项。

卓越运营

  • 由于流量管理器基于 DNS,因此 IP 地址的客户端缓存会导致延迟。 即使可以在流量管理器中启用一个终结点并禁用另一个终结点,客户端仍会继续使用其缓存的 IP 地址,直到 DNS 生存时间 (TTL) 过期。 请考虑在第 4 层或第 7 层运行的 负载均衡选项

  • 请考虑实现环境,而不仅仅是过渡和生产环境,以实现回滚、手动验收测试和性能测试等功能。 若使用过渡环境作为回滚环境,则无法将该环境用于其他目的。

后续步骤