我目前正在从TFS 2015中的全站点发布管理迁移到基于Web的版本。我注意到的一件事是,在旧客户端中,您可以创建部署序列并配置操作并行运行,例如我可能同时运行这两个步骤:
SQLServer - DeployDatabase.ps1
AppServer - DeployWebApp.ps1
在基于网络的版本中,似乎只能连续设置“操作”(现在称为“任务”)的等效项。因此,当您将并行任务的概念扩展到多个服务器角色(所有执行独立步骤)时,您可以看到可能会造成大量时间损失。
为清楚起见,我知道您可以设置一个任务来定位一组服务器,但这将限制您一次只运行一种类型的任务。
所以我的问题是:这个功能是否存在?我错过了某个地方的伎俩吗?似乎新的基于Web的发布管理更侧重于并行环境部署方面的事情,忘记了在每个环境中尽可能快地部署的需要。
编辑:我上面描述的一个例子。
您可以看到我在具有环境的不同服务器角色上进行了并行部署。我理解Daniel Mann在答案中提出的建议是创建多个环境并相应地触发,添加多个“Envs”以满足这一要求的问题是我们失去了所有好的东西,比如快速复制和操作环境的能力。 IE我设置了DEV环境模板并复制这个“环境”以创建“QA”,但如果我有一个真正的“环境”的10个“环境”,那么我必须管理这个开销。感觉在新产品中可能已经删除了很大一部分可用性。还是我错过了这个新概念?
答案 0 :(得分:1)
2015年TFS的产品在这方面有点受限,但此后该产品一直在迅速改善。在TFS 2017(和VS Team Services)中,您可以为环境设置更强大的环境触发器和部署条件。这允许您“扇出”到多个同时环境,然后“扇入”到后续环境。例如,您可以使用如下所示的环境管道:
Dev
_____|_________
| |
QA Database Tier QA Web Tier
|_______________|
|
Staging
|
etc
只要有多个代理可用于运行它们,“QA”环境都可以并行独立部署。
但是,请记住,在TFS 2017和VS Team Services中,并发构建/部署的许可要求是不同的。 TFS 2015中的发布中心被视为“预览”,并没有就可以运行多少并发构建/部署管道的任何特定许可要求。