Los retos de la renovación de sus aplicaciones

¿Los directivos de su empresa hablan de digitalización, innovación, de aumentar la velocidad y la flexibilidad? ¿Le piden constantemente que reduzcas costes y el cumplimiento permanente de reglas exhaustivas?

Aparte de esto, ¿lucha contra una cantidad desbordante de aplicaciones que son difíciles de integrar? ¿Usa aplicaciones monolíticas que ya están en las últimas? ¿Su infraestructura es rígida y le cuesta ser compatible con los nuevos ámbitos empresariales? Y, por supuesto, ¿todos los sistemas tienen que funcionar de forma estable, pese a los cambios?

Conflicto entre negocio y TI.Fuente: representación propia

Le damos la bienvenida a la dura realidad. Para cargar con todo esto hay que hacer equilibrismo.

Vamos a ver los retos en concreto:

  • Es responsable de una serie de sistemas, cuyo mantenimiento es complicado.
  • Parte de sus aplicaciones se han desarrollado a lo largo de la historia, disponen de innumerables interfaces a otros sistemas y ya están en las últimas tecnológicamente.
  • Los componentes de las aplicaciones esenciales para su negocio se van a quedar (pronto) sin soporte del fabricante.
  • Será muy complicado o imposible implantar las nuevas integraciones entre los sistemas requeridas permanentemente por el ámbito técnico.
  • Las extensiones de la funcionalidad técnica son muy caras y complicadas.
  • Dispone de muchas aplicaciones diferentes —microservicios monolíticos y microservicios nuevos nativos en la nube— que son muy importantes para su empresa, pero que se han integrado sin ton ni son en el modelo de negocio de su empresa.

En 2008, Gartner advirtió de la necesidad de agilizar el conjunto de aplicaciones: cada aplicación nueva se integrará en el modelo de negocio. Por eso, sin la gestión «activa», el conjunto de aplicaciones se convertirá en una carga muy pesada que impedirá el avance ágil y flexible de la empresa. La situación actual del mercado y la presión dominante de la competencia hacia la digitalización y la agilidad de la TI hacen que la «carga muy pesada» citada por Gartner adquiera más peso actualmente. Así que no tiene que afrontar este reto solo: todos nos enfrentamos a él a diario.

¿No optaría por el desarrollo individual de software? Renovar sus aplicaciones es rejuvenecerlas para que no sigan siendo un lastre ante los cambios pendientes. Y es que si renueva sus aplicaciones, podrá desplazarlas a la nube que quiera, donde las podrá ejecutar. Le recomendamos una renovación cuidadosa pero determinante de la aplicación anterior, con ayuda de nuestros profesionales.

Ventajas de renovar la aplicación

¿Quiere digitalizar su empresa, pero sin desarrollar un software nuevo? La renovación de aplicaciones es el camino correcto.

Al renovar sus aplicaciones actuales, dispondrá de una infraestructura de sistemas futurista y que no tendrá que volver a integrar en su empresa. Donde antes ampliar el sistema era peor que un dolor de muelas, con la renovación de aplicaciones podrá integrar nuevas funciones fácilmente, lo que le permitirá ser flexible ante los cambios del mercado e introducir nuevos modelos de negocio.

Renovar las aplicaciones es el comienzo para que sus aplicaciones de empresa sean más rápidas, eficientes y adaptables.

Y no tendrá que desarrollar un sistema nuevo, sino usar la infraestructura de la aplicación que tenía y añadirle las ventajas de las novedades tecnológicas.

Además, podrá ahorrarse dinero gracias a la rentabilidad del hosting en la nube y los conceptos empresariales correspondientes. Como ponemos sus aplicaciones en la nube, se ahorrará su centro de datos o, al menos, podrá reducirlo. Pagará solo por los servicios que necesita en realidad.

Tome medidas modernas para reducir sus costes operativos, por ejemplo, DevOps y la ingeniería de fiabilidad del sitio (Site Reliability Engineering). ¿O para usted es importante cumplir con especificaciones? Renovar las aplicaciones le permitirá cumplir las normas de conformidad y tener en cuenta la nueva normativa en sus aplicaciones anteriores.

Somos expertos en renovar aplicaciones: ¡estamos deseando ayudarle!

Antes de presentarle nuestro procedimiento de migración a una infraestructura de sistemas moderna, queremos explicarle en detalle cómo se lleva a cabo la renovación de aplicaciones.

Cómo se renueva una aplicación

Las aplicaciones se pueden renovar de distintas formas. Para decidir cómo vamos a renovar sus aplicaciones, primero debemos saber cuánto se debería prolongar la vida útil de la aplicación, cuánto uso empresarial le queda a la aplicación y, por supuesto, la tecnología con la que se desarrolló la aplicación en cuestión. Estas condiciones marco, junto con otras pocas cuestiones, marcarán el camino a seguir.

