Este único servidor Jenkins no fue suficiente para cumplir con ciertos requisitos como:
- A veces puede necesitar varios entornos diferentes para probar sus compilaciones. Esto no puede hacerlo un solo servidor Jenkins.
- Si se construyen proyectos más grandes y pesados de forma regular, un solo servidor Jenkins no puede simplemente manejar toda la carga.
Para abordar las necesidades mencionadas anteriormente, se introdujo la arquitectura distribuida de Jenkins.
Arquitectura distribuida de Jenkins
- ¿Cuál es la postura libertaria sobre la liberación de esclavos que no quieren ser libres?
- Cuando la esclavitud se volvió ilegal dentro de los estados del norte, ¿cuántos esclavos se vendieron realmente a través de una frontera?
- ¿Hubo casos de relaciones entre personas del mismo sexo entre esclavos africanos en Estados Unidos?
- ¿Por qué la ONU nunca ha recomendado gentilmente que ningún país se disculpe y pague reparaciones por la esclavitud y el colonialismo?
- ¿Cuál es la diferencia entre siervos y esclavos?
Jenkins usa una arquitectura Master-Slave para administrar compilaciones distribuidas. En esta arquitectura, Master y Slave se comunican a través del protocolo TCP / IP.
Jenkins Master
Su servidor principal de Jenkins es el maestro. El trabajo del maestro es manejar:
- Programación de trabajos de construcción.
- Envío de compilaciones a los esclavos para la ejecución real.
- Monitoree a los esclavos (posiblemente tomándolos en línea y fuera de línea según sea necesario).
- Grabar y presentar los resultados de la construcción.
- Una instancia maestra de Jenkins también puede ejecutar trabajos de compilación directamente.
Jenkins Slave
Un esclavo es un ejecutable de Java que se ejecuta en una máquina remota. Las siguientes son las características de los esclavos Jenkins:
- Escucha solicitudes de la instancia de Jenkins Master.
- Los esclavos pueden ejecutarse en una variedad de sistemas operativos.
- El trabajo de un Esclavo es hacer lo que se le ordena, lo que implica ejecutar trabajos de construcción enviados por el Maestro.
- Puede configurar un proyecto para que siempre se ejecute en una máquina esclava en particular, o en un tipo particular de máquina esclava, o simplemente deje que Jenkins elija la siguiente esclava disponible.
El siguiente diagrama se explica por sí mismo. Consiste en un Jenkins Master que gestiona tres Jenkins Slave.
Ahora veamos un ejemplo en el que Jenkins se usa para realizar pruebas en diferentes entornos como: Ubuntu, MAC, Windows, etc.
El siguiente diagrama representa lo mismo:
Las siguientes funciones se realizan en la imagen de arriba:
- Jenkins revisa el repositorio de Git a intervalos periódicos en busca de cambios realizados en el código fuente.
- Cada compilación requiere un entorno de prueba diferente que no es posible para un solo servidor Jenkins. Para realizar pruebas en diferentes entornos, Jenkins utiliza varios esclavos como se muestra en el diagrama.
- Jenkins Master solicita a estos esclavos que realicen pruebas y generen informes de prueba.
Consulte los dos blogs siguientes para obtener un conocimiento profundo sobre Jenkins:
¿Qué es jenkins?
Tutorial Jenkins