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:
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!