Integración contínua
Seguro que a todo proyecto de software le llega el momento en que su código se hace MONSTUOSO, GRANDE y las pruebas son cada vez más difíciles de ejecutar o simplemente el tiempo que se dedica para «probar lo mismo» encarece el producto tóntamente.
Para ello, estos días nos estamos dedicando a montar un pequeño sistema de integración continua. Bueno, realmente estamos siendo un poquito más ambiciosos y estamos montando 3 sistemas 🙂
– Producción: Un entorno en el que se encuentra la última versión liberada de todas las aplicaciones y plataforma. Con ello nos es más fácil reproducir los bugs que reporta la comunidad y tenemos un entorno que enseñar a nuestros clientes cuando nos visitan y quieren ver cosas.
– Testing: Este sirve para trastear pero sin hacer pruebas de regresión. Se descarga la última versión de la rama de desarrollo y sirve para tener las nuevas aplicaciones corriendo y que se puedan ver y probar de forma manual.
– Entorno de regresión: Aquí lo chulo del tema. Un sistema que se dedicará a descargar la última versión de la rama de desarrollo, compilará todos los módulos y realizará las pruebas unitarias y de sistemas que vamos definiendo. Al final de la prueba, nos enviará un correo con el resultado de todas las pruebas.
Hay varias herramientas que te permiten tener un sistema de integración continua. Pero después que un buen amigo nos aconsejara, nos hemos decidido por Hudson. Realmente es impresionante, y OpenSource (¿Aún hay alguien que duda de la potencia del software libre?).
Creo que no hace falta que de una «point list» de puntos fuertes de usar un sistema de integración continua, porque las ventajas saltan a la vista. Hudson le añade un regustillo de sencillez y potencia al asunto del que no nos hemos podido resistir.
Por lo que hace los otros entornos, hemos tirado con un simple script de bash, que he utilizado para testear que estoy perdiendo facultades de programación :(. Que fácil que es equivocarte en la declaración de una variable, con la buena fe cambiarte a root para poner permisos de ejecución al fichero y… zas,,, olvidarte de volver al usuario simple :). Informe de daños: Un ubuntu que reinstalar 🙂 (Que siempre le va bien).
Pero nada, el motivo de este post es recordar que los sistemas de integración continua no son grandes monstruos al alcance de grandes compañías de software o consultoras. Si se plantea desde un buen principio (Que nosotros no lo hicimos) te acaba ayudando muy mucho en el día a día y reduce incertidumbres. Son de aquellas cosas que… cuando las pruebas… no entiendes como has podido vivir tantos años sin ellas 🙂
yotambienteleo 🙂
Lluis Ribes - agosto 25, 2008 a las 10:21 pm |
Suena muy interesante, tomo nota!
Jordi Bufí - septiembre 6, 2008 a las 10:28 am |