Please enable JavaScript.
Coggle requires JavaScript to display documents.
Aplicaciones Distribuidas - Coggle Diagram
Aplicaciones Distribuidas
Aplicaciones monolíticas
Características
Todo el software es un solo componente que esta diseñado para ser auto contenido.
Todos los componentes están interconectados y son dependientes
Para que la aplicación funcione todos los componentes asociados deben estar presentes para ejecutar o compilar el código.
Beneficios
Fácil inicio
Tiempo de puesta en marcha reducido
Facilidad de crear entornos de prueba
Escalamiento fácil basado en balanceadores de carga
Desventajas
Son muy grandes por lo que afecta a la productividad
No se adapta a las últimas tendencias tecnológicas.
La tecnología de la aplicación es establecida al inicio de l desarrollo por lo que es complicado evolucionar
Dificulta el desarrollo en equipo
No se integra a soluciones de plataformas distintas.
Servicios
Componentes de software con interfaces bien definidas que son independientes de su implementación.
Orientado al negocio
Cada servicio es autocontenido e implementa una funcionalidad del negocio
Acceso a datos
Con estructura federativa. Cada servicio es responsable de su propia estructura de datos.
Características
Independiente, idempotente y sin estado.
Comunicación
Basada en APIs
Microservicios
Orientado a lo sencillo
Puede ser mantenida sin esfuerzo adicionale
Independientes
Débil acoplamiento
Lenguaje neutral
Permite que cada uno de estos módulos explote las funcionalidades de cada plataforma.
Boundered Context
Problemas
Comunicación entre servicios.
n(n-1)/2
Gobierno de servicios
Mientras más servicios la definición de dependencias y detección de fallos se incrementa
Dependencia de metodologías de desarrollo
Despliegue y escalamiento de microservicios tienen alta dependencia de contenedores y sistemas que lo administren
Complejidad de la gestión de datos y tx
Implementar límites de la transacción entre múltiples microservicios producen una sobrecarga de gestión
Beneficios
Agilidad
Favorece el desarrollo autónomo de servicios. Logrando una entrega continua de software.
Facilidad de reemplazo
Debido a su naturaleza, los microservicios son reemplazables
Predictibilidad y aislamiento de fallas
Manteniendo un monitoreo adecuado se puede identificar o predecir potenciales fallos y aislarlos.
Escalabilidad granular
Alineamiento con la estructura organizacional
Monolitos vs Microservicios