Nos gusta mucho la categorización de las estrategias de migración de la investigación de Gartner: las cinco opciones originales descritas en 2010, las 5 opciones estratégicas para migrar aplicaciones, han cambiado con el paso de los años. Por eso, desde 2018 la investigación de Gartner contempla siete opciones para renovar aplicaciones obsoletas. Sin embargo, estamos convencidos de que la renovación de aplicaciones con medidas modernas no tiene por qué reducirse a una de esas siete.

Más bien, lo fundamental es encontrar el mejor enfoque para cada componente de la aplicación a su debido tiempo por medio de un procedimiento iterativo. Por tanto, empezaremos, por ejemplo, por el rediseño de la plataforma para lograr el objetivo por medio de la refactorización gradual y reestructuración parcial de los componentes de la aplicación.

Posibles formas de llevarlo a cabo y sus repercusiones al detalle

Encapsulado

El encapsulate —encapsulado— es la idea fundamental en que se basa la economía de las API y el salvavidas de muchas aplicaciones obsoletas habitualmente monolíticas. La lógica de negocio de las aplicaciones obsoletas se hubo implementado normalmente con mucho gasto de por medio. Nosotros tomamos el núcleo de la lógica de negocio y lo encapsulamos en modernas API (de REST), lo que sienta las bases de la renovación gradual, ya sea reestructurando la aplicación obsoleta o ampliando con servicios nuevos que se mantienen en segundo plano debidamente y con transparencia para los consumidores de API.

Además, con ese enfoque, la lógica de negocio se puede reutilizar en su empresa superando los límites de la aplicación. Esto se puede conseguir con una nueva interfaz de usuario gráfica basada en web, adaptando algunas funciones de la aplicación obsoleta para que puedan seguir usándose o mediante el soporte en dispositivos móviles de la aplicación existente.

Un proceso contrastado en el encapsulado es usar Strangler Pattern: en este caso, migraremos de forma progresiva su sistema obsoleto sustituyendo poco a poco partes de la funcionalidad por nuevas aplicaciones y servicios. Al reemplazarse de manera continuada las funciones, el sistema nuevo acabará sustituyéndolas todas y se podrán poner fuera de servicio.

Rehost

En esta opción de renovación de aplicaciones, no se modifica la aplicación principal implementada, sino que se desplaza a un nuevo host. Se preguntará el porqué. A veces, es una necesidad condicionada por el funcionamiento si, por ejemplo, se eliminaran o reestructuraran centros de datos. Más a menudo, suele ser un seguro de vida para la aplicación obsoleta que se podrá usar en una plataforma moderna en la nube más rentable, flexible, segura y fácil de escalar que en el entorno anterior.

Este enfoque suele denominarse Lift&Shift. Le ayudaremos a elegir la plataforma en la nube (Cloud Plattform) adecuada. Algunos ejemplos de Lift&Shift son las migraciones VMware P2V o las exportaciones o importaciones VM. Si la aplicación obsoleta ya estuviera en una estructura compartimentada, facilitaría considerablemente este paso. Aunque por rehosting entendemos también cambiar el servidor de la aplicación o la migración de host a Linux de su aplicación.

Cambio de plataforma

Es fácil de confundir con el rehosting, aunque con el cambio de plataforma permitimos pequeñas intervenciones en el código de la aplicación obsoleta. Esas intervenciones no modifican la lógica de negocio implementada y testeada, sino que sirven para adaptar la aplicación a un nuevo sistema en tiempo de ejecución. Algunos ejemplos de esto son la migración de Oracle Weblogic a Apache Tomcat, o el cambio de la aplicación de Oracle DB a una solución RDBMS de código abierto claramente más flexible y, normalmente, más económica como MySQL o PostgreSQL.

Refactorización

La refactorización es una de las herramientas estándar de nuestros desarrolladores, ya que esta técnica se usa con frecuencia también en el desarrollo individual de software. La refactorización es la mejora estructural manual o semiautomática de código de software conservando el funcionamiento habitual de la aplicación. Una condición previa obligatoria, aunque no siempre suficiente, para que la refactorización resulte eficaz es que la automatización del testeo del código abarque mucho. La refactorización le aportará a su aplicación un nivel completamente nuevo de mantenibilidad, escalabilidad, portabilidad y seguridad. Además, la refactorización aumenta de forma continuada la productividad del equipo de desarrollo.

En la refactorización seguimos el principio de la estrella polar y no dejamos nada al azar: renovamos con vistas a un objeto concreto. En el caso de la renovación de aplicaciones, hemos mantenido el objetivo de la 12-factor App. Asimismo, le ayudaremos a que su aplicación funcione ininterrumpidamente en contenedores.

Con la refactorización también se sientan las bases de la renovación de la arquitectura de la aplicación, por ejemplo, desglosando la base de código existentes en los componentes de frontend, backend y (micro)servicios, además de solucionar problemas técnicas que se han dejado estar durante mucho tiempo.

