2
votes

We are on TFS 2017, on-premises installation. We have one TFS application server / source server and one build server. On the build server we have only one default build agent installed and the builds / releases are getting queued if more than one build / release is getting submitted.

Can we install more than one build agent on the single build server?

  • If so, having more than one build agent, will it ease the build by running them parallelly?
  • When setting up build / release definitions, do we have to tell the definition what build agent to use or will the TFS build automagically decide it?
  • Are there any cost / licence implications of running more than one build agent on one single server?
1

1 Answers

4
votes

Can we install more than one build agent on the single build server?

Yes.

If so, having more than one build agent, will it ease the build by running them parallely?

There's no conclusive answer. Will multiple agents let you run multiple builds in parallel? Yes.

Will this speed things up? Maybe.

Builds are typically I/O limited, which means the bottleneck is with how fast stuff can be read from and written to disks. More CPU/RAM, past a certain point, won't help.

One agent per server is definitely overkill. My rule of thumb is no more than two build agents per physical disk in a machine. RAM/CPU adjusted as necessary, depending on the size/complexity of the applications being compiled.

When setting up build / release definitions, do we have to tell the defintion what build agent to use or will the TFS build automagically decide it?

You can register build agents into agent pools and queues. You specify an agent queue to use in your build definition. The agent will be picked from that set of agents.

Are there any cost / licence implications of running more than one build agent on one single server?

Licensing is based on concurrency, not number of agents or number of build servers.

Documentation states:

"Users who have Visual Studio Enterprise subscriptions are assigned to VS Enterprise access level in the Users hub of TFS instance. Each of these users contributes one additional concurrent pipeline to each collection. You can use this benefit on all Team Foundation Servers in your organization."

Beyond that, there is no licensing consideration.

ref: https://docs.microsoft.com/en-us/vsts/build-release/concepts/licensing/concurrent-pipelines-tfs?view=vsts