¿De qué sirve amo y esclavo en Jenkins?

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

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