Rediseño de la arquitectura

Volveremos a diseñar la arquitectura de su aplicación; el rediseño de la arquitectura es el requisito, en cierta manera, del resto de opciones que destacamos aquí.

Al renovar la aplicación queremos conservar las principales características funcionales de la aplicación. Sin embargo, no siempre es recomendable el planteamiento de «todo como antes», ya que se desaprovecharían las opciones de mejora y digitalización de sus procesos de negocio. Con el rediseño de la arquitectura cambiaremos su aplicación para insuflarle un aspecto nuevo. Ese potencial de la nueva arquitectura aumenta la resiliencia de su aplicación y disminuye los costes operativos y de mantenimiento. Hay más información sobre las opciones que aporta el rediseño de la arquitectura en nuestra propuesta de asesoramiento Application Architecture.

Reestructuración

Si las otras opciones se quedaran cortas o ya las hubiera aprovechado, en muchos casos, queda tomar el camino de la renovación mediante la fabricación de un nuevo componente de la aplicación.
A diferencia de un desarrollo individual de software, en este caso, nos seguiremos centrando en los requisitos funcionales básicos del componente obsoleto. Por tanto, el componente nuevo se integraría fácilmente en interfaces de una red; es como cambiar por completo un motor roto, pero conservando el chasis y la carrocería.

Sustitución

La opción de sustituir la aplicación se refiere, para quedarnos en el ejemplo anterior, más a comprar un coche nuevo que a sustituir cada una de sus piezas. En una sustitución se intenta que los requisitos funcionales válidos de la aplicación obsoleta se puedan seguir cumpliendo de la forma más práctica posible gracias a una nueva solución integral. Ya se lo imaginará: a la hora de buscar la solución, surge de nuevo la pregunta de «make or buy (hacerlo o comprarlo)». Si la respuesta es «make», estaremos encantados de ayudarle con nuestro asesoramiento y desarrollo individual de software.

Como ya hemos comentado, la renovación de aplicaciones requiere en muy pocos casos solo una de las opciones mencionadas. Un ejemplo muy habitual de migración se muestra en la imagen siguiente, en que se combinan los elementos de rediseño de la arquitectura, refactorización, encapsulado y reestructuración, creando un concepto general que permitirá el paso gradual de una estructura monolítica a una de servicio modular:

Combinación de opciones para la renovación de aplicaciones.Fuente: representación propia

Cada sistema obsoleto es diferente. Por eso, será mejor que decidamos juntos el mejor procedimiento para renovar su aplicación obsoleta y elijamos la combinación y orden de opciones óptimos para ello.

Nuestros servicios de renovación de aplicaciones

Para la renovación de aplicaciones hemos desarrollado el procedimiento que mostramos a continuación a modo de ejemplo. Con base en este, hemos renovado satisfactoriamente infinidad de sistemas existentes.

  1. Al comienzo de la renovación de aplicaciones, nos sentaremos con usted par hablar sobre las ideas, visiones y objetivos que persigue con la renovación. Estableceremos un modelo de colaboración para que siempre tenga información transparente acerca de la fase del proyecto en la que nos encontremos, los objetivos que se han logrado y cuáles serán los siguientes que alcanzar. Además, formaremos un equipo que cumpla sus requisitos y acelere la renovación de sus aplicaciones.
  2. En el siguiente paso, analizaremos junto con usted el sistema existente y trabajaremos en un plan de migración con pasos de migración e hitos definidos. Aparte de esto, elegiremos la mejor combinación de opciones para la renovación de sus aplicaciones.
  3. Después, se implementará paso a paso. Es decir, dispondrá siempre de una aplicación ejecutable, pero en cada iteración se habrán renovado y mejorado partes por separado. Esto permitirá que su software siga funcionando sin interrupciones. Gracias a la rápida puesta en funcionamiento, podremos poner en común nuestras opiniones, que ayudarán a los siguientes pasos de la migración.
  4. Además de la renovación de la aplicación, nos encargaremos de los requisitos de la infraestructura. Para ello, optaremos, por ejemplo, por el pipeline de estructuración, incluida la automatización de tests y el despliegue automático y nos encargaremos del aprovisionamiento automático de los entornos. Garantizamos el funcionamiento continuo y sin problemas de la aplicación gracias a DevOps y a la metodología de la ingeniería de fiabilidad del sitio.

Como ve, este procedimiento facilita el paso sin complicaciones de su aplicación anterior a la aplicación de la nueva era.

Su campo de especialización seguirá siendo productivo y, encima, tendrá una aplicación renovada con la que seguir disfrutando. ¡Estamos deseando empezar a trabajar con usted!

Su persona de contacto

Novatec_Markus-Mueller

Markus Müller

Director Digital Product Development

Dominik Meyer

Managing Director
Table of contents
Su persona de contacto Markus Müller Director Digital Product Development
Novatec_Markus-Mueller