0
votes

I'm in the process of establishing a dedicated build machine with several build agents for doing CI/CD for multiple team projects.

I've configured one agent pool against our TFS server, and installed 10 agents from that pool as services on our machine.

Our work is mostly .net but we do have some python and js stuff as well.

My question is what are the pros/cons of using one machine with all the toolsets/dependencies?

Is there any good practice that i'm missing? I would love to hear some opinions.

1

1 Answers

1
votes

Yes you can run multiple agents in a single machine. You might want to have multiple build agents to be able to run builds in parallel.

The biggest advantage is that avoid all the upfront capital costs (physical servers, MSFT server licensing, etc). And you just need to deploy the build machine in one time (install the toolsets/dependencies etc).

However please note that builds are typically IO constrained (disk/network read/write speeds), also constrained by the memory/CPU consumed. So running too many parallel builds on one machine will actually degrade the performance. Also may affect calls to the TFS and possibly lead to time-outs.

Besides, you may need to install additional or upgrade software components on the build server and that may need a reboot to take effect, this may affect the current building. Although you try to limit this as much as possible, eventually you could end up with conflicting software as the project advances and interrupting the existing builds.

So, recommend you to deploy separate build servers with the agents installed separately on each of them. That means use multiple build agents to support multiple build machines (e.g.: with 3 build machines - and 3 build agents - to distribute the load).