Cuando haces tu primer despliegue en Docker Compose, solemos crear una carpeta, meter un docker-compose.yml y levantar el servicio. Funciona perfecto. Pero cuando una empresa llega a 15, 30 o 50 servicios distintos alojados en varios servidores, la falta de estructura convierte las actualizaciones en arqueología de sistemas.

En REACTIV tomamos el control de infraestructuras caóticas imponiendo “convenciones aburridas”. El aburrimiento en TI es sinónimo de estabilidad y predictibilidad.

Los síntomas del caos

Sabes que tu gestión de Docker está fuera de control cuando:

  • Nadie sabe dónde están guardados físicamente los volúmenes de datos.
  • Actualizar la versión de una imagen da miedo porque no sabes qué configuraciones se romperán.
  • Hay variables de entorno críticas mezcladas en el código fuente o en scripts de bash sueltos en el servidor.
  • Hay 5 redes internas de Docker distintas y los servicios se conectan mediante IPs fijas puestas a mano.

La estructura repetible

Imponer una estructura de carpetas unificada en todos tus servidores cambia las reglas del juego. En REACTIV solemos implementar un patrón similar a este en la ruta /opt/servicios/:

text /opt/servicios/ └── app-erp/ ├── docker-compose.yml # El archivo declarativo (versionado en Git) ├── .env # Secretos y variables del entorno local (nunca en Git) ├── config/ # Archivos .conf, .ini o .json mapeados en bind mount └── data/ # (Opcional) Si se usan bind mounts locales para datos

Reglas de oro para un Compose empresarial

  1. Usa variables de entorno para todo lo que cambia: La versión de la imagen (ej. image: mysql:${MYSQL_VERSION}), los puertos expuestos y las contraseñas deben estar en el .env. Así, el docker-compose.yml es idéntico en desarrollo, staging y producción.
  2. Nombra tus recursos explícitamente: Usa container_name, define redes explícitas y pon nombres a los volúmenes. No dejes que Docker genere nombres aleatorios que luego nadie reconoce.
  3. Controla los reinicios: Usa restart: unless-stopped. Si el servidor se reinicia por un corte de energía, los servicios deben levantar solos en el orden correcto.

El objetivo de las convenciones

Las convenciones no existen para “verse ordenado”. Existen para que cualquier persona pueda entrar a un servidor, ubicar rápido el servicio, entender cómo se actualiza y reducir el riesgo de errores operativos durante incidentes o mantenimientos.

Cómo puede ayudarte REACTIV

El orden no se logra por arte de magia, se diseña. Podemos ayudarte a:

  • Estandarizar toda tu flota de servidores bajo un único modelo de despliegue con Docker Compose.
  • Migrar infraestructuras desordenadas (spaghetti) a repositorios de Infraestructura como Código (GitOps).
  • Automatizar el despliegue de estas carpetas usando herramientas como Ansible.
  • Generar documentación clara para que cualquier técnico de tu equipo sepa cómo operar cada servicio.