La modernización de aplicaciones es el proceso de tomar las aplicaciones actuales existentes y modernizar su infraestructura de plataforma, su arquitectura interna y/o sus características. Gran parte del debate actual en torno a la modernización de aplicaciones se centra en las aplicaciones monolíticas en local, que se suelen actualizar y mantener mediante procesos de desarrollo en cascada, y en cómo se pueden incorporar dichas aplicaciones a la arquitectura de nube y a los patrones de publicación, más concretamente a microservicios y DevOps.
Las ventajas de la modernización de aplicaciones se suelen resumir en la mejora de la velocidad de la entrega de nuevas características, la exposición de la funcionalidad de las aplicaciones existentes para que la consuman otros servicios a través de la API y el cambio de plataforma de las aplicaciones desde local a la nube para mejorar la escalabilidad y el rendimiento, así como la estrategia de TI y centro de datos a largo plazo.
Los retos de la modernización de aplicaciones normalmente se reducen al coste y la complejidad. Migrar una aplicación de local a a la nube sin pensar en el ROI es como migrarla por migrarla. Por el contrario, otras aplicaciones podrían obtener importantes ventajas del cambio de plataforma o arquitectura, pero están tan asociadas a los sistemas y la infraestructura existentes que la complejidad de la modernización podría ser superior a sus ventajas.
La clave del éxito en la modernización de aplicaciones, como en la mayoría de las cosas, se reduce en última instancia a la estrategia y a la selección de proyectos de modernización de aplicaciones cuyas ventajas en torno a la nube, la velocidad, el rendimiento, la escalabilidad o el desarrollo de nuevas funciones, entre otras, ofrezcan a la aplicación una vía directa de mejora de la experiencia del cliente y el ROI.
Las aplicaciones existentes también suelen ser aplicaciones monolíticas. Las aplicaciones monolíticas tienen dos características que piden a gritos una modernización: son difíciles de actualizar y son difíciles y costosas de escalar.
Las aplicaciones monolíticas son difíciles de actualizar por razones arquitectónicas. Puesto que todos los componentes de una aplicación se envían juntos, resulta difícil y costoso añadir características dada la sobrecarga de complejidad y los retos de integración que se plantean.
Son complicadas y costosas de escalar por razones similares. Basta con que un solo componente de una aplicación tenga dificultades de carga y rendimiento para que pueda ser necesario escalar toda la aplicación, solo para atender al componente más exigente. Este enfoque implica un considerable desperdicio de cálculo.
Al modernizar una aplicación hacia una arquitectura de microservicios, los componentes son más pequeños, no tienen conexión directa y se pueden desplegar y escalar independientemente unos de otros. Aunque este enfoque también presenta sus propios retos, es donde reside gran parte del valor principal de la modernización.
El siguiente vídeo incluye una explicación más extensa de las arquitecturas de microservicios:
La forma más importante de iniciar cualquier proyecto de modernización de aplicaciones es con una evaluación de las aplicaciones. Hacer un inventario de las aplicaciones de las que dispone es casi siempre una de las maneras más obvias de comenzar cualquier transformación como esta.
Una vez que tenga una lista, puede empezar a representar todas las aplicaciones en un eje x e y de facilidad/dificultad y potencial de aumento de valor en caso de modernización. También puede pensar en el valor "potencial" como el grado de importancia que tiene la aplicación en la experiencia del cliente y en el futuro de la organización.
Las aplicaciones que se encuentren en el cuadrante superior derecho de esta cuadrícula de alto valor y bajo esfuerzo serán las candidatas más obvias y menos conflictivas con las que comenzar un proyecto de modernización de aplicaciones.
Las decisiones más complicadas recaerán en las aplicaciones de alto valor que sean difíciles de migrar. En esos casos, no hace falta optar por todo o nada desde el primer día. Existen métodos de modernización de aplicaciones que pueden reducir el riesgo y el coste y, al mismo tiempo, permitir que el portfolio de aplicaciones vaya en la dirección correcta.
Hay varios métodos conocidos de modernización de aplicaciones que se centran en una combinación de la plataforma, la arquitectura de la aplicación y la exposición de la funcionalidad de una aplicación a través de la API.
Del monolito a los microservicios. El patrón más común de modernización de aplicaciones implica refactorizar y descomponer una aplicación monolítica en una serie de microservicios pequeños y sin conexión directa.
En el ejemplo anterior de arquitecturas de microservicios, una aplicación para minoristas se descompone de una única aplicación de n niveles en una serie de microservicios de todos los servicios individuales de la aplicación, cada uno con su base de datos y su modelo de datos.
Un enfoque en este espacio se conoce como "patrón estrangulador". En lugar de romper abajo el monolito de una vez, el patrón estrangulador trata de desarmar la aplicación poco a poco, sacando primero las partes más fáciles y valiosas y avanzando hasta que finalmente no queda nada del monolito.
Migración a la nube. La modificación de la plataforma o del host, que suele formar parte de la refactorización a microservicios, es casi siempre parte del proceso de modernización. Si bien es posible transferir las aplicaciones sin más, proceso que se conoce como lift-and-shift, sin apenas reescritura sustancial, es más habitual que el valor resida en la reestructuración de la aplicación para aprovechar mejor los modelos en la nube, a menudo mediante contenedores y Kubernetes. Obtenga más información sobre la migración a la nube.
Exponer la funcionalidad mediante API
Por último, otro método de modernización puede implicar dejar una aplicación en su lugar, pero exponer de forma segura sus funciones o datos a través de API. Este enfoque, que se basa más en la integración que en la migración, permite que las nuevas aplicaciones nativas en la nube utilicen simplemente las prestaciones de los sistemas y datos existentes.
Hay una amplia gama de tecnologías que pueden facilitar los procesos de modernización que están atravesando la mayoría de las organizaciones.
Nube privada, nube híbrida y varias nubes
Aunque la nube pública es una parte fundamental de cualquier estrategia de modernización, las estrategias de nube privada, nube híbrida y varias nubes también tienen una importancia clave por motivos de seguridad, latencia y arquitectura.
Puede haber distintas razones por las que una organización no esté lista para pasar directamente del centro de datos a la nube pública, y los demás modelos de nube pueden ayudar a resolver toda la complejidad asociada de arquitectura y política, en la que determinadas cargas de trabajo deben existir debido a sus características únicas.
Contenedores y Kubernetes
Los contenedores y Kubernetes han surgido no solo como rival de las máquinas virtuales como forma de cálculo general en la nube, sino como facilitador clave de las estrategias de modernización de aplicaciones y nube híbrida.
La contenerización permite empaquetar una aplicación de forma coherente y ligera para poder ejecutarla de modo uniforme en entornos de escritorio, nube o en local. Este tipo de flexibilidad es una verdadera ventaja para las organizaciones que planean cómo avanzar hacia la nube.
Con Red Hat OpenShift on IBM Cloud, los desarrolladores de OpenShift obtienen una forma rápida y segura de contenerizar y desplegar cargas de trabajo empresariales en clústeres de Kubernetes.
WebSphere Hybrid Edition es el conjunto integral de herramientas de tiempo de ejecución y modernización de aplicaciones de WebSphere que ofrece soporte para implementaciones locales y en las principales nubes públicas, en máquinas virtuales, contenedores y Kubernetes.
Modernizar las aplicaciones exige una infraestructura moderna. Modernice las aplicaciones, los servidores y el almacenamiento que tiene implementados para que se integren sin problemas en la nube híbrida y actúen como su centro de datos en todo lo que respecta a la inteligencia artificial.
Una modernización temprana aporta muchas ventajas ya que identifica las aplicaciones en el núcleo de su empresa y moderniza sus dependencias clave.
Esta guía describe cómo acelerar la modernización de aplicaciones, mejorar la productividad de los desarrolladores y aumentar la eficiencia operativa y la estandarización.
Kubernetes es una plataforma de orquestación de contenedores de código abierto que automatiza el despliegue, la gestión y el escalado de aplicaciones en contenedores.