Información y enlaces
Participa comentando, viendo lo que otros tienen que decir, o enlazandolo desde tu blog.
- Otros artículos
- La liga de futbolín Viavansi 2008-2009
- Programando para iPhone
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 |
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”.
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