integración integracion herramientas entrega despliegue continuo continua aws ambiente version-control configuration continuous-integration

version control - integracion - ¿Qué es la integración continua?



integracion continua pdf (5)

¿Qué es la integración continua y cuáles son sus beneficios?


+1 para el enlace a la página de Fowler.

Personalmente, me pareció "bueno" saber cada vez que algo no compilaba porque teníamos la mala práctica de tener una compilación única (sí, desarrollamos en la versión de producción; éramos geniales). No teníamos la fase de prueba integrada antes de irme.

Después de un tiempo, sin embargo, disminuyó la cantidad de cambios de codificación masiva (en comparación con el "control de entrada y rezar para que mis cambios no entren en conflicto" que era desenfrenado). Eventualmente, la mayoría de los desarrolladores comenzaron a hacer pequeños cambios con frecuencia solo para obtener la confirmación del icono de la bandeja CC.Net.

En general, me resultó muy reconfortante saber que podríamos enviar una construcción de inmediato si era necesario. Si hubiéramos integrado algunas pruebas de humo, creo que el nivel de estrés habría sido sustancialmente menor.


En su forma más simple, es simplemente un mecanismo que reconstruye su proyecto cada vez que se realiza un check in en algún sistema de control de revisión (CVS, etc.). Esto puede ampliarse para incluir pruebas de ejecución, hasta generar una imagen de CD, montarla en máquinas virtuales, instalar el producto y ejecutar pruebas completas en él.

Tiene la simple ventaja de resaltar cuando los cambios de código rompen el sistema lo antes posible. No solo detecta interrupciones en el código, sino que destaca quién causó el corte. ¡Este efecto psicológico es muy efectivo para fomentar buenas pruebas antes del check in!


Es la práctica de garantizar que todos los aspectos de su proceso de desarrollo de software estén alineados para permitir la creación diaria de una versión funcional de su producto. Es mejor conocido como parte de Extreme Programming.

Esto involucra cosas tan lejanas como la automatización de compilación, pruebas automatizadas, check-ins diarios, uso de un repositorio de código fuente, etc. Pero el objetivo final es ayudar a que todo el proyecto se ejecute de acuerdo con los Principios básicos ágiles para que pueda entregarlo temprano y con frecuencia. Esto, a su vez, lo ayuda a aprovechar los comentarios de sus usuarios, etc.


Esta es de lejos la mejor explicación que he leído hasta ahora.


Solo para actualizar En este punto hay una gran diferencia entre la integración continua (CI) y la entrega continua (CD). Si bien la mayoría de los CD descritos anteriormente describen el modo en que CI extiende ahora la definición de CD. Tener todas las herramientas necesarias para crear un paquete y desplegar una nueva versión de la aplicación automáticamente es una parte crucial del CD. Sumando a esa automatización de prueba (basada en la verificación de tres niveles: verificación de estado general, estadísticas detalladas e inserciones históricas) y un gobierno adecuado, está creando una muy buena pieza de IC. Solo a causa de una definición tan extendida, es posible crear herramientas en la nube extraordinarias. Piense en muleESB o esbeetle.com. Para ambos, CI es algo natural, aunque solo el segundo es compatible con los componentes ESB y ETL.

Espero que haya sido útil.