Puntos clave: Construir una pipeline CI/CD usando Jenkins automatiza el desarrollo de software, mejorando la eficiencia y la calidad. Los pasos clave incluyen instalar Jenkins, configurar Pipelines y ejecutar compilaciones usando diversos plugins para mayor flexibilidad.
- Jenkins permite la visualización de las etapas del pipeline e integración con múltiples herramientas.
- Ejemplos de Pipelines CI/CD basados en la nube, como Azure DevOps, ilustran operaciones simplificadas.
Una pipeline eficaz de integración continua (CI) y entrega continua (CD) están esenciales para que los equipos DevOps modernos puedan adaptarse al panorama tecnológico en rápida evolución. Combinado con conceptos ágiles, un pipeline fino de CI/CD puede agilizar el ciclo de vida del desarrollo de software, resultando en software de mayor calidad con una entrega más rápida.
En este artículo, hablaré:
- Qué hay que saber antes de construir una pipeline CI/CD
- Ejemplo de tubería CI/CD de Jenkins
- Pasos para configurar una tubería Jenkins
- Exemplo de pipeline Azure CI/CD
- ¡Y más!
Qué debes saber antes de construir tu pipeline CI/CD
¿Qué es una tubería CI/CD?
El objetivo principal de una cadena CI/CD están automatizar el ciclo de vida del desarrollo de software (SDLC).
La cadena cubrirá muchos aspectos de un proceso de desarrollo de software, desde la escritura del código y la ejecución de pruebas hasta la entrega y despliegue. En pocas palabras, una tubería CI/CD integra la automatización y la monitorización continua en el ciclo de vida del desarrollo. Este tipo de canal, que abarca todas las etapas del ciclo de vida del desarrollo de software y conecta cada etapa, está denominado colectivamente pipeline CI/CD.
Esto Reduce las tareas manuales para el equipo de desarrollo, lo que a su vez reduce el número de errores humanos y ofrece resultados rápidos. Todo esto contribuye al aumento de la productividad del equipo de entrega.
(Conoce más sobre las etapas de una pipeline CI/CD, los Pipelines de despliegue y el papel del CI/CD.)
¿Qué es Jenkins?
Jenkins están un servidor de código abierto para integración continua y despliegue continuo (CI/CD) que automatiza las fases de compilación, prueba y despliegue del desarrollo de software. Con numerosos plugins te pueden integrarse fácilmente, junto con la elección de herramientas, lenguajes de programación y entornos en la nube, Jenkins están altamente flexible y facilita el desarrollo eficiente de aplicaciones fiables.
¿Por qué utilizar Jenkins para CI/CD
Puede que te preguntes por qué Jenkins es una buena opción para construir tu pipeline de CI/CD. Aquí son algunas de las razones por las que es popular:
- Soporte extenso para plugins: Sea lo que sea te que quieras hacer, probablemente ya están un plugin para ello, que acelera y simplifica tu trabajo.
- Comunidad activa de código abierto: Estar libre de costes de licencias están solo el principio. Lo está apoyado por una comunidad activa, que aporta soluciones, consejos, ideas y tutoriales.
- Independiente de la plataforma: te son no está ligada a un sistema operativo específico.
- Escalable: te puede añadir nodos según sea necesario e incluso ejecutar compilaciones en diferentes máquinas con distintos sistemas operativos.
- Integrable: Sea cual sea la herramienta que te son usando, te probablemente pueda utiliza con Jenkins.
- Probado en el tiempo: Jenkins fue una de las primeras herramientas CI/CD, así que está probado y fiable.
Ejemplo de tubería CI/CD de Jenkins
¿Cómo es en acción una pipeline CI/CD construida usando Jenkins? Aquí está un proceso sencillo de desarrollo de aplicaciones web.
- El desarrollador escribe el código y realiza el commit de los cambios en un repositorio centralizado de código.
- Cuando el repositorio detecta un cambio, activa el servidor Jenkins.
- Jenkins recibe el nuevo código y realiza la compilación y pruebas automatizadas. Si se detecta algún problema durante la compilación o son prueba, Jenkins informa automáticamente al equipo de desarrollo mediante un método preconfigurado, como correo electrónico o Slack.
- El paquete final se está cargado en AWS Elastic Beanstalk, un servicio de orquestación de aplicaciones, para su despliegue en producción.
- Elastic Beanstalk gestiona la provisión de infraestructuras, el balanceo de carga y el escalado del tipo de recurso requerido, como EC2, RDS u otros.
Las herramientas, procesos y complejidad de una pipeline CI/CD varían respecto a este ejemplo. Mucho depende de tus requisitos de desarrollo y de las necesidades empresariales de tu organización. Las opciones típicas incluyen una pipeline sencilla de cuatro etapas y una pipeline concurrente de varias etapas — incluyendo múltiples compilaciones, diferentes etapas de prueba (prueba de humo, prueba de regresión, pruebas de aceptación del usuario) y un despliegue multicanal (web, móvil).
8 pasos para construir una tubería CI/CD usando Jenkins
En esta sección, mostraré cómo configurar una pipeline sencilla de CI/CD usando Jenkins.
Antes de te Comienza, Haz asegurarse de que Jenkins están correctamente configurado con las dependencias requeridas. te también querrás tener un conocimiento básico de los conceptos de Jenkins. En este ejemplo, Jenkins están configurado en un entorno Windows.
Paso 1: Instala Jenkins
Descargue Jenkins desde la web oficial e instálalo. Instale Jenkins usando el siguiente comando Docker:
docker run -d -p 8080:8080 jenkins/jenkins:lts
Paso 2: Configura Jenkins y añade los plugins necesarios
Configurar Jenkins están cuestión de elegir los plugins te necesitas. Git y Pipeline son herramientas más usadas te quizá quieran añadir desde el principio.
Paso 3: Abre Jenkins
Inicia sesión en Jenkins y haz clic en "Nuevo artículo".
Paso 4: Nombra la tubería
Selecciona la opción "Pipeline" en el menú, proporciona un nombre para el pipeline y haz clic en "OK".
Paso 5: Configura la tubería
Podemos configurar el pipeline CI/CD en la pantalla de configuración del pipeline. Allí podemos establecer triggers de compilación y otras opciones para el pipeline. La sección más importante están la sección "Definición del pipeline", donde te puedes Define las etapas del pipeline. Pipeline soporta sintaxis tanto declarativas como scriptadas.
(Consulte la documentación oficial de Jenkins para más detalles.)
Vamos a utilizar el script de ejemplo del pipeline "Hello World":
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
Haz clic en Aplicar y guardar. te configurado un pipeline sencillo.
Paso 6: Ejecutar la tubería
Haz clic en "Construir ahora" para ejecutar la pipeline.
Esto hará que las etapas de la tubería se ejecuten y el resultado se muestre en la sección "Vista de la Etapa". Solo hemos configurado una etapa de la pipeline, como se indica aquí:
Podemos verificar que la pipeline se ha ejecutado correctamente comprobando la salida de la consola para el proceso de compilación.
Paso 7: Ampliar la definición de la tubería
Vamos a ampliar la tubería añadiendo dos etapas más. Para ello, haz clic en la opción "Configura" y cambia la definición de la tubería según el siguiente bloque de código.
pipeline {
agent any
stages {
stage('Stage #1') {
steps {
echo 'Hello World'
sleep 10
echo 'This is the First Stage'
}
}
stage('Stage #2') {
steps {
echo 'This is the Second Stage'
}
}
stage('Stage #3') {
steps {
echo 'This is the Third Stage'
}
}
}
}
Guarda los cambios y haz clic en "Construir ahora" para ejecutar la nueva canalización. Tras la ejecución exitosa, podemos Ve cada nueva etapa en la vista de etapa.
Los siguientes registros de consola verifican que el código se ejecutó como se esperaba:
Paso 8: Visualiza la tubería
Podemos utiliza el plugin "Pipeline timeline" para una mejor visualización de las etapas del pipeline. Simplemente instala el plugin y dentro de la fase de compilación, te encontrará una opción llamada "Build timeline".
Haz clic en esa opción y te presentará una cronología de los eventos del pipeline, como se muestra a continuación.
¡Eso es todo! te configurado con éxito una tubería CI/CD en Jenkins.
El siguiente paso tras configurar tu pipeline Jenkins están orquestar Pipelines Jenkins con Control-M — añadiendo planificación empresarial, gestión SLA y coordinación de dependencias para los datos de producción y los flujos de trabajo de aplicaciones que Jenkins despliega.
- Repositorios externos de código
- Marcos de prueba
- Estrategias de despliegue
¡Suerte!
Ejemplo de pipeline Azure CI/CD basado en la nube
Con la creciente adopción de tecnologías en la nube, la tendencia creciente está en trasladar las tareas DevOps a la nube. Proveedores de servicios en la nube como Azure y AWS ofrecen un conjunto completo de servicios para gestionar todas las tareas DevOps requeridas utilizando sus respectivas plataformas.
Lo siguiente están una sencilla canalización DevOps CI/CD basada en la nube, completamente basada en herramientas Azure (Azure DevOps Services).
- Un desarrollador modifica el código fuente existente o crea nuevo, y luego hace commit de los cambios en los repositorios de Azure.
- Estos cambios en los repositorios activan el Azure Pipeline.
- Con la combinación de Azure Test Plans, Azure Pipelines compila y prueba los nuevos cambios de código. (Este está el proceso de Integración Continua.)
- Azure Pipelines entonces desencadena el despliegue de artefactos probados y construidos con éxito en los entornos requeridos con las dependencias y variables ambientales necesarias. (Este es el proceso de Despliegue Continuo.)
- Los artefactos son almacenados en el servicio Azure Artifacts, que actúa como un repositorio universal.
- Los servicios de monitorización de aplicaciones de Azure proporcionan a los desarrolladores información en tiempo real sobre la aplicación desplegada, como informes de estado e información de uso.
Además de la pipeline CI/CD, Azure también permite gestionar el SDLC usando Azure Boards como herramienta ágil de planificación. Aquí te dos opciones:
- Configura manualmente una pipeline completa de CI/CD
- Elige una solución SaaS como Azure DevOps o DevOps Tooling de AWS
Los Pipelines CI/CD minimizan el trabajo manual
Una pipeline correctamente configurada aumentará la productividad del equipo de entrega al reducir la carga de trabajo manual y eliminar la mayoría de los errores manuales, al tiempo que incrementa la calidad global del producto. Esto conducirá finalmente a un ciclo de vida de desarrollo más rápido y ágil que beneficiará a los usuarios finales, desarrolladores y al negocio en su conjunto.
Conoce de las decisiones que Humana tomó al seleccionar un entorno de desarrollo moderno de mainframe para editar y depurar código y mejorar su velocidad, calidad y eficiencia.
Lecturas relacionadas
Guía de DevOps
- ¿Qué es DevOps? Una introducción completa
- Una breve historia de DevOps
- Introducción a la arquitectura DevOps
- Automatización en DevOps: Por qué y cómo automatizar las prácticas de DevOps
- ¿Qué es CI/CD? Explicación sobre la integración continua y la entrega continua
- Cómo construir una tubería CI/CD usando Jenkins
- Métricas de DevOps para optimizar Pipelines CI/CD
- Métricas de entrega continua
- ¿Es la integración continua hacia el despliegue continuo una progresión, o no?
- Diferencias entre integración continua (CI), entrega (CD) y despliegue
- Control de código fuente y versiones en DevOps
- ¿Qué es las pruebas continuas?
- Marcos de automatización de pruebas: La guía definitiva
- Gestión de versiones en DevOps
- Explicación: Monitorización & Telemetría en DevOps
- Gestión del rendimiento de aplicaciones en DevOps
- Orquestación DevOps en el SDLC
- Introducción al DevOps de bases de datos
- El papel de los microservicios en DevOps
- El papel de la virtualización en DevOps
- Contenedores y DevOps: Cómo encajan los contenedores en los Pipelines de entrega de DevOps
- ¿Qué es una tubería de contenedores?
- ¿Qué es una cadena de herramientas DevOps?
- Gestión de contenedores y código para DevOps
- El papel de Agile en DevOps
- El papel de la nube en DevOps
- ¿Qué están FinDevOps?
- Principales tendencias DevOps en 2022
- Valores y principios de DevOps
- Métricas y KPIs de DevOps
- Consejos sobre DevOps para organizaciones pequeñas, medianas y grandes
- Estructura del equipo DevOps
- Los mejores libros de DevOps para leer hoy
- Reseña del libro The Phoenix Project: DevOps para todos
- Influencers de DevOps: 11 expertos en DevOps para seguir en Twitter
- GitHub, GitLab, Bitbucket y Azure DevOps: ¿Cuál es la diferencia?
- Mejores Prácticas: Cómo Diseñar Aplicaciones para Kubernetes
- Gestión de configuración en DevOps
- Estrategias de ramificación DevOps explicadas
- Títulos de trabajo, roles y responsabilidades en DevOps
- Pruebas en DevOps: Conceptos, Mejores Prácticas y Más
- La guía completa de certificaciones DevOps para 2022
- ¿Qué están el patrón de operador Kubernetes?
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.