Acceder Registrarme

INTEGRACIÓN Y DISTRIBUCIÓN CONTINUA (SOFTWARE)


La integración y distribución continua se refiere al hecho de realizar entregas frecuentes al cliente, con respecto a un sistema de información; así mismo, ésto conlleva un proceso mucho más amplio que sólo la entrega del software en si, ya que parte desde el desarrollo y la extensión de funcionalidades o módulos dentro de un software hasta la puesta en marcha permanente del mismo.

Autor: Kevin Arias (Ver todos sus post)

Integración continua Entregas continuas Despliegues continuos

Fecha de publicación: 2020-01-08 16:45:58
Ayúdanos con el arduo trabajo que realizamos.
[ARTÍCULOS GENERALES] INTEGRACIÓN Y DISTRIBUCIÓN CONTINUA (SOFTWARE)

El tema de integración continua y distribución continua (CI/CD), es realmente bastante amplio y a su vez muy interesante; es un método de distribución de software mediante lo cual podemos atuomatizar muchos procesos y de esta manera simplificar mucho el flujo de desarrollo del software en si.

Si alguna vez ya escuchaste o tienes cierta noción sobre CI/CD sin haber experimentado mucho sobre este tema, de seguro que te viene a la cabeza pases a producción de forma automatizada, que en cierta forma lo es, pero sin limitarse únicamente a ésto; entonces, veamos un poco más de en qué consiste este concepto.

¿Por qué es necesario la integración continua?

Actualmente es común en gran parte de equipos de desarrollo que los integrantes se aislen con los requerimientos asignados a éstos, para posteriormente juntar cada cambio en una rama principal de su sistema de control de versiones como lo puede ser la rama master en Git, esto trae como consecuencia muchos problemas a la hora de combinar cada cambio ejercido en las diferentes ramas con lo que se convierte en un infierno de integración.

La CI/CD, resuelve este aspecto y hace que nuestro trabajo sea notablemente más eficaz.

¿Qué es la CI y CD?

Cuando hablamos de CI nos referimos al proceso de la integración contínua, mientras que CD que es la distribución continua corresponde a dos casos, siendo que estos son las entregas continuas y despliegues continuos. Es importante saber diferenciar correctamente estos aspectos, por lo que lo mencionamos a continuación.

Integración continua

La integración continua consiste en la automatización del proceso de unión de las diferentes implementaciones de un software, realizado por los desarrolladores, para que de esta manera se proceda con la construcción (Build) y las respectivas pruebas unitarias si las hubiera (Test). Que quede claro que la integración continua se limita de forma global, única y exclusivamente a estas etapas, mas no a los procesos de pase a producción.

Entregas continuas

Las entregas continuas consiste en la liberación del código hacia un repositorio, en palabras simples; es el proceso que luego de haber realizado la unión, construcción y pruebas de unidad (Proceso de la CI), llevamos ese código fuente (Software actualizado) ha un repositorio temporal que posteriormente podrá ser derivado a servidores web, servidores de aplicación o simples equipos de cómputo (Estaciones de trabajo).

Despliegues continuos

Como último paso en el proceso de la CI/CD, tenemos los despliegues continuos, los cuales consisten en tomar los repositorios temporales construidos en las entregas continuas para enviarlos a un entorno de pruebas finales de uso o a los mismos entornos de producción del software.

Recordemos que los 3 proces anteriormente mencionados, son totalmente automatizados, por lo que la productividad en un equipo de desarrollo que disponga de estos procesos bien implementados, será mucho mayor con respecto a un proceso de desarrollo tradicional.

Como material adicional, se adjunta un diagrama del proceso completo (Aunque de forma general) de la CI/CD.

CONCLUSIÓN

La implementación del proceso de CI/CD en nuestro equipo de trabajo de software, es muy importante; porque recordemos, al aplicar integración continua, entregas continuas y despliegues continuos, nos beneficia en la productividad del desarrollo, encontramos y arreglamos los errores con mayor rapidez y entregamos los cambios ejercidos en el proyecto de software con mayor eficacia.



...

INFORMACIÓN SOBRE EL AUTOR DEL ARTÍCULO
KEVIN ARNOLD ARIAS FIGUEROA (SOFTWARE ARCHITECT - CODIDEEP E.I.R.L.): Profesional en tecnologías de la información con más de 10 años de experiencia en desarrollo de software empresarial, con amplios conocimientos en manejo de arquitecturas de software de escala vertical y horizontal, gestión de proyectos, liderazgo de equipos y dominio en modelado de procesos a gran escala.


  • Debes estar logueado para realizar comentarios