Infraestructura & DevOps

Modernización y Dockerización de Ecosistema Web en OVH VPS

Cliente / App

Internal Systems / Multi-tenant

Tecnologías

Docker, Traefik, GitOps

Rol

Backend & Systems Engineer

Estado

12 apps en producción

El Reto

Gestionar 12 aplicaciones independientes (mezclando WordPress y desarrollos propios) en un único VPS de OVH se estaba convirtiendo en una pesadilla de mantenimiento. Cada actualización ponía en riesgo la disponibilidad de las demás.

  • Conflictos de puertos y certificados SSL manuales.
  • Dificultad para escalar aplicaciones específicas.
  • Falta de un entorno de despliegue reproducible.

La Solución: Infraestructura como Código

Implementé una capa de Traefik Proxy como punto de entrada único. Esto permitió centralizar la gestión de certificados Let's Encrypt y el enrutamiento dinámico basado en etiquetas de Docker.

# Ejemplo de configuración Traefik en labels
services:
  my-app:
    image: my-backend-go:latest
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.app.rule=Host(`api.midominio.com`)"
      - "traefik.http.routers.app.tls.certresolver=myresolver"

Diagrama conceptual: Tráfico Externo -> Puerto 80/443 -> Traefik Container -> Docker Network Interna -> App Container.

Backend & Datos

Para las aplicaciones más críticas, migramos la lógica a Golang, utilizando MongoDB Atlas para la persistencia. Esto permitió reducir el uso de CPU del VPS en un 40% comparado con las instancias pesadas de WordPress que servían APIs anteriormente.

Optimización

Reducción de tiempos de respuesta de 400ms a 45ms en endpoints críticos.

Seguridad

Aislamiento total de bases de datos en redes Docker internas sin exposición pública.

Resultados Finales

Hoy, las 13 aplicaciones (3 grandes y 10+ menores) conviven en armonía. El despliegue de una nueva app es cuestión de segundos: un git push activa el flujo que recrea el contenedor sin tiempo de inactividad para las demás.

Zero-Downtime Auto-SSL GitOps Enabled

Proyecto Anterior

Microservicios con Go & gRPC

Siguiente Proyecto

Dashboard MongoDB Atlas