Conclusiones finales. Eligiendo nuestro entorno de Integración Continua (V).
17 nov 2008
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 |
LuntBuild |
Hudson |
|
| Instalación | |||
| Documentación de instalación |
Suficiente |
Buena |
Buena. |
| Dificultad de la instalación |
Fácil. |
Fácil. |
Muy |
| Configuraciones avanzadas |
Compleja |
Fácil |
Fácil |
| Administración | |||
| ¿permite la configuración completa desde la interfaz Web? |
Sí. |
Completa |
Completa |
| Documentación oficial de Administrador |
Suficiente |
Suficiente |
Buena. |
| ¿permite copias de Seguridad desde la herramienta? |
No |
Sí |
No |
| Mantiene un histórico de compilaciones (build) |
Sí |
Sí |
Sí |
| Gestión de tareas programadas |
Sí |
Sí |
Sí |
| Rendimiento |
Bueno |
Muy |
Muy |
| Seguridad | |||
| Gestión de permisos basados en perfiles |
Sí |
Sí, |
Sí |
| Gestión de permisos específicos por proyecto |
Sí |
Sí |
Sí |
| Facilidad de configuración de la seguridad |
Fácil |
Fácil |
Muy |
| Integración con sistemas externos |
|||
| Integración con Sistemas de control de Versiones |
Suficiente |
Muy |
Muy |
| Integración con plataformas de gestión de incidencias (bugtrackers) |
Mala |
Mala |
Regular |
| Integración con herramientas de generación de informes (reporting) |
Buena, |
Buena |
Muy |
| Desarrollo de nuevos plugins o mecanismos de extensión |
Complejo |
Suficiente |
Muy |
| Integración con herramientas de testeo |
Buena |
Buena |
Muy |
| Tipos de proyectos Soportados |
|||
| proyectos Java |
Muy |
Muy |
Excelente |
| proyectos No Java |
Mala. |
Mala. |
Buena, |
|
Facilidad |
|||
| Documentación de usuario |
Buena |
Buena |
Muy |
| Interfaz |
Fácil |
Complejidad |
Muy |
| Estabilidad | |||
| Estabilidad general de la herramienta |
Buena |
Buena |
Buena |
| ¿permite compilación distribuida? |
No |
Sí |
Sí |
| ¿permite la gestión de hilos de ejecución? |
No |
Sí |
Sí |
- 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.
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”.
) es posible implementar cualquier mecanismo de copias de seguridad (aparte de mantener el número de builds que se quiera).
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
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
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,…
Hola!
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.
@ibon: un honor tenerte por aquí
@Joserra: sinceramente buen cambio. Gracias por leernos!
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.
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.
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.
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