Arquitectura monolítica

Una arquitectura monolítica es el modelo unificado tradicional para el diseño de un programa de software. Monolítico, en este contexto, significa compuesto todo en una sola pieza. Según el diccionario de Cambridge, el adjetivo monolítico también significa demasiado grande y no se puede cambiar.

El software monolítico está diseñado para ser autónomo; Los componentes del programa están interconectados y son interdependientes en lugar de estar débilmente acoplados como es el caso de los programas de software modulares. En una arquitectura estrechamente acoplada, cada componente y sus componentes asociados deben estar presentes para que el código se ejecute o compile.

Además, si algún componente del programa debe actualizarse, toda la aplicación debe reescribirse, mientras que en una aplicación modular, cualquier módulo separado (como un microservicio) se puede cambiar sin afectar otras partes del programa. Las arquitecturas modulares reducen el riesgo de que un cambio realizado dentro de un elemento cree cambios imprevistos dentro de otros elementos, porque los módulos son relativamente independientes. Los programas modulares también se prestan a procesos iterativos más fácilmente que los programas monolíticos.

Sin embargo, también existen ventajas para las arquitecturas monolíticas. Los programas monolíticos suelen tener un mejor rendimiento que los enfoques modulares, como la arquitectura de microservicio (MSA) y pueden ser más fáciles de probar y depurar porque, con menos elementos, hay menos variables que entran en juego.