Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La integración continua es un componente muy importante del proceso ágil. Por lo general, los
desarrolladores trabajan en funciones o historias de usuarios dentro de un sprint y envían sus
cambios al repositorio de control de versiones.
Una vez que el código está comprometido, todo el trabajo de los desarrolladores está bien
integrado y la compilación se realiza de forma regular en función de cada registro o programa. Por
lo tanto, la Integración Continua como práctica obliga al desarrollador a integrar sus cambios con
los demás para obtener retroalimentación temprana.
Desde el objetivo anterior de Integración Continua, que es hacer que la aplicación llegue a los
usuarios finales, se habilita principalmente la entrega continua. Esto no se puede completar sin
una cantidad suficiente de pruebas unitarias y pruebas de automatización. Por lo tanto,
necesitamos validar que el código se produjo e integró con todos los desarrolladores que se
desempeñan según lo requerido.
En un Sprint ágil, Por ejemplo, hay muchas características o historias de usuarios que se
desarrollan, prueban y están listas para su implementación. Pero según los escenarios y las
prioridades de los clientes, no todos se implementarán. Entonces, aquí en la entrega continua, es
muy importante mantener el código disponible para su implementación.
En Continous Deployment, todos los cambios desarrollados por el desarrollador pasan por varias
etapas para ser implementados en el entorno de PRODUCCIÓN de forma automatizada.
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.
¿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...).
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?
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)
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.