Dedicated Build Servers

Many CI gurus insist on using a dedicated machine for performing builds. Often referred to as build servers, these machines provide a number of benefits, but they also have some drawbacks. Whether you implement CI with or without a dedicated build server depends on your situation.

Dedicated Build Servers Isolate Build Activities

Using a dedicated build server prevents interference from other activities. Other activities may slow down or even halt a build due to limited resources or access issues.

The primary function of a build server is to build and test the project. Build servers doing double duty, such as hosting the test database for a web application or hosting the web server itself, will require more time to build the software. Small projects with few developers may be able to utilize a less powerful machine or allow the machine to perform other tasks without sacrificing build speed. However, large projects with many developers and frequent code check-ins will benefit from having a powerful, dedicated build server.

Dedicated Build Servers Provide a Well-Known Build Environment Configuration

Dedicated build servers allow you to build and test the product in a well-known environment. Users performing other tasks on a shared build server may load different versions of libraries and supporting software or make changes to the runtime or test environment resulting in build failures.

Build servers should not be used for prototyping, experimenting with new technologies, ...

Get The Art of Lean Software Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.