Modelo de despliegue S1 - JohannPaezU/MISW4501-MediSupply GitHub Wiki

Principios de despliegue

  • Cloud: Google Cloud Platform (GCP) multi-región.

  • Contenerización: Docker + Kubernetes

  • Balanceo y seguridad perimetral: Cloud Load Balancing + API Gateway.

  • Resiliencia: alta disponibilidad, replicación cross-region, backup automático, DR < 6h.

  • Desacoplamiento: microservicios escalados individualmente.

  • Datos críticos: PostgreSQL + Redis + Cloud Storage.

  • Mensajería/eventos: Pub/Sub para asincronía y desacople.

  • CI/CD: GitHub Actions

Descripción de nodos

Nodo: Cliente Web

  • Tipo: Navegador (Angular 17)

  • Rol: consumir APIs

Nodo: Cliente Móvil

  • Tipo: App nativa kotlin

  • Rol: interactuar con APIs y Pub/Sub

Nodo: CDN

  • Tipo: Cloud Storage + Cloud CDN.

  • Rol: servir contenido estático

Nodo: Load Balancer

  • Tipo: Cloud Load Balancing.

  • Rol: distribuir tráfico HTTPS a API Gateway

Nodo: API Gateway

  • Tipo: API Gateway GCP.

  • Rol: punto único de entrada, autenticación OAuth2/OIDC, routing.

Nodo: Kubernetes Cluster

  • Rol: ejecutar contenedores de microservicios.

  • Escalabilidad: Horizontal Pod Autoscaler (HPA) por servicio.

  • Alta disponibilidad: nodos en ≥ 2 zonas.

MS:

  • Ventas MS

  • Inventarios MS

  • Compras MS

  • Logística & Ruteo MS

  • IoT Telemetry MS

  • Notificaciones MS

  • Pagos Adapter

Nodo: Pub/Sub

  • Tipo: Google Pub/Sub.

  • Rol: transporte de eventos de dominio

  • Alta disponibilidad: gestionada por GCP.

Nodo: Base de datos

  • Tipo: Cloud SQL PosgreSQL.

  • Rol: almacenamiento transaccional por schema de microservicio.

Nodo: Almacenamiento de objetos

  • Tipo: Cloud Storage.

  • Rol: evidencias, documentos regulatorios

  • Acceso: Signed URLs.

Nodo: Servicios externos

  • Google Maps API

  • Pasarela de Pagos

  • Entidades regulatorias

Diagrama:

Enlace en HD: https://github.com/user-attachments/assets/e4ba750f-c28f-4f73-abc8-d391c98e1dd1