How to deploy a distributed system across multiple servers in parallel using VSTS release process

Seb

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

starian chen-MSFT

You can add multiple agent phases for each task group (task1, task2 etc...):

  1. Add a variable to store servers (e.g. name: servers; value: SVR1,SVR2,SVR3,SVR4)
  2. Add multiple agent phases for each task groups (task1, task2 etc…)
  3. Configure execution plan for each agent phase (select a phase > Check Multi-configuration option > Specify servers (step1 variable) in Multipliers input box
  4. Then you can get a server from servers variable in task

On 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.

edited at
0

Comments

0 comments
Login to comment

Related

How to deploy to Azure Resource Group using VSTS release management

How to deploy the same stack across multiple regions using AWS CDK

Using sed command in for loop across multiple servers

Deploy to multiple servers using load balancer

How to manage websockets across multiple servers / workers

How to scale a trie across multiple servers

How to handle multiple configurations in VSTS Release management?

How to process multiple parquet files in parallel using Pyspark?

VSTS: Release and deploy a console application

GitlabCi deploy on multiple servers

Deploy SolrCloud to multiple servers

Speed Up Numpy Process Across Multiple Arrays in Parallel

How can I deploy a release with multiple artifacts

VSTS Deploy multiple pipelines

How to upload multiple jar files into Azure through VSTS using Azure App service deploy task

Using Quartz to Schedule Single Job Across Multiple Stateless App Servers

How can we execute WebUI feature file against multiple browsers using parallel runner or distributed testing?

How to execute exe in VSTS Release pipeline empty process

Run multiple commands in different SSH servers in parallel using Python Paramiko

How to batch convert 1000's of images across multiple sub directories in parallel using Image Magic

MySQL database across multiple servers

Substituting multiple variables in a list using a VSTS Release Definition

Minizinc, Gecode, how to get an identical solutions across distributed servers, with multi-solution model?

VSTS Release Agent 'Failed' to deploy to IIS Site

Octopus Deploy vs VSTS Release Tooling

VSTS How to Trigger a Deployment Containing Multiple Release Definitions

VSTS - deploy multiple web applications

Can we deploy sql code on Multiple database in parallel using flyway

How to run continuous integration in parallel across multiple Pull Requests?