Aunque la mayoría de las empresas creen que la nube será el nuevo hogar para las aplicaciones heredadas, no todas las aplicaciones heredadas son aptas para la nube, al menos no todavía.

Mover una aplicación a la nube debería ser tan fácil como caminar por la playa, recolectar guijarros en un balde y transportarlos fácilmente donde sea necesario. Una roca de 1.000 toneladas, por el contrario, no es nada fácil de transportar. 

Esta roca representa la aplicación monolítica: capas sedimentadas de características y lógica redundante traducida en miles de líneas de código, escritas en un lenguaje de programación único, no tan moderno, basado en patrones y principios de arquitectura de software obsoletos.

 

Con el tiempo, las nuevas funciones y mejoras aumentaron la complejidad del código, lo que hizo que el desarrollo fuera más desafiante: los tiempos de carga, compilación y construcción aumentan con cada nueva actualización. Sin embargo, existe cierta facilidad de administración ya que la aplicación se ejecuta en un solo servidor, idealmente una máquina virtual o una computadora central.

Un monolito tiene un sabor bastante caro en hardware. Al ser un software grande y único que crece continuamente, tiene que ejecutarse en un solo sistema que debe satisfacer sus requisitos de computación, memoria, almacenamiento y redes. El hardware de dicha capacidad no sólo es complejo y extremadamente caro, sino que a veces resulta difícil de adquirir.

Dado que toda la aplicación del monolito se ejecuta como un solo proceso, el escalamiento de las características individuales del monolito es casi imposible. Admite internamente una cantidad codificada de conexiones y operaciones. Sin embargo, se puede escalar toda la aplicación implementando manualmente una nueva instancia del monolito en otro servidor, generalmente detrás de un dispositivo de equilibrio de carga, otra solución costosa.

Durante las actualizaciones, los parches o migraciones del tiempo de inactividad de la aplicación monolito son inevitables y las ventanas de mantenimiento deben planificarse con mucha antelación, ya que se espera que las interrupciones en el servicio afecten a los clientes. Si bien existen soluciones de terceros para minimizar el tiempo de inactividad de los clientes configurando aplicaciones monolíticas en una configuración activa/pasiva altamente disponible, introducen nuevos desafíos para que los ingenieros de sistemas mantengan todos los sistemas en el mismo nivel de parche y pueden introducir nuevos costos de licencia posibles.

× ¡Contáctanos!