Modernización de aplicaciones: los cuatro pasos para un buen journey

Trabajar de la mano con aplicaciones se ha convertido en una apuesta imprescindible para todo negocio altamente competitivo, en especial en estos tiempos de pandemia, donde se ha acelerado la necesidad de automatizar muchos procesos a través de aplicaciones. Los servicios que se adaptan a las necesidades específicas de cada negocio son el mejor apoyo que pueden tener las empresas en el 2021.
Journey de app modernization

Con las exigencias tan aceleradas de los últimos años, las empresas se han visto impactadas por el rendimiento, estabilidad de sus aplicaciones y en especial por el time to market para colocar nuevos requerimientos a disposición de los clientes. Para entender la magnitud de todo esto, Gartner predice que, para el 2025, solamente las agencias gubernamentales deberán tener modernizadas más del 50% de sus aplicaciones legadas, para mejorar la resiliencia y la agilidad.

El concepto del Journey de la Modernización de Aplicaciones, se puede definir como un proceso que implementa diferentes pasos para llevar una aplicación a la nube, teniendo en cuenta su estado actual. En este Journey se debe realizar un  diagnostico inicial, para luego determinar el mejor camino de modernización según el estado de cada aplicación.

Para definir un journey apropiado, es necesario que las organizaciones cuenten con el apoyo de un trusted advisor/trusted partner, que les brinde tranquilidad a través de un enfoque sistemático, escalable y confiable, permitiéndoles tener una estrategia de modernización de aplicaciones acertada, orientada a victorias tempranas y con una alta generación de valor para el negocio.

Si buscas en internet, encontrarás muchos journeys de modernización de aplicaciones, pero la mayoría de ellos tienen pocos caminos disponibles, son ambiguos o poco claros, y e incluso llegan a ignorar el estado real de las aplicaciones. El problema de esto es que se pueden producir estrategias riesgosas, que generan no solamente sobrecostos y desperdicio de recursos, sino un impacto negativo en la organización, dada la imposibilidad de crear el valor esperado por el negocio.

Es por esto que en SoftwareONE InterGrupo estructuramos un Journey de Modernización de aplicaciones, con el objetivo de proveer a los clientes el camino más apropiado para llevar cada aplicación a la nube. De esta manera se entrega una aproximación diferencial que involucra herramientas de análisis de punta, estándares industriales de construcción de software, mejores prácticas de los cloud providers, una amplia experiencia en optimización de costos de nube, y nuestra experiencia construyendo aplicaciones para la nube.

Para iniciar este camino hacia la modernización de aplicaciones, es importante tener en cuenta los pasos correctos de acuerdo a cada organización, con el fin de maximizar el retorno de la inversión, reducir las ineficiencias actuales y lograr generar el valor de negocio esperado en el menor tiempo posible

Existen dos vías principales para la modernización de aplicaciones: cuando el cliente cuenta con aplicaciones existentes y desea llevarlas a la nube, y cuando el cliente presenta una iniciativa y desea comenzar desde cero, teniendo una visión de construir una aplicación que aproveche todas las ventajas de la nube.

Comencemos hablando sobre las opciones para aplicaciones existentes:

Application Modernization Advisory:

Cuando tenemos aplicaciones existentes, lo primero que debemos realizar es un diagnóstico del estado en que se encuentran. A través de los resultados de ese análisis, brindamos una estrategia para migrar estas aplicaciones a la nube, entendiendo lo que necesita el cliente de ellas para el futuro y teniendo en cuenta su estado actual.

A este momento lo podemos considerar como la piedra angular del journey, debido a que el cliente estará acompañado de un equipo de expertos que le recomendarán el mejor camino a elegir.  En la siguiente imagen se puede observar el posible resultado luego de hacer un Application Modernization Advisory:

Una vez completado este diagnóstico, y según las necesidades de cada aplicación, podemos encontrar 4 posibles caminos:

