Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
In Desarrollo y DevOps Última actualización: 11 de septiembre de 2023
Comparte en:
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

En el desarrollo de software, los canales de CI/CD o integración continua/entrega continua ayudan a crear e implementar su código en diferentes entornos a través de un proceso automatizado.

Sin embargo, crear y mantener este canal en sí mismo podría convertirse en una tarea desafiante. Ingrese Pipeline como código: un enfoque en el que crea todo su proceso de CI/CD en formato de código. En lugar de depender de interfaces de usuario web y herramientas de arrastrar y soltar, utiliza archivos de configuración para definir cómo se creará, probará e implementará el código de su aplicación.

Pero antes de entrar en detalles sobre Pipeline como código y cómo puedes crear el tuyo, primero comprendamos qué es exactamente un pipeline.

What is a Pipeline in Software Development?

Etapas comunes del proceso de desarrollo de software

Una canalización en el desarrollo de software es una serie de pasos automatizados que toman los últimos cambios de código, ejecutan procesos específicos en ellos y los implementan en el entorno de su elección. Entendamos esto mejor con un ejemplo.

Imagine que tiene tres microservicios y ha agregado nuevas funciones a uno de ellos. Ahora desea ejecutar las pruebas unitarias a nivel de código. Una vez que pasen, también querrás comprobar si hay problemas de formato del código. A continuación, desea crear su código. Después de eso, desea implementarlo en dos entornos diferentes con varias máquinas en cada entorno. Finalmente, querrá ejecutar pruebas de integración para asegurarse de que sus cambios estén sincronizados con los otros servicios.

Puede optar por realizar todos los pasos anteriores manualmente. Pero eso le quitará mucho tiempo y será propenso a cometer errores. Entonces, ¿hay alguna manera de automatizarlos? ¡Sí! Puede crear una canalización y definir todos los pasos. A partir de entonces, cada vez que realice cambios en su código, podrá activar la canalización y no preocuparse por ningún paso manual.

Benefits of Pipeline as Code

Si utiliza herramientas como arrastrar y soltar, le resultará difícil realizar un seguimiento de los cambios, mantener la estandarización o promover la colaboración. Pipeline as Code es una mejor manera de definir su proceso de desarrollo de software.

Ayuda a mantener la coherencia. Al promover la automatización, se obtiene repetibilidad y se utiliza el mismo proceso para otros sistemas. Y al igual que el código de la aplicación, el código utilizado para definir su canalización promueve la colaboración.

#1. Consistencia

Estar definido en formato textual garantiza que nada suceda fuera de orden. Al aplicar un flujo de trabajo estándar para todas las compilaciones e implementaciones de aplicaciones, se obtiene coherencia y se reduce el riesgo de problemas inesperados.

Y con coherencia, también obtendrá controles de cumplimiento y seguridad. Garantizar una canalización coherente le permite definir sus análisis de seguridad y comprobaciones de vulnerabilidad de modo que nada se le escape.

#2. repetibilidad

Cree su canalización y configure la automatización. Además de la coherencia, su proceso automatizado garantiza que cada código de aplicación pase por las mismas etapas y comprobaciones.

Su código fluirá a través del mismo proceso de compilación e implementación cada vez que ejecute su canalización. Mantienes la repetibilidad en todas tus ejecuciones.

#3. Colaboración

Al ser el código el medio mediante el cual crea su canalización, promueve la colaboración. Varias personas de sus equipos pueden contribuir al mismo código, tal como lo hace usted con el código de la aplicación.

Pipeline as Code también le permite mantener el control de versiones y permitir revisiones de código. Esto garantiza que se sigan las mejores prácticas y que los posibles problemas se detecten a tiempo.

Ahora, profundicemos en cómo puede crear su propia canalización utilizando Pipeline como código.

Pipeline as Code in Jenkins

Video de Youtube

Cuando se trata de sistemas de integración continua e implementación continua (CI/CD), Jenkins es el servidor de automatización de código abierto líder. Con Jenkins, puede integrar fácilmente los cambios de código, automatizar las pruebas y la creación, e implementar software. Y puede hacer todo esto de manera confiable y eficiente.

Ya sea que sea un aficionado que intenta aprender más sobre los procesos de automatización o que esté creando sistemas empresariales complejos, Jenkins cumple con todos los requisitos únicos de su proyecto. Su abundancia de complementos y su comunidad en constante crecimiento pueden ayudarlo a aprovechar al máximo su automatización.

En Jenkins, un Pipeline es un conjunto de varios complementos diferentes definidos en un orden particular que crea su sistema CI/CD. Ya sean casos de uso simples o complejos, puede crear su canalización usando código con el Sintaxis del lenguaje específico de dominio (DSL) de canalización. El DSL está construido sobre Apache Groovy.

La base de Pipeline como código en Jenkins es la Jenkinsfile – un archivo de texto que contiene código que describe las diferentes etapas y acciones. Aprendamos cómo crear su canalización como código usando Jenkinsfile.

