Header Background

Arquitectura del Servidor de Producción | Infraestructura Escalable y Segura

Table of contents

Arquitectura del Servidor de Producción | Infraestructura Escalable y Segura

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.