¿Qué es Integración Continua o Continuous Integration?

Clase 8 de 29Curso Profesional de DevOps 2017

Resumen

¿Qué es un CI?

Las siglas significan Continuous Integration (Integración Continua).
CI como proceso significa que cada cambio subido a nuestro sistema de control de versiones ha sido puesto a prueba y que los cambios han sido validados y aceptados. CI como herramienta usualmente se refiere a la herramienta que facilita el proceso de CI. Esto puede causar confusión si no se entiende el contexto en el que se está hablando. En este curso nos referiremos a CI como la herramienta.

Cuando integramos con un CI le podemos dar ciertas responsabilidades. Correr las pruebas, trigger/package el código y hasta hacer el deployment. La herramienta ayuda, pero no lo es todo. Cuando cambios van a ser sometidos, el hecho de que las pruebas pasen es bueno. Pero si los nuevos cambios están fuera del scope de las pruebas, más pruebas deben ser añadidas. Aquí entra el concepto de “code reviews” donde otros developers verifican el código siendo propuesto, ofrecen feedback y aprueban el código. Tu CI es solo tan efectivo como la efectividad de las pruebas siendo ejercidas. Además, hacer “code reviews” ayuda a tener consenso y evitar silos de conocimiento.

Algunos de los CIs más comunes son Travis, Circle, Codeship y Jenkins. De estos, Jenkins es el más común para correr internamente. Los demás ofrecen servicios y no hay que correrlos nosotros.