No existen problemas técnicos fundamentales con la ejecución de múltiples esclavos jenkins en la misma máquina. De hecho, Running Multiple Slaves en la misma máquina enumera varias buenas razones para hacerlo:
Si bien el uso correcto de los ejecutores evita en gran medida la necesidad de múltiples instancias esclavas en la misma máquina, hay algunos casos de uso únicos a tener en cuenta:
- Desea más configurabilidad entre los nodos configurados. Supongamos que tiene un conjunto de nodos para usar tanto como sea posible, y el otro nodo para usarse solo cuando sea necesario.
- Es posible que tenga varias instalaciones maestras Jenkins construyendo cosas diferentes, por lo que esta configuración le permitiría tener esclavos para más de un maestro en la misma caja. Así es, con Jenkins realmente puedes servir a dos maestros.
- Es posible que desee aprovechar la facilidad de iniciar / detener / reemplazar máquinas virtuales, tal vez junto con los complementos de Jenkins, como el complemento Libvirt Slaves .
- Desea maximizar su inversión y utilización de hardware, al mismo tiempo que minimiza el costo operativo (por ejemplo, gastos de servicios públicos para ejecutar esclavos inactivos).
En general , se prefiere el escalado, principalmente porque la capacidad de escalar está típicamente limitada por los tipos / tamaños de los recursos físicos disponibles.
En particular, para aumentar la potencia de compilación, recomendaría un análisis de su compilación real para determinar cómo utiliza los recursos de la máquina, cuáles son sus cuellos de botella y qué limitaciones de escalabilidad plantea revelar si la ampliación incluso ayuda.
Por ejemplo, encontré casos en los que el tiempo de compilación para 2 compilaciones paralelas en la misma máquina fue más largo que los tiempos de compilación combinados de las mismas 2 compilaciones ejecutadas secuencialmente (sin superposición) en la misma máquina. En tal caso, ni siquiera consideraría la ampliación, ya que en realidad disminuiría la capacidad general de construcción.