Aproveche el verdadero poder de CI/CD con Tekton y Kubernetes Pipelines

La introducción de las pipelines de Kubernetes (Tekton) ha supuesto una revolución en la forma de gestionar los flujos de trabajo de CI/CD en el desarrollo de software. La incorporación de Tekton a Kubernetes, nos ha dado más poder y flexibilidad en la creación y gestión de pipelines. Este artículo se centra en la importancia de Kubernetes Pipelines y Tekton en Red Hat OpenShift, y en cómo estas herramientas pueden ayudarte a que tu proceso de desarrollo sea realmente continuo.

¿Qué es una “pipeline”?

Una pipeline es un proceso automatizado que conduce el software a través de las etapas de construcción, prueba y despliegue del ciclo de vida del desarrollo de software. En otras palabras, una pipeline ejecuta el flujo de trabajo de Integración Continua y Entrega Continua (CI/CD). Gestiona automáticamente las tareas de ejecución del conjunto de pruebas, el análisis del código, la creación de binarios, la contenerización y el despliegue de los cambios en la nube o en las soluciones locales.

¿Por qué debería construir pipelines con Kubernetes?

A medida que el mundo del desarrollo avanza hacia la adopción de aplicaciones basadas en microservicios en lugar de aplicaciones monolíticas, el proceso de CI/CD se ha convertido en algo verdaderamente continuo con actualizaciones incrementales de la base de código que se pueden desplegar de forma independiente.

En un entorno así, Kubernetes simplifica el proceso de creación y mantenimiento de canalizaciones CI/CD. Despliega cada microservicio en un único clúster de Kubernetes y mantiene varias copias de cada microservicio para que sirvan como versiones de desarrollo, prueba y producción.

Con los pipelines de Kubernetes, ya no es necesario reconstruir toda la aplicación durante cada compilación. En su lugar, Kubernetes actualiza el contenedor del microservicio y lo despliega a través del pipeline definido. Ya no es necesario escribir scripts de compilación, ya que Kubernetes se encarga automáticamente del proceso con sólo unas pocas opciones de configuración que proporcionamos. Esto reduce la posibilidad de errores humanos en el flujo de trabajo de CI/CD.

¿Qué es Tekton?

Tekton le permite llevar los pipelines de Kubernetes al siguiente nivel. Es un marco de trabajo nativo de Kubernetes y de código abierto para el desarrollo de canalizaciones CI/CD. Tekton proporciona extensiones a las definiciones de recursos personalizadas (CRD) en Kubernetes para facilitar la creación y estandarización de canalizaciones. Tiene soporte incorporado para el acoplamiento con herramientas CI/CD existentes en la industria como Jenkins, Jenkins X, Skaffold, Knative y OpenShift.

La integración en OpenShift de Tekton, denominada OpenShift Pipelines, introduce aún más potencia y flexibilidad en este sistema a través de las herramientas para desarrolladores de RedHat y OpenShift.

¿Por qué debería utilizar Tekton?

Los pipelines de Tekton utilizan clusters de Kubernetes como tipo de primera clase y contenedores como sus principales bloques de construcción. La naturaleza desacoplada de Tekton garantiza que pueda utilizar una única canalización para desplegar en clústeres Kubernetes separados. Esto facilita el despliegue de servicios en múltiples soluciones en la nube suministradas por diferentes proveedores o incluso en sistemas locales.

Tekton permite ejecutar las tareas automatizadas de forma aislada, sin que se vean afectadas por otros procesos que se estén ejecutando en el mismo sistema. Otra especialidad de Tekton es la flexibilidad que proporciona para cambiar los recursos, como los repositorios de GitHub, entre las ejecuciones de la tubería.

También facilita el cambio de implementación de la tubería en función del tipo de recurso. Por ejemplo, puede configurar una implementación única para manejar imágenes.

Tekton acoplado a OpenShift garantiza una alta disponibilidad del sistema al permitir que cada unidad escale de forma independiente bajo demanda. Además, Kubernetes incorpora herramientas de registro y supervisión mejoradas y funciones de autorrecuperación rápida.

¿Cómo funciona Tekton?

Tekton proporciona CRDs al estilo de Kubernetes para declarar pipelines CI/CD. Los recursos se declaran en un yaml que, normalmente, se almacena con el repositorio de código. Vamos a considerar los CRD básicos que son esenciales a la hora de crear tuberías.

Tarea

Una Tarea es la unidad configurable más pequeña de una pipeline Tekton. Es similar a una función que acepta un conjunto de entradas y produce ciertos resultados. Cada tarea puede ejecutarse de forma individual e independiente o como parte de la cadena de producción. Un comando ejecutado por una Tarea se llama Paso. Cada tarea consta de uno o varios pasos. Tekton ejecuta cada tarea en su propio pod de Kubernetes.

Tubería (pipeline)

Una pipeline consiste en un número de tareas que forman el flujo de trabajo final automatizado de CI/CD. Además de las tareas, también contiene PipelineResources. Se proporcionan como entradas y salidas a las Tareas de la Red.

PipelineResource

Un PipelineResource es un objeto que se utiliza como entrada o salida de una Tarea. Por ejemplo, si la tarea acepta un repositorio de GitHub como entrada y construye y emite la imagen Docker relacionada, ambos se declaran como objetos PipelineResource.

PipelineRun

Un PipelineRun es una instancia de un Pipeline que se está ejecutando. Inicia la ejecución del Pipeline y gestiona los PipelineResources pasados a las Tareas como entradas y salidas.

TaskRun

Una TaskRun es una instancia en ejecución de una Tarea. PipelineRun crea objetos TaskRun para cada Tarea en el Pipeline para iniciar la ejecución.

Disparador

Un Trigger es un evento externo que desencadena el flujo de trabajo CI/CD. Por ejemplo, un pull request de Git podría actuar como un Trigger. La información transmitida con la carga útil del evento se utiliza entonces para activar las tareas en la canalización.

Condición

Las condiciones son similares a las sentencias if de la programación normal. Realizan una comprobación de validación con respecto a las condiciones proporcionadas y devuelven un valor Verdadero o Falso. El pipeline comprueba estas condiciones antes de ejecutar una tarea. Si la condición devuelve True, la tarea se ejecuta, y si devuelve False, la tarea se omite.

Con estos componentes, puede crear canalizaciones complejas y totalmente automatizadas para crear, probar e implantar sus aplicaciones en la nube o en soluciones locales.

¿Quién debe utilizar Tekton?

Los ingenieros de plataforma que construyen flujos de trabajo CI/CD para los desarrolladores de una organización encontrarán en Tekton un marco ideal para hacer este proceso más sencillo. Los desarrolladores también pueden crear flujos de trabajo CI/CD con Tekton para proyectos de desarrollo de software y aplicaciones. Esto les permite gestionar fácilmente las diferentes etapas del proceso de desarrollo, como las versiones de desarrollo, prueba y producción del producto, con una interferencia humana mínima.

¿Qué es lo siguiente?

Consulte la documentación oficial de Tekton y OpenShift Pipelines para obtener más información sobre cómo configurar pipelines de CI/CD que satisfagan las necesidades de su organización con facilidad.

¿Necesitas ayuda?

Ofrecemos Kubernetes y OpenShift formaciones y podemos ayudarle a comprar, desplegar y gestionar su
Entorno OpenShift en IBM Power Systems
.

SiXe Ingeniería