Conclusiones finales. Eligiendo nuestro entorno de Integración Continua (V).

Después de una serie de artículos que se iniciaron con Eligiendo nuestro entorno de Integración Continua (I) , tenemos las conclusiones finales de nuestra comparativa.

  • Tabla resumen

A modo de resumen hemos agrupado en una sola tabla todos las parámetros evaluados en la comparativa, para permitirnos una comparación rápida entre las diferentes herramientas.

Apache
Continuum

LuntBuild

Hudson

Instalación
Documentación
de instalación

Suficiente

Buena

Buena.
Con ayuda contextual

Dificultad
de la instalación

Fácil.
Requiere la configuración de recursos JNDI ( SMTp, base de datos,
etc.)

Fácil.
puede requerir configuración de ficheros externos

Muy
Fácil. Es posible su ejecución directamente o sobre cualquier
servidor de aplicaciones ligero, sin requerir edición de ficheros
de configuración

Configuraciones
avanzadas

Compleja

Fácil

Fácil

Administración
¿permite la
configuración completa desde la interfaz Web?

Sí.
A excepción de algunos parámetros como el SMTp, conexión base
de datos, parámetros JNDI, …

Completa

Completa

Documentación
oficial de Administrador

Suficiente

Suficiente

Buena.
Con ayuda contextual

¿permite
copias de Seguridad desde la herramienta?

No

No

Mantiene
un histórico de compilaciones (build)

Gestión de
tareas programadas

Rendimiento

Bueno

Muy
bueno, permite gestión de hilos de ejecución y tareas
distribuidas

Muy
bueno, permite gestión de hilos de ejecución y tareas
distribuidas

Seguridad
Gestión de
permisos basados en perfiles

Sí,
pero sólo con un conjunto de perfiles predefinido.

Gestión de
permisos específicos por proyecto

Facilidad de
configuración de la seguridad

Fácil

Fácil

Muy
Fácil

Integración
con sistemas externos
Integración
con Sistemas de control de Versiones

Suficiente

Muy
Buena

Muy
Buena

Integración
con plataformas de gestión de incidencias (bugtrackers)

Mala

Mala

Regular

Integración
con herramientas de generación de informes (reporting)

Buena,
basada en Maven

Buena

Muy
Buena. plugins Hudson integrados

Desarrollo
de nuevos plugins o mecanismos de extensión

Complejo
(Malo)

Suficiente

Muy
Bueno

Integración
con herramientas de testeo

Buena

Buena

Muy
buena, con agregación de los resultados en la propia interfaz
web.

Tipos de
proyectos Soportados
proyectos
Java

Muy
Buena

Muy
Buena

Excelente
(permite un gran número de posibilidades)

proyectos No
Java

Mala.
Solo basados en Shell scripts

Mala.
Solo basados en Shell scripts

Buena,
mediante plugins

Facilidad
de uso

Documentación
de usuario

Buena

Buena

Muy
Buena, con ayuda contextual

Interfaz

Fácil

Complejidad
media

Muy
fácil

Estabilidad
Estabilidad
general de la herramienta

Buena

Buena

Buena

¿permite
compilación distribuida?

No

¿permite la
gestión de hilos de ejecución?

No

  • Conclusiones finales.

Sin duda nuestra propuesta se inclina por Hudson. Brevemente vamos a enumerar y resumir (de entre los detalles de esta comparativa) ciertos aspectos que hacen inclinar la balanza hacia este software:

  • Extensibilidad. La posibilidad de desarrollar plugins que permitan adaptar e inyectar funcionalidad de forma personalizada es una característica casi imprescindible.  Apache Continuum no dispone de esta posibilidad de integrar plugins (deben ser plugins Maven, utilizados específicamente en cada uno de los proyectos Java), lo cual prácticamente hace descartar esta plataforma. LuntBuild dispone de ciertas opciones de inyección de código, si bien a este respecto las mejores características las tiene Hudson.
  • Calidad de la documentación. En esta materia Hudson también dispone de la mejor documentación, por delante de LuntBuild y Continuum.
  • Integración de resultados de plugins (centralizados o Maven) en pantalla. Un aspecto de interés es que el resultado de los diversos plugins pueda verse en la interfaz web de la aplicación. Tan sólo Hudson proporciona este nivel de integración por defecto.
  • Sistema de seguridad y permisos. En esta funcionalidad tan importante lideran la comparativa Hudson y Continuum. Ambas disponen de la posibilidad de gestión de permisos basados en perfiles, y posibilidad de personalizar los permisos por proyectos. Continuum puede requerir modificaciones en ficheros de configuración y reinicio del sistema, mientras que Hudson permite configuración integral en pantalla.
  • Estabilidad. Las tres plataformas disponen de buenas características de estabilidad, si bien destacan Hudson y LuntBuild, que permiten la gestión multihilo y compilación distribuida.
  • Soporte de la comunidad. A este respecto lideran la comparativa tanto Hudson como Continuum, desarrollos de Sun y Apache respectivamente.

