Desarrollo de software: Automatizando las entregas

Para este año que comienza, en mi departamento deberíamos plantearnos seriamente un par de objetivos (entre otros muchos). Uno de ellos ya se ha puesto en marcha, aunque todavía no está ejecutado y es la automatización de los despliegues en el entorno de desarrollo y otro que deberá venir después de este que son las entregas en el entorno de pruebas.

En ambos casos la idea es sencilla, situando los fuentes en la rama correspondiente del SVN y teniendo alojadas las librerías dependientes en Artifactory, el proveedor a través de Hudson solicitaría el proceso de compilación y despliegue. En ese proceso un Sonar que tendríamos habilitado en cada entorno (hasta ahora solo lo tenemos en pruebas) recogería las métricas fruto del análisis estático de código y un plugin para Hudson que se está terminando de implementar instalaría la aplicación en el Tomcat adecuado.

Puede parecer que es poco, pero cumpliendo ambos objetivos estoy seguro que mejoraremos en productividad. En el caso del entorno de desarrollo porque daremos a los proveedores la posibilidad de probar el producto en nuestro entorno independientemente de la fase de construcción en la que se encuentre (algo importante porque así se reducirá el número de entregas rechazadas por causas dependientes del entorno) y en el caso del entorno de pruebas porque ahorraremos tareas a nuestro equipo de calidad y a nuestros compañeros del departamento de producción.

En el caso del entorno de pruebas, el problema inicialmente estaba en que los proveedores no debían conocer determinadas claves de acceso (por ejemplo la contraseña del usuario de conexión en base de datos), pero eso queda resuelto ya que las claves se pueden alojar en un fichero independiente y los proveedores simplemente apuntar a él.

Todavía quedaría otros aspectos en los que trabajar, como por ejemplo intentar automatizar la ejecución de determinados scripts en base de datos, el alta o modificaciones en la configuración en terceros entornos, como por ejemplo, Alfresco, etc…, pero independientemente de que trabajemos en esto, si conseguimos realizar de manera adecuada los dos objetivos planteados, notaremos sin duda, los resultados.

2 comentarios
  1. jacampano dijo:

    Buenas,

    Es la primera vez que entro en el blog y me parece que es muy interesante. Enhorabuena. Quería comentar un par de cosas sobre la automatización de las entregas. Menciones de un plugin que se esta terminando de implementar para automatizar el proceso de despliegue. Para Hudson ya existe un plugin para automatizar el proceso de despliegue “Deploy to a container” (o eso creo recordar). Este plugin esta basado en “Cargo” y sirve para automatizar los despliegues para tomcat (5,6) jboss (4,5) y glassfish. También podéis pasar del plugin en Hudson y tirar de Cargo directamente.

    Para automatizar la ejecución de scripts en BBDD, podéis echarle un vistazo a Liquibase (http://www.liquibase.org/). Existe un plugin maven, por lo que lo podréis integrar sin problemas. Y ya si utilizáis alguna herramienta para la automatización de pruebas funcionales, como Selenium, podéis automatizar el proceso al completo (actualización BBDD, despliegue + pruebas funcionales).

    Un saludo.

    • jummp dijo:

      Muchas gracias por tu aportación, voy a estudiar ambas soluciones.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: