L'une des fonctionnalités les plus puissantes de Jenkins est sans aucun doute sa capacité à répartir les tâches de build sur un grand nombre de machines. Il est assez simple de configurer une ferme de serveurs de build, soit pour répartir la charge sur de multiples machines, soit pour exécuter des tâches de build dans différents environnements. C'est une stratégie très efficace qui peut potentiellement accroître de façon considérable la capacité de votre infrastructure d'IC.
Les builds distribués sont généralement utilisés soit pour absorber une charge additionnelle, par exemple pour absorber les pics d'activité dans les builds en ajoutant dynamiquement des machines supplémentaires selon les besoins, soit pour exécuter des tâches de build spécialisées sur des systèmes d'exploitation ou des environnements spécifiques. Par exemple, vous pourriez avoir besoin d'exécuter une tâche de build spéciale sur une machine ou un système d'exploitation particulier. Si vous avez besoin d'exécuter des tests web en utilisant Internet Explorer, vous devrez utiliser une machine Windows. Ou alors une de vos tâches de build pourrait être particulièrement consommatrice en ressources, et nécessite d'être exécutée sur une machine dédiée afin de ne pas pénaliser d'autres tâches de build.
La demande pour des serveurs de build peut aussi fluctuer dans le temps. Si vous travaillez avec des cycles de release de produit, vous pouvez avoir besoin de beaucoup plus de tâches de build en fin de cycle, par exemple, lorsque des tests fonctionnels ou de régression plus complets deviennent plus fréquents.
Dans ce chapitre, nous verrons comment configurer et gérer une ferme de serveurs de build en utilisant Jenkins.