Como se puede observar, Hudson auna las principales características que nosotros esperabamos de un sistema de Integración Continua, y por ello es nuestra propuesta y elección para servir de plataforma base en la infraestructura de desarrollo.

Comentarios

  1. Por supuesto estoy totalmente de acuerdo con vuestra elección 😉 Sólo hay algo que me ha descolocado: ¿Permite copias de seguridad desde la herramienta? y en hudson ponéis “no”.
    No entiendo muy bien a qué os referís: usando una ant task es posible hacer lo que queramos, y existe un plugin para hacer un scp, por ejemplo, de los artifacts construídos; asi que por lo que se me ocurre ahora mismo (lunes ;-)) es posible implementar cualquier mecanismo de copias de seguridad (aparte de mantener el número de builds que se quiera).
    No sé si os referís a que no lo trae out-of-the-box… ¿Que queréis decir con “Permite copias de seguridad desde la herramienta”?
    Salu2

  2. Muchisimas gracias por tan excelente revisión! La verdad que yo era partidario de Continuum y le había hecho poco caso a Hudson. Desde el post anterior sobre hudson lo estoy cambiando!!
    Veremos que tal se va portando,…

  3. Hola!
    @ibon: un honor tenerte por aquí 🙂 Supongo que el compi Félix se refiere precisamente a eso… cierto que con un task de Ant, un plugin Hudson, etc., puedes hacer lo que quieras… pero eso no es la definición de disponer de esa opción “desde la herramienta” (entendamos de forma integrada). De todas formas cuando Félix te lea seguro que añade algo a esto.
    @Joserra: sinceramente buen cambio. Gracias por leernos!

  4. Hola ibon,
    Por copia de seguridad me refería a hacer una copia de seguridad del propio sistema de integración continua, en nuestro caso por ejemplo tenemos en este momento configurados 37 proyectos en Hudson y la verdad sería muy duro perder esas configuraciones.
    Siempre es posible hacer una copia de seguridad del directorio que utiliza Hudson para almacenar esta información, pero en LuntBuild por ejemplo es posible definirlo desde la propia aplicación.

  5. Hola Félix.

    Echo de menos en la tabla comparativa la posibilidad de configurar “build environments”. Es típico tener proyectos conviviendo que necesitan JRE 1.5 y otros que necesitan JRE 1.6. Se que Continuum permite la definición de este tipo de especificaciones a nivel de proyectos independientes, ¿es posible en Hudson y LuntBuild?

    Un saludo.

  6. Muy buena comparativa, aunque hecho de menos una columna con Cruise Control para acabar de rematarla. Para los que aportamos nuestro granito de arena a Hudson hace ilusión ver que vamos por buen camino.

    @Antonio, desde las opciones generales de configuración puedes añadir todas las configuraciones que quieras a nivel de máquina virtual y herramientas, y más tarde seleccionar las que mejor te vengan para tu proyecto.

    @Féfix, es una muy buena idea para un plugin de configuración global y muy fácil de implementar. Podrías enviar un mail a la lista de desarrollo para ver que opina la gente “dev@hudson.dev.java.net” o meterle mano tú directamente XD. La mayoría de los plugins suelen ser muy bien recibidos.

  7. me gustari asaber por que seleccionaron lunt, continuum y hudson… y no croise control, personalmente prefiero hudson y la comparativa me parece exelente, sin embargo aca suena mas cruise control y no ha sido comparado

    Bytes q=]…. ocea saludos xD

  8. Pingback: Yo en el Universo » Histórico » CruiseControl vs. Hudson: la comparativa perfecta

Comments are closed.