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.