Está en la página 1de 3

Integración Continua

Explique la integración continua.

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.

Explique la entrega continua.

Continuous Delivery es una extensión de Continuous Integration que principalmente ayuda a


hacer llegar las funciones que los desarrolladores están desarrollando a los usuarios finales lo
antes posible. Durante este proceso, pasa por varias etapas de QA, Staging, etc., y luego para su
entrega al sistema de PRODUCCIÓN.

Explique las pruebas continuas.

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.

Explique el monitoreo continuo.

A medida que se desarrolla e implementa la aplicación, necesitamos monitorear su desempeño.


Supervisión también es muy importante, ya que puede ayudar a descubrir los defectos que
podrían no haberse detectado antes.

¿Cuál es la diferencia entre la entrega continua y la implementación continua?

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.

¿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.

La integración continua (continuous integration en inglés) es un modelo informático propuesto


inicialmente por Martin Fowler que consiste en hacer integraciones automáticas de un proyecto lo
más a menudo posible para así poder detectar fallos cuanto antes. Entendemos por integración la
compilación y ejecución de pruebas de todo un proyecto. (Wikipedia)

¿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.

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...

También podría gustarte