Azure数据工厂和DevOps中的选择性发布



我们有两个数据工厂(dev和prd(与Azure DevOps Git集成。中提到的CI/CD的所有设置https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment:

  • 不同功能分支的开发
  • 通过拉取请求实现主分支的不同功能
  • 发布到adf_Publish分支
  • 从ADF dev到ADF prd的Azure管道发布

我们想添加的一个附加要求是,可以对我们的prd数据工厂执行选择性发布。F.e.:新开发A已发布到我们的adf_publish分支,新开发A的验证仍在进行中。同时,需要尽快向ADF prd发布新的请求B(而不是作为修补程序(。然而,这目前被开发A阻止,该开发仍有待验证。因此,我们希望有可能只向我们的adf-prd发布请求B,并将开发A排除在该发布之外(因为它尚未经过验证(。

不幸的是,数据工厂本身不支持此功能(https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment)。我们正在Azure DevOps中寻找解决方案,但迄今为止运气不佳。有人能解决这个问题吗?

提前感谢,谨致问候,Jef

现在有一种方法可以从分支创建ADF构建工件,并使用该工件部署到上层环境,而不是在ADF UX中手动单击"发布"。使用此功能,您可以对分支进行如下分解:

功能分支(用于开发(

开发分支(针对尚未验证的内容(

主分支(对于已验证或需要发布到物理ADF的内容(

使用这个体系结构,你可以在功能分支中开发一个管道,将其推送到开发分支,在那里它可以有一个自动的CI构建管道来生成工件,这可以部署到DEV ADF,也可以仅用作验证步骤,一旦在你的开发分支中验证了东西,你就可以对部署到你的DEV或TEST ADF的主分支进行PR。

在这个例子中,你的新开发A将位于开发分支,而你的新请求B将直接推送到你的主分支,这将触发自动构建和部署到你想要的任何ADF。。。

请看我已经回答过的这个StackOverflow帖子,它非常彻底。

具有改进的CI/CD 的Azure数据工厂部署

不幸的是,这是ADF的CI/CD行为。由于没有选择性发布,在这之前,没有办法使用不同的分支模型来实现这一点,并且也得到了微软的支持。我发现处理这些并行开发的方法是使用特性标志(全局参数+管道内的if条件(。这是微软推荐的解决方案,我不认为这是一个解决方案,而是一个";变通办法";为了一些他们还没有弄清楚的事情。

另一种选择是为每个开发团队提供一个ADF,并将每个sprint视为一个发布。这可能会避免并发,从而将发布提升到QA和Production。

希望能有所帮助。

最新更新