general,

Cluster Serverless de Jenkins en AWS

DevOpsGT DevOpsGT Follow Aug 20, 2023 · 2 mins read
Cluster Serverless de Jenkins en AWS
Share this

Muchos están familiarizados ya con Jenkins, una herramienta que tiene la flexibilidad de utilizarse en diferentes fases de nuestro workflow automatizado. Aunado a esto, las ventajas de soluciones serverless cada vez se hacen mas notorias, por lo que si podemos combinar ambas cosas sólo se nos ocurre que cosas buenas pueden salir de esto.

Jenkins Serverless en AWS

AWS ha publicado reciéntemente en su blog una forma de poder desplegar un cluster de Jenkins usando Amazon EKS. Los detalles de la configuración e instalación se pueden leer en el blog, sin embargo nos pareció interesante y te dejamos acá los puntos claves que valen la pena resaltar.

Cluster de Jenkins Serverless en AWS

El código final de la solución se puede descargar desde este repositorio https://github.com/aws-samples/serverless-jenkins-cluster-on-eks.

Serverless para contenedores

AWS Fargate es un motor serverless bajo demanda compatible con Amazon ECS (elastic container service) y Amazon EKS (elastic kubernetes service).

Comparación AWS Fargate

Como se puede notar en la imagen anterior, el uso de AWS Fargate minimiza la cantidad de trabajo necesario para provisionar toda la infraestructura necesaria para ejecutar contenedores (minimizando el trabajo de administración).

El uso de AWS Fargate permitirá entonces crear los nodos que nuestro jenkins necesite según lo consideremos necesario. Claro, sabemos que la data de los contenedores es hefímera, por lo que en este proyecto se utiliza Amazon EFS para poder mantener compartidas la data que los nodos del cluster vayan necesitando. La razón del porque en realidad se explica que es por facilidad de aprovisionamiento, porque también se pudieron utilizar otras soluciones tipo “Persistent Volume Claim” y los drivers de “container storage interface”.

Despliegue de Jenkins

Una vez hayas configurado tu cluster con AWS Fargate estarás listo para instalar jenkins. Esto lo realizan utilizando HELM el cuál es un administrador de paquetes en Kubernetes.

helm repo add jenkins https://charts.jenkins.io helm repo update helm install jenkins jenkins/jenkins -f jenkins-values.yaml -n jenkins

La prueba de fuego luego de instalar y configurar correctamente jenkins es notar que al lanzar un job dentro de este, su ejecución suceda serverless con lo cuál sería altamente escalable, altamente disponible y costo efectivo.

Conclusión

El concepto de serverless debemos manejarlo como esa capacidad de poder minimizar los esfuerzos en el sistema dejando a un lado todas las tareas de la administración de la infraestructura. Y para poder aprovecharlo de mejor manera, es importante familiarizarnos con las herramientas y servicios que precisamente nos permiten crear aplicaciones cloudnative de una forma mas óptima.

DevOpsGT
Written by DevOpsGT
Aprende sobre ideas, tecnologías y herramientas para tus tareas de devops