Una aplicação monolítica combina la interfaz de usuario y las capas de acceso a datos para múltiples funciones en una sola aplicação. Por lo general, una aplicação monolítica existirá como una única base de código que es modificada por varios equipos dentro de una organización y se implementará como una sola unidad que contiene toda la funcionalidad que esos equipos mantienen.
Las aplicaciones monolíticas suelen ser más fáciles de desarrollar e implantar debido a la estrecha integración de sus componentes. Sin embargo, a medida que crecen en alcance y complejidad, y aumentan las exigencias de rendimiento, un monolito puede volverse difícil de mantener y escalar.
Los sistemas monolíticos pueden ser una buena opción para aplicações más pequeñas y menos complejas que no necesitan escalar rápidamente ni requerir mantenimiento rutinario. A continuación se presentan algunos ejemplos de aplicações que comúnmente tienen bases monolíticas (aunque sus funcionalidades más nuevas pueden basarse en una infraestructura más contenerizada ).
Aunque algunos aspectos de las arquitecturas monolíticas se han quedado anticuados, siguen teniendo muchos propósitos y atributos positivos.
Estas son algunas de las ventajas de los monolitos:
Aunque la naturaleza singular de los monolitos tiene sus aspectos positivos, también puede conllevar problemas.
Estas son algunas desventajas de los monolitos:
En contraste con la arquitectura monolítica, existe la arquitectura de microservicios . Los microservicios son un enfoque de la arquitectura de software que crea una aplicação grande y compleja a partir de componentes pequeños. Cada uno de estos componentes puede realizar una única función (por ejemplo, autenticación, notificación o procesamiento de pagos) o funcionar como paquetes dentro de un monolito. “Microservicios” (o simplemente “servicios”) es también el término para los pequeños componentes en sí.
Mientras que las aplicaciones monolíticas están estrechamente acopladas (lo que significa que sus componentes están interconectados), una aplicación de microservicios está distribuida (lo que significa que sus componentes pueden actuar independientemente). A medida que las aplicações se vuelven más grandes y complejas, muchas organizaciones están explorando la posibilidad de migrar de los monolitos o incorporar nuevas aplicaciones en un formato de microservicios.
NGINX se enorgullece de ofrecer los siguientes recursos educativos gratuitos para aquellos que exploran los monolíticos y microservicios.