Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Jenkins — Avanzado

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • Jenkins

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a ingenieros DevOps y SRE con experiencia sólida en Jenkins que necesitan llevar sus instalaciones a producción con criterios de escala, resiliencia y gobierno, este curso aborda los retos operativos más complejos de la plataforma: desde la arquitectura de infraestructuras distribuidas con agentes dinámicos sobre Kubernetes o Docker hasta la gestión de secretos con bóvedas externas, pasando por la automatización completa de la configuración mediante JCasC, la construcción de Shared Libraries testeadas y versionadas, y el diseño de estrategias de alta disponibilidad con objetivos RTO/RPO explícitos. A lo largo de las ocho horas el participante trabajará sobre escenarios reales o simulados, optimizará pipelines con métricas antes/después medibles, evaluará la postura de seguridad de una instancia y argumentará con criterio técnico cuándo Jenkins sigue siendo la herramienta adecuada frente a alternativas CI/CD modernas, obteniendo al final un conjunto de decisiones de diseño documentadas y aplicables directamente en su entorno de trabajo.

  1. Comprender los principios de arquitectura de Jenkins distribuido —controller/agentes efímeros, modelos de escalado y aislamiento— y los fundamentos de Configuration as Code como base para instancias reproducibles y auditables.
  2. Optimizar pipelines existentes aplicando paralelización de stages, caching de dependencias y agentes efímeros, cuantificando la mejora con métricas reales antes y después de la intervención.
  3. Automatizar la configuración completa de una instancia Jenkins mediante un fichero jenkins.yaml que cubra plugins, credenciales por referencia y agentes, de forma que la instancia sea reconstituible desde cero.
  4. Diseñar e implementar una Shared Library versionada con funciones reutilizables, tests unitarios y documentación de API lista para ser consumida por múltiples proyectos.
  5. Evaluar la estrategia de seguridad de una instancia Jenkins identificando vectores de riesgo —credenciales expuestas, permisos excesivos, plugins obsoletos— y elaborar un plan de hardening priorizado.
  6. Integrar Jenkins con un sistema externo de gestión de secretos que garantice rotación automática sin modificar el Jenkinsfile, eliminando la dependencia del Credentials Store nativo para secretos críticos.
  7. Diseñar una estrategia de alta disponibilidad o disaster recovery para el controller, documentando RTO/RPO objetivos y el procedimiento de recuperación, y argumentar con criterio técnico los trade-offs de Jenkins frente a alternativas CI/CD modernas para un caso de uso concreto.

Bloque 1 — Infraestructura distribuida y escalado dinámico. Se estudia la arquitectura controller/agente de Jenkins, con énfasis en el aprovisionamiento dinámico de agentes efímeros sobre Kubernetes (Plugin Kubernetes) y Docker. Se analizan las decisiones de diseño relativas al aislamiento de builds, la gestión de recursos y el escalado horizontal ante cargas variables, incluyendo la comparación entre pools fijos y agentes bajo demanda.

Bloque 2 — Configuration as Code y reproducibilidad. Se aborda JCasC como mecanismo para describir en un único fichero YAML toda la configuración de la instancia: plugins gestionados con Plugin Installation Manager, credenciales referenciadas mediante variables de entorno o secretos externos, y la definición declarativa de nodos y clouds. El bloque pone el foco en el ciclo completo de bootstrap, actualizacion y validación de la configuración.

Bloque 3 — Optimización de pipelines. Se parte de un pipeline de referencia con métricas de tiempo base y se aplican técnicas concretas: paralelización de stages independientes, caching de dependencias en volúmenes persistentes o capas de imagen, y sustitución de agentes estáticos por efímeros. Cada intervención se mide con las herramientas de monitorización integradas en Jenkins (Pipeline Stage View, Build Time Trend) para obtener comparativas antes/después verificables.

Bloque 4 — Shared Libraries versionadas. Se diseña e implementa una biblioteca compartida alojada en un repositorio Git propio, con estructura estándar (vars/, src/, resources/), al menos tres funciones de utilidad reutilizables y tests unitarios con JenkinsPipelineUnit. Se cubre el versionado semántico de la librería, su registro en Jenkins y la documentación de API orientada a los equipos consumidores.

Bloque 5 — Seguridad e integración con gestión de secretos. Se realiza una auditoría guiada de una instancia Jenkins real o simulada, identificando los principales vectores de ataque: secretos en texto plano en logs o en el SCM, matriz de permisos sobredimensionada, plugins sin actualizar y acceso no autenticado a la API. A continuación se diseña el plan de hardening y se implementa la integración con HashiCorp Vault (o equivalente) mediante el plugin correspondiente, eliminando el almacenamiento de secretos críticos en el Credentials Store nativo y habilitando la rotación automática sin cambios en el Jenkinsfile.

Bloque 6 — Alta disponibilidad, disaster recovery y posicionamiento estratégico. Se analiza el modelo de disponibilidad del controller de Jenkins —punto único de fallo por defecto— y se comparan las estrategias de mitigación: backup periódico de JENKINS_HOME con restauración validada, instancia en espera caliente y soluciones basadas en operadores de Kubernetes. Para cada estrategia se definen y documentan los objetivos RTO/RPO y el runbook de recuperación. El bloque cierra con una evaluación crítica comparativa de Jenkins frente a GitHub Actions, GitLab CI y Tekton, razonando los trade-offs de coste operativo, flexibilidad de configuración, curva de mantenimiento y tamaño del ecosistema para un caso de uso empresarial concreto.

  • Acceso a un clúster Kubernetes funcional (Minikube, Kind, k3s o clúster en nube) con permisos para desplegar pods y namespaces.
  • Jenkins 2.x instalado localmente o accesible en el clúster, con acceso de administrador para instalar plugins y modificar la configuración global.
  • Docker Engine disponible en la máquina del participante para construcción y pruebas locales de imágenes de agente.
  • HashiCorp Vault (versión dev o instancia de laboratorio) accesible desde la instancia Jenkins, o acceso a un servicio equivalente de gestión de secretos.
  • Repositorio Git personal (GitHub, GitLab u otro) con permisos de escritura para alojar la Shared Library y los Jenkinsfiles de práctica.
  • Java 17 o superior y Maven o Gradle instalados localmente para ejecutar los tests de JenkinsPipelineUnit.
  • Editor de código con soporte YAML y Groovy (VS Code con extensiones recomendadas o IntelliJ IDEA).
  • Creación y mantenimiento de pipelines declarativos en Jenkins (stages, steps, agentes, credenciales básicas).
  • Uso del Credentials Store nativo y configuración de integraciones con SCM (GitHub, GitLab o equivalente).
  • Familiaridad con contenedores Docker a nivel operativo: construcción de imágenes, ejecución y volúmenes.
  • Nociones básicas de Kubernetes: pods, namespaces y manifiestos YAML.
  • Manejo de Git a nivel intermedio: ramas, tags y gestión de repositorios remotos.