Modernización de Aplicaciones

Modernización de Aplicaciones

Hablamos de «modernización de aplicaciones» cuando encaramos la tarea de tomar una pieza de software todavía en uso, pero basado en un  lenguaje o plataformas antiguas, para traducirla a lenguajes y/o plataformas más modernas.

También es común llamar a esta práctica: migración de aplicaciones heredadas o modernización de aplicaciones legacy.

El objetivo es aprovechar las características que presentan las nuevas metodologías y prácticas en el desarrollo de software, para ponerlas al servicio de las tareas que realizaba un software antiguo.

La idea es prolongar la vida útil del software, junto con todo el conocimiento que se volcó en el desarrollo inicial de la aplicación, aprovechando la óptica de las innovaciones técnicas más actuales.

¿Por qué modernizar las aplicaciones legacy?

Es innegable que las organizaciones han realizado una gran inversión en software e infraestructura informática. Es una inversión que no puede ser ignorada y que, sin duda alguna, debe ser protegida.

La actualización de las aplicaciones legadas, aprovechando herramientas, infraestructura y lenguajes actuales es una forma sólida de preservar esa inversión.

Una estrategia adecuada de modernización de aplicaciones reducirá los costos, optimizando los recursos necesarios y aumentando la fiabilidad de las instalación.

Es evidente que las empresas no pueden dejar de incluir estrategias de modernización de aplicaciones dentro de su estrategia global en su gestión de IT.

Enfoques y patrones de modernización de aplicaciones

Los enfoques más comunes para la modernización de aplicaciones son:

  • Rehosting: También llamado «lift and shift» («levantar y cambiar»). Hace referencia a que se toma una aplicación existente y se la muda del entorno heredado a una infraestructura más moderna, normalmente: cloud computing. Bajo este enfoque, la aplicación es trasladada tal y como está, sin que sufra cambios en su código. Cabe destacar que no todas las aplicaciones legadas pueden ser actualizadas utilizando esta aproximación al problema.
  • Refactoring: La refactorización es reescribir o reestructurar el software existente. Básicamente, se coge una pieza de software y se la reescribe, normalmente utilizando capacidades nativas de la plataforma de destino, para que haga lo mismo, pero de una forma óptima en el nuevo entorno.
    Este enfoque está indicado cuando el software candidato a ser actualizado está dividido en piezas más pequeñas de funcionamiento, con determinados puntos de acople claros o en una distribución de funcionamiento que se denomina: microservicio.
  • Reestructuración: Es un enfoque que se aplica cuando debemos profundizar en los cambios que realizamos sobre la arquitectura original del software candidato. Implica normalmente actualizaciones complementarias más profundas, abarcando desde la sustitución de piezas de código o, incluso, el backend de acceso a la base de datos.

Estrategias de modernización de aplicaciones legacy

El punto de partida es un análisis en profundidad del software candidato.

La evaluación e inventario de las aplicaciones legacy deberá incluir no solo sus características técnicas, sino también el ROI de aplicar la modernización en sí misma.

Es importante no perder de vista una perspectiva global del proceso, ya que nos permitirá detectar interoperabilidades entre distintos departamentos.

Además, determinar si el proceso podrá aplicarse en una sola etapa o si deberá seguirse una determinada gradualidad en la modernización, es vital para no fallar estrepitosamente.

En el caso de una aproximación gradual, por ejemplo, deberá estudiarse cómo afecta al rendimiento global del sistema el desacople módulo a módulo. Esto nos permitirá adoptar medidas correctivas a tiempo y a gestionar de forma adecuada los recursos y la disponibilidad de servicios.

Tecnologías fundamentales en la modernización de aplicaciones

El menú donde seleccionar sobre qué tecnología apoyaremos la modernización de aplicaciones es variado. Podemos citar:

  • Computación en la nube: Es el destino estrella. Es el objetivo al que se refieren mayoritariamente los procesos de modernización de aplicaciones. Existen las nubes públicas, las privadas y las nubes híbridas (normalmente entornos locales interaccionando con nubes públicas o privadas o ambas).
  • Contenedores: Se denomina de esta forma al método por el cual empaquetar, desplegar y operar aplicaciones y cargas de trabajo en la nube. Esta tecnología favorece la escalabilidad y la portabilidad, potenciando la eficiencia operativa de la computación en la nube.
  • Microservicios: Más que una tecnología en sí misma, es una disposición de la arquitectura de la aplicación. En vez de operar el software de forma monolítica, se elige desacoplarlo en componentes más pequeños, favoreciendo despliegues, actualizaciones e interoperaciones.
  • Automatización y orquestación: La orquestación hace referencia a la interoperabilidad de los contendores en red y, además, a los despliegues y al escalado del software. La automatización es el principio por el cual intentamos que las tareas de orquestación no dependan de procesos de actualización supervisados. Es el reconocimiento de que cada vez es más necesario garantizar la independencia, seguridad y sostenibilidad de equipos de desarrollos ágiles y escalables.

¿Es la modernización de las aplicaciones solo una moda?

Las empresas invierten ingentes cantidades de recursos en sus aplicaciones de misión crítica. Por eso hay que desterrar la connotación negativa que acarrea a veces el término «aplicación legacy». La modernización de aplicaciones, lejos de ser una moda, es una forma de garantizar y preservar la inversión realizada en la cartera de aplicaciones existentes en una compañía.

La solución de retirar el software legado sin más y comenzar con un nuevo desarrollo desde cero, no suele ser un camino viable para la mayoría de las empresas. Es normal que los análisis de costes y pérdidas de productividad revelan riesgos no asumibles en la mayoría de los casos..

La modernización de aplicaciones es la forma más adecuada para la mayoría de las empresas de abordar el tema de migrar a nuevas tecnologías y aprovechar novedosas herramientas, arquitecturas y/o frameworks.

Hacia dónde va la modernización de aplicaciones legacy

Es evidente que la tendencia actual es la utilización de más de un servicio en la nube pública apuntando, principalmente, a una optimización de costes, flexibilidad y disponibilidad continua.

Los nuevos paradigmas informáticos de distribución y escalabilidad pueden ser abordados más fácilmente desde aplicaciones modernas, que desde las aplicaciones legacy, monolíticas y centralizadas.

La tendencia también nos refiere a la elección estratégica de contenedores y a la automatización de la orquestación como pasos para aliviar y optimizar cargas de trabajo.

Los esfuerzos en contenerización de las aplicaciones legacy es donde más están invirtiendo las empresas, escalando al máximo las arquitecturas de microservicios.

Nosotros

Base100 ofrece un determinado conjunto de herramientas y productos con el objeto de que cualquier proceso de implementar soluciones mixtas de modernización de Mainframe y hardware midrange propietario con una garantía de éxito indiscutible.

¿Le interesa la propuesta?

¡Sigamos avanzando ¡hablemos de modernización!

Contáctenos

o si quiere profundizar, no dude en leer más información sobre reducción de mips en mainframe.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.