Header Background

Arquitectura del Servidor en Producción

Table of contents

Arquitectura del Servidor en Producción

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.