De los monolitos a los microservicios: El camino hacia la nueva normalidad

La modernización del panorama de las aplicaciones es un tema importante para muchas empresas. En el caso de las arquitecturas monolíticas y las aplicaciones heredadas, la modernización mediante plataformas de contenedores y microservicios suele estar en la agenda.

Las empresas y los desarrolladores se enfrentan a la tarea de impulsar la innovación y aumentar el tiempo de comercialización mediante el uso de tecnologías más productivas. Los objetivos son una mayor eficiencia, agilidad y velocidad.

Las arquitecturas monolíticas son, en principio, menos adecuadas para esto. Son demasiado grandes y complejos, comienzan lentamente y son costosos de probar para las actualizaciones. Un solo error puede afectar a la disponibilidad de la aplicación y pueden surgir conflictos entre los módulos al escalar. Estas características también pueden convertirlas en un obstáculo para la introducción de nuevas tecnologías.

En contraste con las arquitecturas monolíticas, las plataformas de contenedores y los microservicios ofrecen el potencial de impulsar la innovación de forma rápida y con un coste optimizado. Los contenedores son básicamente tecnologías que permiten empaquetar, encapsular y aislar las aplicaciones con todos los componentes y detalles de configuración necesarios y todo el entorno de ejecución, es decir: con todos los archivos necesarios para su funcionamiento.

Contenedores, Microservicios, DevOps

Los contenedores son la tecnología clave para la introducción de los microservicios, que permiten construir aplicaciones modulares y débilmente acopladas. Ofrecen un apoyo crucial a las empresas para acelerar la creación de aplicaciones.

Los servicios se prestan a través de APIs ligeras y agnósticas a la tecnología que aumentan la flexibilidad en la implantación, el escalado y el mantenimiento. Los procesos y metodologías DevOps también permiten automatizar las pruebas de calidad en cada paso del proceso, reduciendo significativamente el tiempo y el esfuerzo que requieren los desarrolladores.

Como resultado, cada vez más empresas están tomando el camino de la migración de monolitos a plataformas de contenedores y microservicios a la hora de modernizar sus aplicaciones. En principio, existen tres opciones para ello: el realojamiento, la re-plataforma y la refactorización.

¿Mucha o poca necesidad de cambio?

Con el realojamiento o lift-and-shift, los desarrolladores empaquetan las aplicaciones y cargas de trabajo existentes -sin más modernización- en un contenedor con los menores cambios posibles, los migran a la nube y los operan allí como PaaS.

En el proceso de re-platforming o lift-and-reshape, los desarrolladores determinan qué partes de la aplicación se benefician de la tecnología de contenedores, las reelaboran transfiriéndolas a microservicios y añaden capas de API para la comunicación. La adición de nuevas capas también hace que la funcionalidad de la aplicación existente sea accesible para las nuevas aplicaciones, ahorrando tiempo y costes de desarrollo.

Por último, la refactorización o reescritura implica una modificación fundamental del código del programa de una aplicación basada en una nueva arquitectura de microservicios.

¿Rápido o caro?

La elección de la estrategia de modernización y migración depende de varios factores, como la aplicación, los requisitos del negocio o los factores contextuales. También hay que tener en cuenta que las tres variantes presentan a veces diferencias considerables en cuanto a la duración y los costes de la migración. Por regla general, el procedimiento más rápido y rentable es el de realojamiento, mientras que el más lento y costoso es el de refactorización.

Markus Eisele se ha incorporado a Red Hat en el puesto de Developer Adoption Program Lead EMEA.

Las tres vías de migración ayudan a los arquitectos de aplicaciones y a los equipos de desarrollo y operaciones a modernizar las aplicaciones existentes sin necesidad de realizar desarrollos completamente nuevos. En muchos casos, se ha demostrado que un enfoque sucesivo tiene sentido en el contexto de una estrategia de modernización global: empezando por el realojamiento, pasando por la replanificación, hasta llegar a la refactorización, que es, en definitiva, el procedimiento más completo para modernizar la arquitectura de las aplicaciones.


Deja un comentario