使用 azure devops 的 ADF 部署是否会影响环境中现有的 Pipelines/Jobs

Will ADF deployment using azure devops affect existing Pipelines/Jobs in the environment

我正在 Azure 数据工厂中实施 azure devOps。

我的开发环境 ADF 已集成到 git 存储库。

我创建了一个构建管道,用于在 adf_publish 分支发生变化时构建工件。

我的下一步是将 ARM 模板工件部署到 PROD 环境。

假设在将 DEV 更改部署到 PROD 时,PROD 环境中有许多已触发的管道,而在 PROD 环境中 运行 正在运行的管道很少。

我的问题是:

  1. 如何将更改从 DevOps 部署到 PROD 环境?它会从 DevOps 中删除并替换所有管道和触发器,还是只选择更改并更新 PROD 环境而不触及未更改的管道?
  2. 假设在部署时管道 运行 在 PROD 环境中,该管道会发生什么 运行?
  3. 假设在 3:00 点有一个触发管道,部署在 2:55 开始并在 3:05 结束。应该在 3:00 运行 触发的管道会发生什么?

有没有人对以上问题有清楚的认识,或者有没有参考文献可以得到这些问题的答案?

我在ARM模板部署的时候经历过Keeping deployment mode as Incremental instead of keeping it as Complete。该选项会完成我上面提出的所有任务吗?

How the changes are deployed from DevOps to PROD environment? Will it delete and replace all the pipelines and triggers from DevOps or It will pick only the changes and update the PROD env without touching the unchanged pipelines?

这取决于您选择的部署模式。

  • Deployment Mode: This specifies the deployment mode in which the Azure resources specified in the template have to be deployed.
    Incremental mode handles deployments as incremental updates to the
    resource group .
    It leaves unchanged resources that exist in the
    resource group but are not specified in the template. Complete mode
    deletes resources that are not in your template.
    Validate mode
    enables you to find syntactical problems with the template before
    creating actual resources. By default, incremental mode is used.

Suppose a pipeline is running in PROD env at the time of deployment, what will happen to that pipeline run?

您的部署将失败,并且您可能会收到 409 冲突错误消息。你可以查看文档Best practices for CI/CD

Pre- and post-deployment script. Before the Resource Manager deployment step in CI/CD, you need to complete certain tasks, like stopping and restarting triggers and performing cleanup. We recommend that you use PowerShell scripts before and after the deployment task. For more information, see Update active triggers. The data factory team has provided a script to use located at the bottom of this page.

Suppose there is a triggered pipeline at 3:00 O clock and deployment starts at 2:55 and ends at 3:05. What will happen to that triggered pipeline which was supposed to run at 3:00?

与你的第二个问题类似,管道应该不会被触发(或处于待定状态),但我仍然没有实例来测试这种情况。