El reto principal de este proyecto consistía en desplegar una arquitectura de microservicios robusta y resiliente a fallos a lo largo de múltiples servidores virtuales (VPS) de bajo costo, sin depender de servicios gestionados propietarios (como AWS RDS o ECS) que elevaran los costos operativos. Para lograrlo, fue indispensable crear una capa de red privada ultra-segura para la comunicación inter-servicio y estructurar un clúster de base de datos distribuido capaz de auto-recuperarse y elegir un nuevo nodo maestro de forma automatizada ante la caída de un servidor, manteniendo un monitoreo centralizado en tiempo real de todos los nodos.
Arquitectura Multi-VPS con Spring Cloud
Rol: DevOps / Arquitecto de Infraestructura
Spring Cloud (Config Server, Eureka, API Gateway)Tailscale (WireGuard)PostgreSQLPatronietcdpgBouncerGrafana Cloud (Prometheus, Loki, Tempo)
Contexto y Problema
Logros y Destacados
- >Diseñé y configuré una red privada virtual mallada (mesh VPN overlay) con Tailscale (WireGuard) para conectar de forma segura múltiples servidores VPS independientes, ocultando todo el tráfico de red interno del internet público.
- >Implementé un clúster de base de datos PostgreSQL en alta disponibilidad (HA) gestionado por Patroni, utilizando etcd para el consenso distribuido (Split-brain prevention) y pgBouncer para la multiplexación de conexiones.
- >Desplegué e integré el ecosistema de Spring Cloud, estableciendo un Eureka Server para el registro y descubrimiento de servicios, un Config Server Git-backed para configuración unificada y un API Gateway para ruteo perimetral dinámico.
- >Instrumenté un stack de observabilidad unificado enviando datos a Grafana Cloud, integrando logs estructurados vía Loki, telemetría de rendimiento y CPU vía Prometheus, y rastreo distribuido de peticiones mediante Tempo.