Cuál es el objetivo de la integración continua
El proceso de integración continua tiene como objetivo principal el de comprobar que las actualizaciones en el código fuente no generen retrasos y/o anomalías en el desarrollo de una aplicación.
La integración continua fue utilizada por IBM para el desarrollo del OS/360 en los años 60.
La integración continua no es una herramienta sino una práctica derivada de la programación extrema o eXtreme Programming (XP). Los desarrolladores trabajando en una misma aplicación integran el programa en el que trabajan lo más a menudo posible. En cada integración se genera un proceso basado en una plataforma que verifica automáticamente el funcionamiento de la aplicación para detectar fallos cuanto antes.
Lo más difícil para un desarrollador es reflexionar sobre el impacto real de una actualización sobre el total de funciones de la aplicación. La integración continua permite dar al desarrollador esta visión más amplia sobre la aplicación, ya que las pruebas de la aplicación se hacen en un entorno similar de producción.
Terminología utilizada en la integración continua
Build: es el total de tapas necesarias para la compilación o creación de entregables al momento de ejecutar los test (funcional, unitarios, etc.).
Commit: es la operación que permite la validación de las actualizaciones del código fuente existente en el directorio de trabajo local de la máquina del desarrollador por medio de la herramienta de gestión de configuración (como SVN). El commit se hace desde el directorio de trabajo local hacia el referencial de la herramienta de gestión de configuración.
Update: es la operación que permite la actualización a partir del referencial de la herramienta de gestión de configuración del directorio local.
Checkout: es la operación de extracción de una versión de un proyecto que se está desarrollando del referencial del administrador de configuración en un directorio de trabajo local.
El proceso de integración continua a grandes rasgos
El desarrollador hace un commit sobre el referencial del administrador de configuración. A continuación, el servidor de integración continua detecta el commit, hace un checkout y ejecuta las operaciones de compilación y de pruebas. Si se produjera un error, se genera una notificación para el jefe del proyecto y/o al equipo de desarrollo. El desarrollador que cometió el error hace un update del referencial de gestión de configuración y corrige el problema.
Cuáles son las funciones generales de un servidor de integración continua
Un servidor de integración continua principalmente debe permitir la realización de las operaciones de checkout del administrador de configuración, la compilación del código, la creación del archivo de la aplicación (Ear, Jar, War…), el despliegue del archivo en la máquina de prueba, la ejecución de una serie de pruebas (Junit, Cactus, auditoria del código fuente, test IHM, test funcionales), la notificación del resultado (e-mail, RSS), la creación de un informe de estadísticas y la integración con otras herramientas.
Cuáles son los servidores de integración más conocidos
Cruise Control: de código abierto y gratuito, muy conocido, mucha documentación, permite probar aplicaciones J2EE y aplicaciones en .Net. Es la referencia de la integración continua.
Hudson: de código abierto y gratuito, muy popular, permite probar aplicaciones J2EE. Utilizado por SUN.
Continuum: de código abierto y gratuito, sostenido por la fundación Apache.
Bamboo: de código abierto y de pago.
Te esperamos en los siguientes artículos en donde hablaremos mas acerca de estos temas, los cuales hoy en día son de vital importancia en el mundo de la tecnología.