1. Re-host: En esta primera alternativa se toma lo que una empresa tiene de manera local u onPremise, para llevarlo a la nube en un Lift and Shift, lo que quiere decir que se migran las máquinas virtuales onPremise a un esquema de IaaS (Infraestructure as a Service). Esto significa que en esta opción se toma a la aplicación en su estado original y se traslada a la nube, sin realizar ajustes sobre esta.

Entre los principales beneficios de este método, Amazon afirma que el re-hosting no solamente nos brinda facilidad a la hora de optimizar las aplicaciones cuando se estén ejecutando en la nube, sino que también nos ayudará a ahorrar al menos un 30% en sus gastos.

Este primer camino se complementa con uno de nuestros Cloud Services llamado Compute Migration – Factory, donde se realizan los proyectos de lift and shift o de migración, a partir de los resultados establecidos previamente.

2. Re-platform: En este caso hablamos de una alternativa basada en el PaaS (Platform as a Service), que se entiende como tomar las aplicaciones existentes y hacerles unos mínimos ajustes para que sean compatibles con la nube. Estos cambios permiten mejorar varios elementos importantes para las aplicaciones, como lo son la seguridad, la disponibilidad, la escalabilidad y, adicional a esto, agregar prestaciones como la elasticidad de recursos.

En esta opción realizamos pocos cambios en la aplicación con la expectativa no ajustar más del  10% de las líneas de código, por lo cual no es necesario realizar de nuevo la arquitectura de la aplicación.

Al necesitar de muy pocos cambios, Gartner nos habla de este mecanismo como una estructura perfecta para sacarle el máximo provecho a las aplicaciones con las que una empresa puede estar trabajando correctamente. Este tipo de proyectos son victorias rápidas para los clientes, porque podemos migrar las aplicaciones en corto tiempo (3 a 6 semanas).

3. Re-factor: Esta opción es ideal para organizaciones que buscan solucionar grandes problemas en sus aplicaciones de raíz, con el objetivo de posicionarse como lideres en el mercado.

Para entender mucho más este punto, debemos aclarar que las aplicaciones legadas, generalmente se basan en arquitecturas monolíticas, donde toda la aplicación es una sola gran unidad. Por otro lado, estas suelen tener problemas de deuda técnica e  incompatibilidad con la nube, al haber sido construidas con un enfoque onPremise.

Como resultado, las organizaciones tienen que lidiar con aplicaciones pesadas, lentas, difíciles de mantener, difíciles de escalar y con pobre experiencia de usuario, generando lo que llamamos “legacy inefficiencies”.

En el proceso de re-factor se realizan varios pasos, con el objetivo de mejorar la aplicación para luego llevarla a la nube. Un primer paso importante que se realiza es lo que se conoce industrialmente como la descomposición del monolito. Para aclarar esto, lo que se busca es extraer módulo a módulo (teniendo en cuenta que no todos aplican para esto) de la aplicación legada, lo que permitirá mejorar la modularidad, la mantenibilidad, la escalabilidad y la gestión de recursos para las aplicaciones.

El segundo paso que realizamos es pagar parte de la deuda técnica de la aplicación, teniendo en cuenta los temas más críticos y que pongan en riesgo a la seguridad y el desempeño. El tercer paso es ajustar todos los temas no compatibles con la nube, y por último, analizar la aplicación para eliminar problemas previos de seguridad y desempeño.

Para sobre cómo identificar si en tu empresa sufren de deuda técnica, te invitamos a mirar este artículo.

Evidentemente, la opción de re-factor comparte algunas similitudes con la de re-platform, pues en ambas se debe ajustar la aplicación para llevarla a la nube. El detalle es que, en el caso del re-factor, se logra tener un resultado de valor más grande para el cliente, pues se entra a solucionar de raíz muchas de sus problemáticas actuales.

Uno de los principales beneficios de esto es que, al tener muy detallados los servicios por la extracción del monolito, se puede trabajar de manera específica en lo que necesita la operación de la empresa.

Cuando las aplicaciones presentan necesidades de re-platform o re-factor, el paso a seguir en el journey es el de Application Modernization Delivery, donde se hace todo el desarrollo necesario sobre las aplicaciones existentes, utilizando nuestro proceso de desarrollo personalizado para modernización.

