问题描述
正在从Visual Studio的Web发布迁移到Azure DevOps,并且需要对如何”消耗”并行作业以及快速将他们的应用程序部署到多个目标地区有一些澄清,或者是否存在其他异步部署的方法。
他们的Web应用程序有一个单一的代码库,发布到15个不同的客户托管区域(都在Azure App Services上),每个客户在最终部署过程中都有自己的配置文件转换,例如:
当前,他们在Azure DevOps的”免费”帐户上的流程运行良好,但是由于过程在队列中运行(部署客户1
→ 部署客户2
→ …),每次部署到客户托管环境需要约一个小时。
为了让流程更流畅并以异步方式进行部署,他们昨天从计费区域购买了三个”并行作业”。部署的确变得更快,因为三个作业并行运行。然而,当它们完成后,在他们的帐户中没有并行作业可用。
学习门户中的术语谈到了每月资源,因此他们假设并行作业代理是一个一个月的购买(一次购买/一个月内多次使用)。
如果它们在完成后立即消耗掉,根据定价计算器,如果每周发布并使用15个并行作业,这将每月花费超过2000英镑(£35.34 * 15 * 4),这对于短时间的时间节省来说似乎昂贵得难以置信。
请问是否有人能够澄清这种情况,或者提供一种异步部署的替代方法?
解决方案
并行作业的消耗和购买情况
Azure DevOps中的并行作业代表着能够同时运行的任务数。用户购买的并行作业是按照每月的资源计算的,这意味着一次购买后,在一个月内可以随意使用这些并行作业,而不会再次收费。
购买并行作业后,你可以在组织设置的”并行作业概述”中看到它们。如果你购买了三个并行作业,它们应该在那里显示。如果没有,请尝试退出登录、清除缓存等,然后重新登录查看。
节省费用的替代方法
作为降低成本的替代方法,你可以考虑使用自托管代理。自托管代理是你在自己的虚拟机(VM)上运行的代理,可以根据你的需要来扩展或配置。自托管代理相对便宜,并且根据你安装代理的主机资源情况,它们可以运行得更快。
以下是一些关于不同项目类型的并行作业的信息:
– 公共项目: 有最多10个免费的Microsoft托管并行作业,每次可以运行最多360分钟(6小时),每月没有总体时间限制。
– 私有项目: 有一个免费的作业,每次可以运行最多60分钟,每月有1800分钟(30小时)的限制。你可以额外支付来获得并行作业。
– 自托管代理: 你可以设置自己的自托管代理,只需在VM上运行一个脚本,大约需要10分钟来设置每个代理。当然,你还需要在代理上安装所需的软件。自托管代理没有上述限制。
其他可能加速部署的方法
除了购买并行作业外,还有一些其他可能的方法来加速你的部署过程,具体取决于你已经配置的内容和你的需求。你可以考虑以下方法:
– 拆分流水线: 如果你的流水线超过了最大作业超时时间,可以考虑将流水线拆分为多个作业。这有助于避免超时问题。
– 优化流程: 回顾你的流水线配置,看看是否有可以优化的地方,例如减少不必要的步骤或并行处理任务。
– 并行任务: 在流水线中,你可以使用并行任务来同时运行多个步骤,从而提高效率。
总之,通过购买并行作业、使用自托管代理、优化流程以及并行任务,你可以更好地管理你的部署过程,提高效率并降低成本。请根据你的实际需求和预算来选择适合你的方法。
注意:在进行任何更改之前,请确保你对你的项目和流水线进行了充分测试,并备份了重要的数据和配置。如果你在部署过程中遇到任何问题,请及时与Azure DevOps支持团队联系以获取帮助。