¿Cómo crear tu Pipeline como código?

Después de haber instalado e iniciado Jenkins, navegue hasta la interfaz de usuario web en su navegador. Es posible que tengas que iniciar sesión. A continuación, llegarás a la página principal del Panel de control. Comenzarás desde aquí y crearás tu canalización.

Tablero de Jenkins
  1. En el panel izquierdo, encontrará un Nuevo elemento del botón.
  2. Haga clic en él para navegar a la página siguiente.
  3. Una vez que esté en la nueva página, encontrará el mensaje para crear una Asunto.
  4. Dar un nombre en el Introduzca un nombre de artículo campo. Esto es obligatorio.
  5. Tenga en cuenta que se creará un directorio con el mismo nombre. Por lo tanto, es mejor evitar los espacios en blanco, ya que pueden provocar efectos secundarios no deseados.
  6. Después de eso, selecciona el Tubería opción y haga clic en el OK botón presente en la parte inferior de la pantalla.
  7. La Configuración se presenta la ventana.
  8. Haga clic en el Tubería en el panel izquierdo o desplácese hacia abajo hasta la sección Pipeline.
Jenkins Pipeline como etapa de creación de código

Comencemos con una canalización simple que puede configurar directamente desde la interfaz de usuario.

Cree una canalización como código directamente en Jenkins

Una vez que esté en la sección Pipeline, estará listo para crear su primer Pipeline como código.

Desde el Definición menú desplegable, seleccione la opción Script de canalización. Debajo encontrará un Guión área donde puede codificar su tubería. Jenkins mantiene el script creado aquí.

Jenkins le permite elegir entre dos estilos de codificación o sintaxis: sintaxis declarativa y sintaxis programada. Si bien Declarative es fácil de usar e ideal para canalizaciones simples, la sintaxis con script es para usuarios avanzados y para el diseño de flujos complejos.

Usando la sintaxis declarativa, cree 3 etapas simples: código de compilación, código de prueba e implementación de código usando el siguiente fragmento de código:

pipeline {
    agent any

    stages {
        stage('Build Code') {
            steps {
                echo 'This is the step for build...'
            }
        }
        stage('Test Code') {
            steps {
                echo 'This is the step to test...'
            }
        }
        stage('Deploy Code') {
            steps {
                echo 'This step deploys the code...'
            }
        }
    }
}

También puede utilizar la sintaxis programada como se muestra a continuación:

node {
    stage('Build Code') {
        echo 'This is the step for build...'
    }
    stage('Test Code') {
        echo 'This is the step to test...'
    }
    stage('Deploy Code') {
        echo 'This step deploys the code...'
    }
}

Haga clic en Guardar. Ahora, haga clic en el Construir ahora botón presente en el panel izquierdo. Esto activará la canalización que acaba de crear.

Una vez que finalice su canalización, puede verificarlo en el Historial de construcción. Si esta es su primera ejecución, haga clic en la compilación número 1 presente. A continuación, haga clic en Salida de consola presente en el panel izquierdo. Encontrará las 3 declaraciones de eco que tiene en el código de su canalización en cada etapa.

Salida de consola de Jenkins Pipeline como código

Crear canalización como código usando un archivo externo

Se vuelve un desafío mantener su canalización directamente en Jenkins cuando comienza a volverse complejo. En este caso, querrás crear un archivo externo y usarlo.

Antes de crear su canalización de Jenkins, necesita un repositorio externo y un sistema de control de versiones. Creemos un repositorio Git y alojémoslo de forma remota en GitHub. Creará su archivo Jenkins y lo almacenará aquí.

  1. Ve a tu cuenta de GitHub perfil. Puede crear una cuenta gratuita si no tiene una.
  2. Crea un nuevo repositorio. Nombralo personalizadoJenkins.
  3. En su máquina local, asegúrese de tener Git instalado.
  4. Cree un directorio en la ubicación que elija.
  5. Navegue dentro del directorio y abra su terminal.
  6. Inicialice un repositorio Git vacío usando el git init mando.
  7. Ahora, cree un nuevo archivo, que será su archivo Jenkins. vamos a nombrarlo archivo Jenkins personalizado.
  8. Escriba su canalización como código dentro de este archivo. Como ejemplo, utilice el que se menciona a continuación:
pipeline {
    agent any

    stages {
        stage('Build Code') {
            steps {
                echo 'This is the step for build defined in custom file...'
            }
        }
        stage('Test Code') {
            steps {
                echo 'This is the step to test defined in custom file...'
            }
        }
        stage('Deploy Code') {
            steps {
                echo 'This step defined in custom file deploys the code...'
            }
        }
    }
}
  1. Agregue el archivo recién creado a Git usando el comando git add --all en tu terminal.
  2. Confirme el archivo en Git usando el comando git commit -m "Created a custom jenkinsfile".
  3. Vincula tu repositorio Git local a tu repositorio remoto usando git remote add origin git@github.com:<your username>/customJenkins.git.
  4. A continuación, cargue el archivo en el control remoto (GitHub) usando git push --set-upstream origin master.