Ahora hablemos un poco sobre qué se debe hacer cuando queremos empezar desde cero, que puede darse cuando en el Applicacion Modernization Advisory encontramos que una determinada aplicación debe ser reconstruida. También puede darse porque el cliente tiene una iniciativa para arrancar la construcción de una aplicación:

Cloud Native Application

Relacionado con el término proyectos desde cero, se parte por el modelo Cloud Native Application, en donde se construye una aplicación a la medida, según de las necesidades del cliente y a través de una arquitectura nativa de nube. De esta manera, se espera explotar al máximo las capacidades y servicios de nube, para proveer a los clientes aplicaciones de última generación.

Teniendo en cuenta lo anterior, surge el cuarto camino posible:

4. Re-build: Este proceso aplica cuando los indicadores nos arrojan que las aplicaciones deben ser construidas a la medida y desde cero, ya sea porque el primer advisory nos diga que se encuentran con grandes deficiencias técnicas, porque el cliente es consciente de la situación crítica que sus aplicaciones viven o porque en la empresa quieren implementar una nueva iniciativa que todavía no existe.

Con estas necesidades identificadas, le podemos dar paso al siguiente punto de este camino en específico, llamado Cloud Native Application Advisory. Este punto nos sirve para poder definir las bases funcionales de la nueva aplicación, la arquitectura nativa de nube, y, adicionalmente, la estimación y planeación de alto nivel de lo que sería la construcción del proyecto.

A diferencia del primer paso, este advisory no cumple funciones de diagnóstico, sino que se interpreta como una preparación de los elementos necesarios para comenzar a construir.

Cuando tengamos todo esto definido, estaremos listos para realizar el Cloud Native Application Delivery, momento en el que comenzaremos a desarrollar la aplicación desde cero, teniendo un enfoque totalmente nativo de nube, y utilizando tecnologías de última generación, de acuerdo con los requerimientos del cliente.

El último paso para todas las opciones del journey es el de Managed Cloud Applications, un servicio que busca realizar una gestión integral del portafolio de aplicaciones de los clientes, en donde se lleva a cabo una modernización continua de sus aplicaciones, para mantenerlas actualizadas.

Complementariamente, es de gran importancia para los clientes, gestionar los temas DevOps, el rendimiento, corrección de defectos y la planeación estratégica del portafolio, alineándonos así con el cliente, para brindar un acompañamiento total en todo lo relacionado con las aplicaciones.

Si todavía tienes preguntas sobre los beneficios de nuestro journey, te dejamos algunos puntos que te ayudarán a entender por qué esta es la mejor decisión para tus aplicaciones:

  • Tu información no podría estar más segura: Las nubes públicas como AWS y Azure, a través de sus avanzadas especificaciones de seguridad, se han encargado de derrumbar todos los miedos que tienen algunas empresas sobre el cuidado de su información.
  • Tendrás de tu lado al mejor equipo: Contar con un trusted partner te ayudará a direccionar tus aplicaciones según las demandas del negocio y del mercado. Lo mejor de todo es que tendrás un apoyo de principio a fin.
  • Mayor ahorro: Al pasarte a la nube, podrás reinvertir una gran cantidad de recursos que consumía renovar la infraestructura física, sin contar con que ya no te preocuparás por fallas de los operadores, problemas por obsolescencia o algún accidente por desastres naturales.
  • Se genera valor rápidamente: Esta inversión permite obtener resultados en el menor tiempo posible, para acelerar la comercialización y reducir los costos, a través de alternativas de optimización de aplicaciones.
  • Resultados de calidad: De acuerdo al estado del proyecto, existe la posibilidad de conseguir hasta un 80% de ahorros en la modernización, y de esta forma, entregar un servicio con la mayor calidad, que mejora la productividad y la eficiencia general de los procesos.

Descubre muchos más beneficios de nuestro Journey de modernización de aplicaciones y déjanos evolucionar tus aplicaciones al próximo nivel.

Autor:
Alejandro Ocampo
Application Services Product Manager