Azure 集成 CICD 的最佳实践

Best practice for Azure Integration CICD

我们有一堆逻辑应用程序、Azure 函数、服务总线等,可满足多种集成用例的需求。所有资源目前都在开发资源组中,我们希望将其发布到测试中,并最终使用 CICD 发布到生产资源组中。

问题

您的问题的答案将根据您将要使用的部署模式以及您的资源在 ARM 模板中定义的结构而改变。

将资源部署到 Azure 资源组时,必须设置部署模式:

  • 完成:替换目标 RG 中的所有内容
  • 增量:仅将更改应用于目标 RG 内的资源,这些资源是部署包的一部分。

查看完整文档here

根据您构建 ARM 模板的方式(所有资源都在一个 ARM 模板中,每个资源 1 个 ARM 模板,...),您将能够定义 Azure 资源的目标量单个部署管道。

现在,回答您的问题:

  • Q1:确保在您的 ARM 模板中具有定义明确的结构。 例如,创建一个 infrastructure-ARM 模板 + CI/CD-pipelines,它将只处理基本组件的 creation/configuration,例如存储帐户、服务总线、... 接下来,创建一个 domain/interface-specific 模板 + 管道,它只处理单个界面所需的那些逻辑应用程序等。 这样,如果您 modify/fix 作为特定界面一部分的逻辑应用程序,将仅重新部署该特定界面。

  • Q2:即使使用增量部署模式,所有设置也会重新应用 -> 确保您的部署过程可以处理(重新)存储状态(如果需要)。