Desplegar Jenkins en Modo Maestro/Agente
Arquitectura
Esta arquitectura de referencia muestra cómo desplegar Jenkins en modo controlador/agente mediante el plugin Oracle Cloud Infrastructure Compute de Jenkins. Cuando se instala en una instancia de controlador de Jenkins, el plugin le permite crear instancias de agente a petición en Oracle Cloud Infrastructure y eliminar instancias o recursos gratuitos automáticamente después de que finalice el trabajo de creación.
Esta arquitectura contiene una instancia de controlador y dos instancias de agente como punto de inicio de un despliegue. Puede ajustar el número de instancias de agente o el tamaño de la instancia de controlador según sea necesario. La instancia del controlador de Jenkins se debe instalar con el código de plugin de Oracle Cloud Infrastructure.
Esta arquitectura utiliza una región con un dominio de disponibilidad y una subred regional. La misma arquitectura de referencia se puede utilizar en una región con varios dominios de disponibilidad. Recomendamos utilizar una subred regional para su despliegue independientemente del número de dominios de disponibilidad.
Esta arquitectura también contiene un equilibrador de carga y un gateway NAT para proporcionar acceso seguro a Internet.
El siguiente diagrama ilustra esta arquitectura de referencia.

Descripción de la ilustración jenkins-oci.png
Como alternativa a esta arquitectura, puede utilizar Oracle Container Engine for Kubernetes (OKE). Esta arquitectura es más fácil de configurar que OKE, pero OKE proporciona más flexibilidad a la hora de escalar el número de agentes que está utilizando.
La arquitectura tiene los siguientes componentes:
- Instancia de controlador Jenkins
Esta instancia informática virtual actúa como nodo de controlador. Supervisa el estado de las instancias de agente (fuera de línea o en línea) y recibe respuestas de resultados de tareas de los agentes.
- Instancias de agente de Jenkins
Estas instancias informáticas virtuales actúan como nodos de agente. El nodo de controlador los crea según sea necesario y realiza cualquier trabajo según lo indique el nodo de controlador.
- Región
Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones, y grandes distancias pueden separarlas (entre países o incluso continentes).
- Red virtual en la nube (VCN) y subredes
Cada instancia de Compute se despliega en un VCN que se puede segmentar en subredes.
- Dominios de disponibilidad
Los dominios de disponibilidad son centros de datos independientes e independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como energía o refrigeración, o la red de dominio de disponibilidad interna. Por lo tanto, es poco probable que un fallo en un dominio de disponibilidad afecte a los otros dominios de disponibilidad de la región.
- Dominios de errores
Un dominio de errores es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad tiene tres dominios de errores con energía y hardware independientes. Cuando distribuye recursos en varios dominios de errores, las aplicaciones pueden tolerar errores físicos del servidor, mantenimiento del sistema y errores de energía dentro de un dominio de errores.
- Equilibrador de carga
El equilibrador de carga distribuye el tráfico entrante al nodo de controlador de Jenkins y proporciona acceso a Internet a los usuarios que acceden al nodo de controlador. Recomendamos utilizar un equilibrador de carga de 100 Mbps porque se utilizará principalmente para conectarse al controlador de Jenkins y el flujo de tráfico de vuelta al usuario no será pesado.
- Puerta de enlace NAT
Un gateway de traducción de direcciones de red (NAT) proporciona servicio NAT. No tienes que elegir el tamaño de la puerta de enlace
- Host bastión
El host bastión es una instancia informática que sirve como punto de entrada seguro y controlado a la topología desde fuera de la nube. El host bastión se aprovisiona normalmente en una zona desmilitarizada (DMZ). Permite proteger recursos confidenciales colocándolos en redes privadas a las que no se puede acceder directamente desde fuera de la nube. La topología tiene un único punto de entrada conocido que puede supervisar y auditar con regularidad. Por lo tanto, puede evitar exponer los componentes más sensibles de la topología sin comprometer el acceso a ellos.
- Listas de seguridad
Para cada subred, puede crear reglas de seguridad que especifiquen el origen, destino y tipo de tráfico que se debe permitir dentro y fuera de la subred.
- Tabla de rutas
Las tablas de rutas virtuales contienen reglas para enrutar el tráfico desde subredes a destinos fuera de una VCN, normalmente a través de gateways.
Recomendaciones
Sus requisitos pueden diferir de la arquitectura descrita aquí. Utilice las siguientes recomendaciones como punto de partida.
- Unidades de computación (controlador de Jenkins)
Esta arquitectura utiliza dos unidades de máquina virtual (VM) de núcleo para el nodo de controlador de Jenkins. Un nodo de controlador es responsable de la distribución de tareas, la recopilación de resultados de nodos de agente y la supervisión de nodos de agente para su disponibilidad.
- Formas informáticas (agente de Jenkins)
Esta arquitectura utiliza cuatro unidades de computación de máquina virtual principales para los nodos del agente de Jenkins. Asegúrese de que la CPU de los agentes sea superior a la del nodo de controlador.
- Unidades de computación (host bastión)
Un host Bastion se utiliza para acceder a cualquier nodo de la subred privada. Se recomienda utilizar la unidad VM.Standard.E2.1 o VM.Standard.E2.2.
- VCN
Al crear un VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque en función del número de recursos que tiene previsto asociar a subredes en VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.
Seleccione bloques CIDR que no se solapen con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) en la que desea configurar conexiones privadas.
Después de crear un VCN, puede cambiar, agregar y eliminar sus bloques CIDR.
Cuando diseñe las subredes, tenga en cuenta sus requisitos de flujo de tráfico y seguridad. Conecte todos los recursos dentro de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.
Utilice una subred regional.
- Listas de seguridad
Utilice listas de seguridad para definir reglas de entrada y salida que se aplican a toda la subred.
Esta arquitectura permite que ICMP sea internamente para toda la subred privada.
Consideraciones
- Rendimiento
Para obtener el mejor rendimiento, asegúrese de que el nodo de controlador Jenkins tenga suficientes núcleos y memoria. Según la creación u otras tareas que ejecuten los nodos de agente, cree nodos de agente con suficientes núcleos y memoria.
- Disponibilidad
El nodo de controlador de Jenkins supervisa los nodos de agente para obtener disponibilidad y genera un nuevo nodo según sea necesario. En una región con varios dominios de disponibilidad, puede crear una plantilla de despliegue (en el controlador de Jenkins) para nodos de agente en diferentes dominios de disponibilidad.
- Costos
Ajuste el tamaño de las CPU en los nodos de controlador y agente según el despliegue de carga de trabajo esperado. Puede cambiar las unidades de nodo en la consola, de modo que comience con un recuento de CPU más pequeño (preferiblemente dos) y amplíe según sea necesario. Especifique la unidad del nodo de agente con la plantilla Instance en el nodo de controlador.
- Supervisión y alertas
Configure la supervisión y las alertas sobre el uso de CPU y memoria para los nodos de controlador y agente, de modo que pueda ampliar o reducir la unidad de máquina virtual según sea necesario.
Desplegar
El código Terraform para esta arquitectura de referencia está disponible en GitHub. Puede extraer el código a Oracle Cloud Infrastructure Resource Manager con un solo clic, crear la pila y desplegarlo. También puede descargar el código de GitHub en el equipo, personalizar el código y desplegar la arquitectura mediante la CLI de Terraform.
- Desplegar mediante Oracle Cloud Infrastructure Resource Manager:
- Haga clic en
.
Si aún no está conectado, introduzca las credenciales de arrendamiento y usuario.
- Revise y acepte los términos y condiciones.
- Seleccione la región en la que desea desplegar la pila.
- Siga las instrucciones y peticiones de datos en pantalla para crear la pila.
- Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
- Espere a que se complete el trabajo y revise el plan.
Para realizar cualquier cambio, vuelva a la página Detalles de Pila, haga clic en Editar Pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.
- Si no son necesarios otros cambios, vuelva a la página Detalles de Pila, haga clic en Acciones de Terraform y seleccione Aplicar.
- Haga clic en
- Despliegue mediante la CLI de Terraform:
- Vaya a GitHub.
- Descargue o clone el código en su computadora local.
- Siga las instrucciones de README.
Explorar más
- Marco de mejores prácticas para Oracle Cloud Infrastructure
- Cree un pipeline de despliegue e integración continuos con el servicio Oracle DevOps
- Cree un pipeline de integración y despliegue continuos para despliegues en la nube con las acciones de GitHub y el servicio Oracle Cloud Infrastructure DevOps.
- Configurar un pipeline de integración y despliegue continuos para despliegues en la nube
Log de cambios
Este log muestra solo los cambios significativos:
5 de mayo de 2022 | Agregó la opción para descargar versiones editables (. SVG y . DRAWIO) del diagrama de arquitectura. |
Noviembre de 10, 2020 | Se han agregado pasos para desplegar la arquitectura mediante Oracle Cloud Infrastructure Resource Manager. |