Sistema LUCIA: 25 años de una KB GeneXus en producción
Se cumplieron los 25 años del Sistema LUCIA en producción (ver el post de los 20 años) .
Es un sistema aduanero, que permite la declaración aduanera de Importaciones, Exportaciones, Tránsitos y la liquidación de los tributos correspondientes.
También se controlan los requisitos documentales y de controles de diferentes organismos para poder realizar estas operaciones.
Adicionalmente controla las cargas marítimas, aéreas, terrestres, fluviales que entran y salen del país, cruzando las declaraciones de cargas, con las operaciones aduaneras.
Tenemos un equipo maravilloso de arquitectos, programadores, testers, documentadores, mesa de ayuda, abogados, funcionales, dba, devops. Somos 23 personas las que participamos. Si lo comparamos con países de sistemas aduaneros de tamaño similar, logramos mantener el sistema actualizado con menos personas. La instalacion, operacion del sistema y administración de la infraestructura es realizada por otra empresa.
Durante 25 años muchos mas han colaborado para llegar hasta aca. A todos ellos gracias!.
Para actualizar algunos de los datos que puse hace 5 años
Recaudar casi 6 millones de dolares por dia, es toda una responsabilidad.
Es llamativo ver como bajo la cantidad de archivos y las líneas de código, a pasar de haber agregado muchas tablas y tener mas objetos. Lamentablemente use herramientas diferentes para contar los archivo y las líneas de código. La que uso ahora, no toma en cuenta archivos repetidos.
En estos años incorporamos GAM, GXFlow, Firma Digital, servicios REST y se hicieron cubos con Pentaho y SuperSet para resolver parte de la Analitica.
Actualmente tenemos 5 KB estamos en pleno proceso de migración de las mismas a GeneXus 18 Upgrade 6.
Se hicieron 11.639 Commits en 5 años, o sea mas de 6 Commits por dia en GXServer (esto es en la KB mayor, las otras tienen un poco menos de actividad).
Proceso de build, pack, deploy y test automatizado.
Algunas cosas a destacar:
Build - Chequea si hay cambios en el servidor. Si no cambio nada, no hace nada.
Si hay cambios baja los cambios del server, salva la reorg si cambia la estructura de la base de datos, hace un build all.
Pack - Para cada uno de las Deployment Units separa los archivos en directorios para instalar.
Se agregan archivos adicionales que no brinda GeneXus, necesario para producción
Deploy Simple - Es el proceso que copia los cambios a los ambientes y personaliza los archivos de configuración para los diferentes ambientes (TesteoManual, TesteoAutomatizado, Stage). Es relativamente rapido y puede correr varias veces al dia.
Deploy Completo - Se borra toda la infraestructura y se vuelve a crear. Se borran sitios, directorios virtuales, se instalan certificados, se configuran bindings, etc. Luego se copia el 100% de los ejecutables. Esto ejecuta una vez por noche.
Test Automatizado - Se ejecutan los UnitTest y los UITest. Esta es una etapa que nos gustaría tener mas casos automatizados, pero es bastante costoso crearlos y mantenerlo.
API Test - Antes de instalar, se ejecuta un proceso manual que chequea que los servicios brindados por el sistema, no cambiaron con respecto a la versión anterior.
Algo que nos resultó útil, es manejar un código de versión para cada uno de estos pasos.
Usamos una nomenclatura que es esta:
Si solo cambia el número de Commit, solo hay que hacer un build all.
Futuro
También vamos a empezar una migración de .NET Framework a .NET Core y a .NET 8.
Vamos a tener que buscar (o inventar) las herramientas para ajustar los archivos de configuración json para los diferentes ambientes (hoy lo tenemos para xml). Van a estar divertidos los próximos meses.
Muchas felicidades! 25 años no son pocos.
ResponderBorrar