- 1

Decisiones de arquitectura de software y sus consecuencias reales
02:51 - 2

Inteligencia artificial como herramienta en arquitectura de software
04:49 - 3

Problemas esenciales vs accidentales en arquitectura de software
07:44 - 4

Responsabilidades del arquitecto de software
06:06 - 5

Arquitectura de software y metodologías de desarrollo ágiles
07:48 - 6

Diferenciación entre espacio del problema y espacio de solución
08:17 quiz de Contexto
Qué son las arquitecturas monolíticas y sus ventajas y desventajas
Clase 13 de 24 • Curso de Fundamentos de Arquitectura de Software
Contenido del curso
- 11

Selección de estilos arquitectónicos según el contexto del problema
02:57 - 12

Arquitectura cliente servidor: fundamentos y comunicación por capas
03:36 - 13

Qué son las arquitecturas monolíticas y sus ventajas y desventajas
03:58 - 14

Arquitecturas orientadas a servicios: contratos y especificaciones
02:59 - 15

Arquitecturas orientadas a eventos: conceptos y desafíos principales
05:44 - 16

Ventajas y costos ocultos de arquitecturas de microservicios
04:51 quiz de Estructura del Software
Las arquitecturas monolíticas son una solución tradicional en el desarrollo de software, consistiendo en un solo contenedor o programa que cubre todos los requisitos funcionales. Aunque han sido ampliamente utilizadas, recientemente han recibido críticas por presentar limitantes en términos de escalabilidad y gestión del código fuente.
¿Qué significa una arquitectura monolítica?
El término "monolítico" se compone de "mono", que significa uno, y "lito", que significa piedra. En la práctica, implica crear una sola aplicación o sistema que aborda todas las funcionalidades necesarias para resolver problemas específicos. Ejemplos históricos incluyen programas antiguos de contabilidad y juegos que se instalaban localmente en una sola computadora.
En una arquitectura monolítica, los módulos permiten establecer diferenciaciones lógicas internas, que ayudan a dividir de manera conceptual el sistema en partes más pequeñas y manejables:
- Un módulo dedicado a la persistencia de datos.
- Otro módulo especializado en la generación de reportes.
- Una capa orientada al cliente, enfocada en presentar o capturar información.
¿Cuáles son los beneficios de las arquitecturas monolíticas?
Aunque las arquitecturas monolíticas parecen algo anticuadas, presentan ciertos beneficios prácticos, especialmente en contextos específicos:
- Fáciles de adoptar y aprender.
- Sencillas de implementar entre equipos pequeños.
- Alto nivel de soporte y documentación disponible en la comunidad y la industria, con herramientas, plugins y papers que facilitan su manejo.
¿Qué inconvenientes tienen las arquitecturas monolíticas?
A pesar de las ventajas anteriores, estos sistemas plantean ciertas limitaciones:
Complejidad en la escalabilidad y comunicación:
- Al crecer el alcance y la complejidad del sistema, resulta complicado mantener seguimiento de las decisiones internas tomadas.
- La comunicación entre diferentes equipos puede verse afectada negativamente, generando duplicación de trabajo o interferencias.
Problemas de disponibilidad y rendimiento:
- Respuestas lentas o saturación debido a que toda la carga de usuarios impacta sobre un solo sistema.
- Dificultad en distribuir dinámicamente la carga según requerimientos específicos o casos de uso diferenciados.
Alternativas frente a estos retos:
Para resolver estas limitaciones han surgido otras opciones arquitectónicas. Una alternativa popular y adoptada es la arquitectura orientada a servicios, tema que abordaremos en próximas clases.
¿Has tenido experiencias con arquitecturas monolíticas?, ¿cuál consideras tú que es su mayor fortaleza o desafío? ¡Comparte tus comentarios y sigamos aprendiendo juntos!