Here's my scenario, I have a list of task groups in Visual Studio online as such which take in parameters of MachineName (the target server):
Task1
Task2
Task3
Task4
And a group of servers:
SVR1
SVR2
SVR3
SVR4
At present, I have a deployment pipeline that effectively says (all on the same agent using the [None] Parallelism option):
Task1(SVR1)
Task1(SVR2)
Task1(SVR3)
Task1(SVR4)
Task2(SVR1)
Task2(SVR2)
Task2(SVR3)
Task2(SVR4)
etc...
These tasks must be executed in a specific order and no task should start on any server until all servers have received the previous task. The current deployment process is however not particularly scale-able. Every time we add an additional node, it adds around 1min 20s to deployment time.
What I want to do is:
Execute Task1 on all servers (Wait until all are complete)
Execute Task2 on all servers (Wait until all are complete)
Execute Task3 on all servers (Wait until all are complete)
etc.. you get the picture.
I've currently not found an example online that is exactly what I need and I don't have much experience in using VSTS to deploy in parallel.
Is there an easy way of doing this? Do I need to run multiple agents to get this to work or can it run several parallel tasks on the same agent?
Thanks in advance
You can add multiple agent phases for each task group (task1, task2 etc...):
servers
; value: SVR1,SVR2,SVR3,SVR4
)servers
(step1 variable) in Multipliers input boxservers
variable in taskOn the other hand, you can configure multiple agents in the same machine and pool, then specify agent number in Maximum number of agent input box of each phase to decrease the build/release time.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments