🚨 HITO SRE CRÍTICO. Implementación completa de infraestructura de producción con Docker Stack en VPS. Configuración de Traefik como reverse proxy con SSL automático, gestión de secretos con Docker Secrets, y setup de CI/CD con GitHub Container Registry.
Marzo del 2025 fue el mes en que dejé de ser solo un desarrollador para convertirme en un SRE de verdad. Todo empezó con una pregunta simple: ¿cómo desplegar una aplicación en producción sin depender de servicios como Vercel o Heroku? La respuesta me llevó a un viaje técnico que cambió mi forma de ver la infraestructura.
El primer paso fue configurar un VPS desde cero. No solo instalar Docker y listo: hardening completo. Creé un usuario deploy con permisos sudo, configuré autenticación SSH con claves (nada de passwords), deshabité el login como root, y configuré UFW como firewall permitiendo solo los puertos necesarios (22, 80, 443). También instalé Fail2Ban para protegerme de ataques de fuerza bruta.
Pero lo realmente interesante vino después: Docker Swarm y Docker Stack. Hasta entonces, había usado docker-compose up para todo. Pero en producción, eso no escala. Swarm me dio rolling updates, secrets management, y la capacidad de orquestar servicios distribuidos. Aprendí la diferencia entre bind mounts (que no funcionan en Swarm) y named volumes. Descubrí Docker Configs para montar archivos de configuración como objetos gestionados.
Luego vino Traefik. Configurar un reverse proxy que automáticamente detecta servicios, genera certificados SSL con Let's Encrypt, y balancea carga sin intervención manual fue mágico. Ver cómo un simple label en el docker-compose exponía un servicio al mundo con HTTPS fue uno de esos momentos "ah-ha".
Marzo me enseñó que SRE no es solo código: es arquitectura, seguridad, monitoreo, y resiliencia.