Build & Deploy - Avances


En la interna, seguimos avanzando en entender y especificar el proceso de Build y Deploy de aplicaciones Genexus.  Va tomando forma y creo que ya tenemos algo implementable.
Tenemos un primer prototipo operativo y estamos en la etapa de generalizarlo para otras KBs.

Aun queda mucho trabajo por delante, pero creo vamos bastante bien.

Documente el proceso en el Wiki de la comunidad y tambien lo pongo aca.

Build

En el build, dado una KB/Version/Environment 
  • si usa GXServer, se ejecuta un Update y se recupera el ultimo numero de Commit, 
  • Se saca una lista de los Commits y los objetos modificados en los mismos y se lo guarda como documentacion (Desde el commit anterior hasta el commit actual)
  • Si no usa GXServer se incrementa el numero de build
  • Si no hay nuevo commit solo envio un mail. 
  • Se hace un Build All 
  • Se salvar la Reorganizacion
  • Se recorren todos los main (y todos los llamados) que tienen especificado el DeployLocation y se lo separa en directorios diferentes. 
  • Se copian los directorios generados en el paso anterior + Archivos Fijos extra GeneXus y se lo salva con un numero de Build en el archivo Build.info
  • Envio de mail - Informa como termino el build, si hay errores  y envio el log completo de la corrida 

Generacion de archivos de Control

En este paso se generan los archivos necesarios para hacer el analisis de impacto de este build contra el que esta instalado en produccion.
Las tareas a realizar son
  • Recuperar los WSDL de los Procedure SOAP que publique mi aplicacion.
  • Lista de mains por Deploy Location
  • Navegaciones de los objetos (para el comparador de navegaciones)
  • Analisis de seguridad (SecurityScan)
  • Objetos modificados en estado Pending Commit
  • WebServices consumidos por mi aplicacion 
  • Servicios REST

Control Pre-Deploy

Esta tarea consiste en hacer un analisis de impacto del build que estoy por instalar. 
Compara el Build Instalado (del cual debo tener copia local) con el nuevo Build, comparando las navegaciones (de objetos modificados y de objetos que no cambiaron, pero si cambio su navegacion), compara WSDL, listas de ejecutables main. Con esto el encargado del deploy define si ese BUILD es instalable o no. 
Controles que se realizan
  • Hay cambio en algun WSDL / Web Service SOAP?
  • Hay cambios en los servicios consumidos?
  • Hay cambios en los servicios REST
  • Se agrego o se quito algun ejecutable?
  • Cambio la navegacion del algun objeto no modificado?

Deploy. 

Es la instalacion definitiva de la aplicacion en las maquinas de produccion. Para esto cada uno de los directorios generados en la etapa de build va a ser instalado en una ubicacion determinada. Se tendra un juego de archivos de configuracion para cada uno de los ambientes de deploy (por ejemplo, testeo manual, testeo automatico, pre-produccion, etc)
En esta etapa:
  • Se salvan lo que estaba instalado anteriormente (para volver atras en caso de un fallo)
  • Se ejecutan las reorganizaciones necesarias
  • Se copian los nuevos programas
  • Se adaptan y se copian los archivos de configuracion para dicho ambiente

Configuración

Posterior a la etapa de Deploy, hay una etapa de configuracion, que realizara:
  • Configuracion de Directorios Virtuales / Webapp
  • Cambios en seguridad

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.