Jenkins X is here to help you

 In CICD, DevOps, GitOps, Jenkins X

Lo más probable es que ya sepas qué es Jenkins y tal vez ya hace años que lo usas para automatizar todo tipo de cosas, especialmente el proceso de desarrollo de software con integración y entrega continuas.

Desde mediados de 2018 tenemos a otra herramienta en el escenario: Jenkins X. Esta es la primera publicación de una serie donde hablaremos sobre diferentes aspectos de esta herramienta poderosa y quizás no muy conocida.

Sí, puedes pensar que esta es solo una nueva versión del nombre del clásico Jenkins, pero en este caso es totalmente diferente. Jenkins X es una bestia completamente diferente.

Jenkins X es una nueva herramienta. Los creadores lo definen como una «forma de código abierto y obstinada para hacer entregas continuas con Kubernetes, de forma nativa«. Y sí, esto es exactamente lo que es. 🙂 Jenkins X ayuda a entregar su aplicación en un ecosistema de Kubernetes. Utiliza las mejores prácticas de DevOps y te ayuda a aumentar la velocidad de desarrollo.

Jenkins X combina y ejecuta una selección de herramientas para lograr su objetivo final: simplificar el proceso de CI / CD de tus aplicaciones en un clúster de Kubernetes. Algunas de las herramientas que Jenkins X usa para lograr eso son: Helm, Tekton, Prow, Draft, Monocular, ChartMuseum, Nexus, etc.

Viene en dos estilos:

  • Usando un servidor estático Jenkins
    • Admite GitHub, GitHub Enterprise, BitBucket Cloud, BitBucket Server, repositorios GitLab
    • Instala un servidor Jenkins monolítico y heredado en una JVM en un contenedor en un pod k8s que usa el mismo Jenkinsfile (basado en Groovy-DSL)
    • Todo el pod de Jenkins Server siempre se está ejecutando
    • Este no es un verdadero CD K8 nativo y, hasta donde sabemos, este tipo de instalación quedará en desuso.
  • Uso serverless pipelines Jenkins X  con Tekton y Prow
    • Al momento de escribir esto, solo es compatible con GitHub debido a restricciones de Prow
    • Utiliza un nuevo archivo jenkins-x.yml para definir las canalizaciones en lugar de Groovy-DSL Jenkinsfile
    • La ejecución de todas las pipelines crea nuevos pods on demand con todos los microservicios necesarios que se ejecutan solo cuando es necesario
    • Recomendamos este 🙂

Jenkins X puede crear un clúster Kubernetes completo o puede instalarse en un clúster existente que tengas. Admite todos los principales sistemas gestionados de Kubernetes, incluidos EKS (Amazon), GKE (Google), AKS (Azure) y también IBM Cloud, OpenShift y Pivotal. Y, por supuesto, también admite instalaciones Kubernetes on-premise.

Con Jenkins X es muy fácil implementar aplicaciones en un clúster de Kubernetes. Cuando confirmas tus cambios en un repositorio de Git, suceden muchas cosas:

Jenkins X flow

Figure 1: Flujo de implementación de Jenkins X (author: Viktor Farcic)

Y el resultado final es que tu aplicación está instalada en entornos de staging o producción (estos son los predeterminados, ¡pero puedes definir tantos entornos como necesites!).

Sí, puedes pensar que esto es algo muy complejo, pero no todos necesitan comprender todos estos detalles y / o comprender todos los componentes y servicios involucrados en el proceso de construcción e implementación. Para la mayoría de los usuarios, lo único importante que deben saber y / o comprender es que impulsar cambios en Git dará como resultado la ejecución de la pipeline (definida en el nuevo archivo jenkins-x.yml) y que la aplicación se instala en el lugar deseado. Jenkins X simplifica todo el proceso al hacer que los procesos complicados sean simples ‘automágicamente‘. 😉

Si quieres saber más sobre Jenkins X, estad atentos. ¿Deseas implementar Jenkins X en tu empresa? Contáctanos y estaremos encantados de ayudarte. Feel the Geko way!

 

Recommended Posts

Leave a Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.