Integración continua: qué es y por qué deberías aprender a utilizarla cuanto antes

03/07/2019Artículo original

En el mundo del software, palabras como integración continua o despliegue continuo (CI/CD) están a la orden del día. Se da por supuesto que todos los que estamos metidos en este gremio conocemos su significado y sus ventajas, pero la triste realidad es que no es así. Mucha gente no lo conoce y otra lo conoce y no lo aplica.

Por esa razón, en el artículo de hoy voy a intentar aclarar las ventajas que nos ofrece el concepto, para aseverar que, sin lugar a dudas, para hacer software de calidad, la integración continua es un requisito necesario y no negociable.

¿Qué es la integración continua (CI)?

Para poder hablar de sus ventajas, lo primero es conocer en qué consiste. La integración continua es el nombre que se le da a la automatización de las labores de compilación, test y análisis estático del código. Esto se puede conseguir de muchas maneras, y podemos llamar integración continua a todo lo que hay entre un script que periódicamente ejecuta el trabajo y un servicio online que lo haga.

  Sincronización de proyectos en git con hooks (ganchos)

¿Cómo funciona?

Independientemente del sistema que utilicemos para iniciarlo (tarea programada, un Webhook, etc), el proceso como mínimo seguirá el siguiente camino:

  1. Descargará el código fuente desde el repositorio de control de versiones (git, SVN, Mercurial…).
  2. Compilará el código según sea necesario.
  3. Realizará las pruebas unitarias y/o de integración.
  4. Publicará los resultados de modo que sea accesibles.

¿Cuándo debería ejecutarla?

Lo ideal, es ejecutarla siempre que se añadan cambios al repositorio principal. Pero esto tiene un coste. Compilar cada cambio que hacemos nos da cierta seguridad, pero puede hacer que nuestro sistema de CI trabaje más de la cuenta y suponga un coste adicional. En cambio, aplicarla a todos los pull request nos garantiza que todos los cambios sobre la línea principal de trabajo van a funcionar bien. Aquí se trata de encontrar un equilibrio entre coste y beneficio.

¿Y qué me aporta?

Las principales ventajas que tiene son:

  • Detectar rápidamente los posibles errores de compilación de nuestro código. (en mi máquina funcionaba…)
  • Detectar funcionamientos anómalos en nuestro software. (es un bug, no una nueva característica)
  • Mejorar la calidad de nuestros productos
  • Nos permite compilar/testear nuestro código en diferentes plataformas.
  7 motivos para utilizar Docker en general y con ASP.NET Core en particular

En conclusión

Con el gran abanico de posibilidades que existen hoy en día para poder añadir integración continua a nuestro código, no hacerlo no es una opción. Da igual si es un proyecto grande o pequeño, da igual si eres un único desarrollador o un equipo. Existen incluso algunas opciones gratuitas que nos permiten hacerlo.

¿Quién no ha oído nunca el “en mi máquina funcionaba“? En mi experiencia personal, es una respuesta que he oído varias veces (y yo mismo he dicho). La integración continua es una solución muy eficaz para evitar ese tipo de problemas y poder aportar valor con nuestro software sin tener que perder horas y horas (que muchas veces no se tienen) en compilar nuestro proyecto para varias plataformas, ejecutar pruebas, analizadores de código…

  Travis CI expuso las claves de miles de proyectos open source durante una semana: el líder de Ethereum recomienda buscar alternativas

Relacionados

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad