适用于 IaaS 的 Azure Pipelines 体系结构
重要
适用于 IaaS 应用程序的 CI/CD 是使用 Azure DevOps 设计 CI/CD 管道的变体。 本文重点介绍如何将 Web 应用程序部署到 Azure 虚拟机。
希望灵活和精细地管理计算时,可使用 Azure 虚拟机托管自定义应用程序。 在整个开发生命周期中,虚拟机 (VM) 应遵循与平台即服务 (PaaS) 产品/服务相同级别的工程严谨性。 例如,实现自动化生成和发布管道,以将更改推送到 VM。
本文介绍了通过 Azure Pipelines 使用持续集成 (CI) 和持续部署 (CD) 实践将应用程序更改部署到 VM 的高级 DevOps 工作流。
体系结构
下载此体系结构的 Visio 文件。
数据流
本部分假设你已阅读 Azure Pipelines 基线体系结构,并仅重点介绍将工作负载部署到 Azure 虚拟机的具体内容。
PR 管道 - 与基线相同
CI 管道 - 与基线相同,但为将 Web 应用部署到 IaaS 而创建的生成工件是 Web 部署包
CD 管道触发器 - 与基线相同
将 CD 发布到过渡环境 - 与基线相同,但有 2 个例外:1) 下载的生成工件是 Web 部署包,2) 包部署到过渡 Azure 虚拟机。
将 CD 发布到生产环境 - 与基线相同,但有 2 个例外:
a. 发布到生产环境的操作是通过更新 Azure 流量管理器以交换过渡和生产环境来实现的。 可以通过带有两个终结点的流量管理器配置文件(在其中启用生产环境并禁用过渡环境)来实现此策略。 若要交换过渡和生产环境,请禁用生产环境并启用过渡环境。
b. 通过更新 Azure 流量管理器来将生产环境和过渡环境交换回来,可以完成回滚。监视 - 与基线相同
组件
本部分假设你已阅读 Azure Pipelines 基线体系结构组件部分,并仅重点介绍将工作负载部署到 Azure 虚拟机的具体内容。
Azure 虚拟机使用 Windows 或 Linux 服务器按需提供大规模的安全虚拟化基础结构。 虚拟机在此体系结构中用于托管工作负载。
使用虚拟机规模集可以创建并管理一组完全相同且负载均衡的 VM。 可以根据需求或定义的计划自动增减 VM 实例的数目。 规模集还可用于托管工作负载。
Azure 流量管理器是一种基于 DNS 的流量负载均衡器,可用于将流量分配到配置的终结点。 在此体系结构中,流量管理器是客户端的单一入口点,并配置了多个终结点,表示生产虚拟机和过渡虚拟机。 已启用生产虚拟机终结点并禁用过渡环境。
备选方法
本文重点介绍如何将 Azure 流量管理器用作负载均衡器。 Azure 提供各种可供考虑的负载均衡选项。
注意事项
本部分假设你已阅读 Azure Pipelines 基线体系结构中的注意事项部分,仅重点介绍将工作负载部署到 Azure 虚拟机的具体注意事项。
卓越运营
由于流量管理器基于 DNS,因此 IP 地址的客户端缓存会导致延迟。 即使可以在流量管理器中启用一个终结点并禁用另一个终结点,客户端仍会继续使用其缓存的 IP 地址,直到 DNS 生存时间 (TTL) 过期。 请考虑在第 4 层或第 7 层运行的 负载均衡选项。
请考虑实现环境,而不仅仅是过渡和生产环境,以实现回滚、手动验收测试和性能测试等功能。 若使用过渡环境作为回滚环境,则无法将该环境用于其他目的。