Build & Deploy: Resumen del 2014

Mas o menos a esta altura del 2013, empezaba a trabajar con el tema del Build & Deploy de aplicaciones GeneXus.

En un año logramos avanzar bastante en el tema, logrando tenerlo formalizado, habiendo detectado las dificultades y limitaciones actuales y tenemos desarrolladas varias herramientas para facilitar la tarea de la realización de procesos de build y deploy automatizados. Con dichas herramientas logramos bajar el tiempo necesario para tener una versión ejecutable de nuestra aplicación y también la configuración del ambiente.

Lo que no logré fue que el tema interesara dentro de la comunidad, al menos como yo lo había imaginado.  No tuve ni la fuerza ni el liderezgo suficiente como para interesar a actores claves dentro de la comunidad como para que dedicaran recursos para lograr una solución que funcione para mas de una empresa.

Quedan como tareas pendientes:
* mostrar las ventajas de este tipo de herramientas en el desarrollo agil de aplicaciones
* justificar el esfuerzo con la disminución de la tasa de errores

A pesar de no haber logrado una solución para la comunidad, si logramos tener una solución que soluciona alguno de los problemas planteados.

Lo que tenemos ya implementado (para una aplicación con .NET, con GXServer) hace:

Para el Build, si hay algun commit nuevo en GXServer
* Actualización de GXServer, build all
* División de los ejecutables en BuildUnits
* Salvado y envío de Reorganización
* Generación de archivos de comparación de navegaciones
* Envío de mail a todo el grupo de desarrollo de los resultados.
* Generador de borrador de las Releases Notes (lista de commits)

Para los chequeos, dados dos Builds de la aplicación
* Comparación de navegaciones
* Comparación de los WSDL de los servicios publicados.

Para el Deploy
* Instalación del build en el FileSystem
* Adaptación de web.config a client.exe.config al ambiente de instalación.
* Adaptacion de location.xml al ambiente de instalacion
* Configuración de todos los directorios virtuales
* Emisión y configuración de certificados X.509 para pruebas
* Ejecución de scripts de inicialización básica.

Con estas herramientas estamos en condiciones de generar un ambiente de prueba o producción en pocos minutos, cuando se genera un cambio en el sistema.

Por experiencias anteriores, se que este tipo de cambio lleva varios años dentro de la comunidad Genexus, pues las necesidades de las empresas no se dan todas al mismo tiempo y no todos tenemos la misma madurez en nuestros procesos de desarrollo.  Me quedo contento que en un año logramos avanzar bastante, aunque me hubiese gustado haberlo logrado en mas lugares.

Cambiando de tema, este es le POST número 1000 de "Desarrollando desde la trinchera", por lo que brindo por eso.

Comentarios

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.