Edición 195 - Comercio Colombia - Estados Unidos 2024
De los megamonolitos a micromonolitos para llegar a microservicios

Por Lucasian Labs
Las plataformas empresariales actuales, donde las grandes compañías realizan su operación de negocio y que son parte vital de la misma, requieren complejos sistemas de información. Sistemas construidos con múltiples módulos, cientos de formularios, miles de usuarios, transacciones medidas por segundo e infinidad de problemáticas de soporte y mantenimiento que atender, es un mundo difícil, de arduo trabajo, el de la computación empresarial.
Estas plataformas se construyen sumando muchas pequeñas partes. El código que modela las reglas de negocio, las formas que interactúan con el usuario, las consolas de procesos de ejecución nocturna, las librerías de apoyo sobre las que corre el sistema, los recursos visuales como imágenes, estilos, plantillas de documentos y otros muchos otros recursos que hacen parte del sistema.
Comúnmente, hasta ahora, estas plataformas se empaquetan, como un todo, en la arquitectura que llamamos en el medio como grandes monolitos, para darse una idea, es un gran archivo zip que en su interior amalgama los diferentes componentes del sistema y que se entrega en el despliegue para su publicación en el servidor que correrá el sistema; esto lo llamamos el despliegue de la plataforma y trae consigo otra serie de retos.
La problemática asociada a los despliegues es variada, es muy posible que durante el proceso de publicación se presente la indisponibilidad del sistema, tema incómodo que nadie desea y es lo que pasa cuando los bancos nos avisan que a tal hora, tal día el sistema no estará disponible. Un despliegue típico puede variar de uno a otro administrador y de la configuración del sistema incluye entre otras cosas: Borrar la carga anterior, cargar el paquete, ejecutar paquetes de actualización de bases de datos, reiniciar el sistema, realizar pruebas humo, volver a subir la plataforma y ahí estará de nuevo disponible; pueden pasar horas para este proceso completo, los grandes monolitos tienen ese problema.
“Hecha la ley, hecha la trampa”. En informática, siempre estamos buscando solucionar este tipo de problemas. Por eso, las arquitecturas actuales están evolucionando hacia soluciones que eviten la indisponibilidad del sistema y sus problemas asociados. Una de las alternativas más aceptadas son las arquitecturas de Microservicios. Sin embargo, esta transición no es gratuita. Convertir los megamonolitos en microservicios es el próximo desafío y el enfoque principal de este artículo.
Por supuesto, como ocurre con todos los caminos maravillosos, también hay obstáculos. Una forma de aproximarse a esta transformación es ir transitando de los grandes monolitos a los micromonolitos, es decir, comenzar a recorrer el camino que finalmente nos llevará a los microservicios, que es nuestro destino final. Sin embargo, incluso los microservicios presentan sus propios problemas. En él resto del artículo, exploraremos qué nos depara este camino y cómo nos acercamos a él, pasando del gran monolito al micromonolito, hasta llegar a la implementación de microservicios.
En la actualidad, el despliegue de monolitos ha experimentado un cambio significativo en los últimos años. Tradicionalmente, los monolitos se desplegaban como aplicaciones de gran tamaño, donde todas las funcionalidades y componentes estaban integrados en un solo bloque de código.
Mayo 2024