1. Visión del Proyecto
El proyecto de Tokenización de Activos de Libertum busca crear un sistema robusto para tokenizar activos. La arquitectura se diseña para asegurar escalabilidad, alta disponibilidad y tolerancia a fallos mediante tecnologías cloud y de contenedores.
2. Configuración de Infraestructura
Azure Virtual Network (VNet): Entorno aislado y seguro con segmentación de tráfico para distintos servicios, minimizando exposición pública y asegurando conectividad híbrida.
Diseño de VNet
Subnets:
●      Public Subnet: Recursos con acceso a Internet (web servers, load balancers). Conectada al Internet Gateway. ●      Private Subnet: Recursos internos (bases de datos, servicios backend) con IP privada. El tráfico saliente pasa por NAT Gateway.
Configuración de Seguridad
Network Security Groups (NSGs):
●      NSG Público: Permite tráfico HTTP/HTTPS entrante y saliente a Internet. ●      NSG Privado: Restringe tráfico entrante a servicios internos y permite salida vía NAT. ●      Comunicación IP Privada: Sin exposición directa a Internet.
NAT Gateway:
●      Acceso Saliente Seguro: IP pública estática para solicitudes salientes; bloquea entrada no autorizada.
Medidas:
●      Aislamiento de Red. ●      Firewall opcional + Azure Monitor para logs y auditoría.
Máquina Virtual
Backend Services Server:
●      Nombre: prod-Kafka-redis-libertum ●      Tipo: VM Ubuntu 22.04 ●      Specs: 2 vCPUs, 4 GB RAM ●      Disco: 30 GB ●      Networking / Firewall: Reglas mínimas necesarias.
Servicios Adicionales:
Kafka: Procesamiento y streaming en tiempo real (event-driven, agregación de logs, cola de mensajes).
Redis: Caché en memoria para datos frecuentes; reduce latencia y mejora respuesta.
MongoDB: Base de datos primaria para datos estructurados/no estructurados; instalada en VM (migrará a Atlas en escala).
Cluster Kubernetes (AKS)
●      Despliegue en Azure Kubernetes Service para gestión escalable. Alta disponibilidad, actualizaciones automáticas, seguridad robusta. Multi-zona para tolerancia a fallos y auto-scaling.
Especificaciones del Cluster:
●      Node Size: 2 cores, 8 GB RAM ●      Workloads: Deployments, StatefulSets, DaemonSets ●      Services + Ingress para ruteo.
Objetivo Backend en AKS:
●      Desplegar microservicios y APIs con resiliencia, autoescalado y auto-curación.
Horizontal Pod Autoscaler: Ajusta pods según métricas (CPU u otras).
Monitoreo y Logging
Prometheus: Métricas y alertas. Grafana: Dashboards y visualización. Loki y Promtail: Agregación y envío de logs a Grafana.
Componentes de Networking
Ingress: Acceso externo HTTP/HTTPS con reglas hacia servicios. Azure Load Balancer: Distribuye tráfico para disponibilidad y escala. Cluster Autoscaler: Ajusta nodos según recursos solicitados; reduce nodos infrautilizados.
Container Registry (ACR)
Almacena imágenes Docker de servicios. ●      Seguridad mejorada (escaneo de vulnerabilidades). ●      Optimización de costes. ●      Integración con CI/CD (GitHub Actions).
Storage: Azure Blob Storage
Almacenamiento de objetos escalable y seguro (texto, imágenes, backups). Tiers (hot/cool/archive) para optimización de coste. Alta durabilidad con replicación, cifrado y control de acceso.
Recuperación ante Desastres MongoDB
Backups diarios a Cloud Storage utilizando mongodump + script de subida.
Migración futura a MongoDB Atlas (cuando >100k usuarios) para disponibilidad gestionada, escalado y seguridad.
Arquitectura CI/CD
Flujo de Desarrollo:
Source Control:
Repositorio Central: GitHub. ●      Control de versiones y colaboración.
Continuous Integration (CI):
Herramienta: GitHub Actions. ●      Detecta commits y PRs, dispara workflows.
Build: ●      Construye imágenes Docker (Dockerfile). ●      Tag con hash de commit / build number. ●      Push a Azure Container Registry (versionado y trazabilidad).
Continuous Deployment (CD):
Tras CI exitoso: ●      Workflows CD (rolling updates si aplica).
Actualización de Manifests: ●      Repositorio separado para configuraciones Kubernetes. ●      Se actualiza tag de imagen.
Sincronización ArgoCD: ●      ArgoCD monitoriza repo de manifests. ●      Sincroniza estado deseado vs. cluster. ●      Despliega/actualiza recursos automáticamente.
Historial de Rollouts: ●      Versiones y cambios archivados. ●      Facilita rollback confiable.
Resumen:
Pipeline integrado CI/CD automatiza desde commit a despliegue, permitiendo entregas rápidas y consistentes con mínima intervención manual.
Vista CI Stage:
Vista CD Stage:
Conclusión
La infraestructura cubre VMs Azure, AKS, servicios backend, networking, almacenamiento y bases de datos. GitHub Actions impulsa la automatización CI/CD. En conjunto soportan desarrollo, despliegue y gestión de datos garantizando escalabilidad, confiabilidad y eficiencia.