El mundo evoluciona y pareciera que todos los días estamos viviendo lo que antes llamábamos el futuro. El advenimiento de nuevas formas de consumo, dió lugar al nacimiento de nuevas tecnologías que sean capaces de satisfacer las necesidades de los usuarios. Por su parte, estos usuarios también debieron adaptarse a un mercado que avanza a pasos agigantados y animarse a nuevas formas de interactuar con sus marcas. 

Y, en medio de todo este contexto, las empresas. Sus sistemas, procesos, aplicaciones, plataformas, y toda su comunicación, se ven atravesadas por el imperativo de evolucionar.

Así, bajo la premisa de seguir satisfaciendo los requerimientos de las compañías y sus clientes, nace el concepto de modernización de aplicaciones

Nos referimos a la intención de mejorar la infraestructura de las aplicaciones (o añadir nuevas) que permitan alcanzar los objetivos de negocio. Modernizar es necesario. Permite a las empresas mantenerse en constante renovación, poder generar nuevas estrategias digitales y ofrecer experiencias de usuario mucho más completas y satisfactorias. 

Método Exisoft

En Exisoft, desarrollamos una metodología propia que consta de una etapa de diagnóstico y 4 fases:

  • Determinación de objetivos
  • Separación de capas y generación de servicios de datos
  • Arquitectura, cultura DevOps y automatización de la infraestructura
  • Recolección de datos y conversión de las métricas en KPIs

Determinación de objetivos

Durante esta etapa lo que se busca es determinar el o los sistemas que se verán involucrados en el proceso de modernización que se llevará a cabo.

Según ese análisis, definimos si se realizará una migración escalonada y bajo qué criterios se haría ese escalonamiento, o si se realizará una salida siguiendo un esquema “Big Bang”, donde se desactive la aplicación actual y se implemente la versión modernizada.

Separación de capas y generación de servicios de datos

Es importante aclarar que esta etapa solo afecta a aquellas aplicaciones que se encuentran diagramadas en un enlatado “todo en uno”, y se debe trabajar en segmentar las diferentes capas de la aplicación.

Principalmente, se propone tener 3 capas básicas: la capa de datos donde se tienen todos los orígenes de datos que utilicen las aplicaciones, la capa de lógica donde se tengan todas las reglas del negocio y, finalmente, la capa de visualización o exposición que se encargará de exponer las aplicaciones.

Luego pasamos a la generación de servicios de datos, la segunda etapa de esta fase. Creamos microservicios que se encargan de estandarizar el acceso a las diferentes fuentes de información, ya sean bases de datos relacionales, no relacionales o archivos.

El objetivo principal es lograr que no se tenga otra forma de acceder a los datos que no sea a través de estos servicios, ya que persiguen el objetivo de unificar los accesos, garantizar la confiabilidad de los datos y convertirse en la única fuente de información.

Las migraciones pueden darse en dos clases diferentes de servicios: simples u orquestados. Un servicio simple se caracteriza por no tener lógica de negocio, es decir, son servicios que pueden construir objetos a partir de múltiples fuentes de información, o pueden ser simples ABM de entidades de negocio. Esta migración de servicios simples busca empezar a liberar la carga del monolito o del bus que se tenga actualmente implementado, para darle espacio a los servicios de orquestación más complejos a que puedan tener más recursos en caso de un pico de demanda.

Por su parte, los servicios orquestados suelen tener lógica de negocio y múltiples accesos a múltiples fuentes de datos, y es por esto que son la última pieza a migrar hacia la nueva arquitectura de microservicios. Para este punto los servicios no deberían contar con accesos directos a las fuentes de datos así como tampoco deberían tener la lógica que se encuentra dentro de los servicios simples para los ABM de entidades de negocio, por lo que su complejidad de migración debería verse reducida.

Arquitectura, cultura DevOps y automatización de la infraestructura

El primer paso es determinar qué arquitectura vamos a implementar, por lo que es necesario definir, en primer lugar, qué plataforma vamos a utilizar para la gestión de contenedores (Openshift o Kubernetes, por ejemplo) y qué gestor de imágenes se va a utilizar. 

Ya teniendo los servicios migrados y listos para ser desplegados, las imágenes creadas y publicadas en el registry definido previamente en la definición de arquitectura, el siguiente paso es trabajar en las configuraciones de las aplicaciones, la adopción de las prácticas detalladas por IBM en su metodología de los 15 factores.

Como último paso dentro de todo el proceso, llevamos a su máxima expresión la cultura de DevOps y se opta no sólo por automatizar los procesos de despliegue de aplicaciones mediante herramientas como pueden ser Jenkins o Tekton, sino que además, se empieza a trabajar con ideas asociadas a Infrastructure as Code (IaC), y se busca que el despliegue de nuevos clusters o ampliaciones de los clusters actuales se basen en esta idea de que todas las configuraciones de la infraestructura se hagan mediante archivos de configuración y procesos automáticos que apliquen los cambios.

Recolección de datos y conversión de las métricas en KPIs

El objetivo principal será conseguir la mayor cantidad de información para poder elaborar métricas acerca de la salud de las aplicaciones. Esta etapa puede iniciar tan pronto como se comiencen a desplegar los nuevos servicios o se tenga forma de acceder a los servicios y/o aplicaciones previamente desplegadas. La forma más eficiente de realizar esta recolección de datos es implementar algún stack de análisis de logs y algún motor de búsqueda. Por ejemplo, puede ser el stack ELK, que consiste en Elasticsearch como motor de búsqueda, Logstash como recolector de logs y Kibana como herramienta de explotación de información. A estas herramientas se les pueden sumar herramientas gráficas como Grafana para poder generar tableros visuales que le sirvan a los analistas de negocio. 

Y así como comenzamos a recolectar datos, también comenzamos a generar métricas, y analizamos, de todas estas métricas, cuáles van a ser las claves que se van a presentar al negocio para que éste tome decisiones de hacia dónde se pueden enfocar los esfuerzos en los próximos períodos.

En resumen, lo que hacemos es tomar las métricas y evaluarlas teniendo en cuenta indicadores claves que se alineen a los objetivos de negocio de la empresa.

Conclusión

Es importante tener presente que modernizar las aplicaciones ya existentes dentro de una empresa puede traer aparejados problemas. Es probable que los sistemas dentro de las compañías estén relacionados entre sí y que la evolución de uno de ellos repercuta en el funcionamiento de los otros. 

En Exisoft somos expertos en integración de negocios y sistemas. Por eso desarrollamos nuestra propia metodología de modernización de aplicaciones, que elimina por completo el riesgo de pérdida de información y aumenta la eficiencia y productividad de los procesos.

Sabemos cómo evolucionar las apps de tu empresa, ponte en contacto con nosotros 👉 LINK CONTACTO

Exisoft | Transformamos grandes empresas en líderes digitales