Ahora ha creado un repositorio remoto en GitHub que contiene un archivo Jenkins personalizado. Configuremos Jenkins para usar esto.

Configure Jenkins para usar Jenkinsfile desde GitHub

  1. Abra su panel de Jenkins.
  2. Cree una nueva canalización o haga clic en Configurar en el panel izquierdo de una tubería existente.
  3. Desplázate hacia abajo hasta Tubería .
  4. Desde el Definición desplegable, seleccione el Script de canalización de SCM .
  5. Seleccione Git en el SMC .
  6. Proporcione el enlace de su repositorio de GitHub en el URL del repositorio bajo Repositorios.
  7. Asegurar la Especificador de sucursal se establece como */master bajo Ramas para construir.
  8. Desplácese hacia abajo hasta Ruta del guión. Aquí, proporcione el nombre del archivo Jenkins como customJenkinsfile. Hacer clic en Guardar.

Después de eso, ejecute su canalización. Jenkins primero buscará su código del repositorio remoto. Luego creará una canalización utilizando el archivo Jenkins personalizado y ejecutará todas las etapas.

Pipeline remoto como código que muestra todas las etapas

Ahora ha creado con éxito su propio proceso de desarrollo de software utilizando Pipeline as Code. Además, ha habilitado el control de versiones en el script de su canalización. Ahora se puede realizar un seguimiento de cualquier cambio que realice en el código de su canalización con cada confirmación de Git. A continuación, es hora de analizar las mejores prácticas.

Best Practices for Writing Effective Pipeline as Code

Veamos las mejores prácticas que debe seguir al escribir su Pipeline como código.

  • Mantenga limpia su canalización y evite escribir demasiadas condiciones complejas.
  • Si está ejecutando demasiados comandos dentro de la canalización, divídalos en diferentes pasos.
  • Utilice archivos externos con control de versiones para su canalización como scripts de código.
  • Utilice las funciones del lenguaje de codificación, como Groovy, para integrar diferentes pasos.
  • Evite llamadas a Jenkins.getInstance o sus accesores para mitigar los problemas de seguridad y rendimiento.
  • No sobrescriba los comandos de canalización integrados como sh y timeout.
  • Cree herramientas o scripts externos para tareas complejas que requieren un uso intensivo de la CPU y conéctelos a su canalización.
  • Aproveche la amplia variedad de complementos existentes disponibles para Jenkins para abordar su caso de uso.
  • Asegúrese de haber incorporado el manejo de excepciones y errores, ya que las cosas pueden salir mal.
  • No haga que su Pipeline como código esté estrechamente acoplado con mucha lógica de negocios en su interior.
  • Utilice argumentos parametrizados siempre que sea posible para que su canalización sea reutilizable.

Pipeline como código: un enfoque simple para procesos complejos

En resumen, Pipeline as Code simplifica la automatización de su proceso de CI/CD al representar todo el proceso como código. Si bien las canalizaciones de CI/CD automatizan la creación, las pruebas y la implementación de los cambios de código, aprovechar Pipeline como código va un paso más allá. Le permite definir su flujo de trabajo en texto en lugar de depender de interfaces gráficas.

Con Pipeline as Code, se asegura de que cada paso de su flujo de trabajo se produzca en el orden correcto. Reduce el riesgo de encontrarse con problemas no deseados. Además, obtiene varios beneficios, como coherencia, repetibilidad y promoción de la colaboración.

Con esta guía, ahora sabe cómo crear sus propias canalizaciones utilizando Jenkins, una herramienta CI/CD ampliamente utilizada. Jenkins ofrece una plataforma potente y flexible para implementar Pipeline como código a través de su Jenkinsfile. Siga las mejores prácticas y cree workflows que abordan todos los casos de uso de su canalización.

Si desea obtener más información sobre Jenkins, puede consultar cómo crear su propia canalización de Jenkins.

  • Debanjan Choudhury
    Autor
    Con cinco años de experiencia en su haber, Debanjan es ingeniero de software sénior en una de las principales plataformas de comercio electrónico de la India. Le gusta simplificar la jerga técnica y la arquitectura compleja para otros entusiastas de la tecnología. Trabajo fuera… LEER MÁS
  • Rashmi Sharma
    Editora

    Rashmi tiene más de 7 años de experiencia en gestión de contenido, SEO e investigación de datos, lo que la convierte en una profesional con mucha experiencia. Tiene una sólida formación académica y ha realizado su licenciatura y maestría en aplicaciones informáticas…. LEER MÁS

Gracias a nuestros patrocinadores
Más lecturas interesantes sobre el desarrollo
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.
    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder