Volver a notas

publicado 2025-10-30

Razones para usar contenedores en el flujo de trabajo de desarrollo

l-you avatarLiteralmente Tú

A partir de 2025, la contenedorización se ha convertido en el estándar del sector para el desarrollo y el despliegue de software moderno.

Las siguientes afirmaciones sobre la contenedorización del desarrollo serán simples y directas.

Opinión personal

  • Elimina la deriva de “funciona en mi máquina” al ejecutar el código en un entorno controlado y reproducible.
  • Uso la misma pila que en producción y que mi equipo, sin contaminar mi sistema operativo.
  • Puedo compaginar varios proyectos con versiones en conflicto de forma limpia.
  • docker compose up -d es más rápido que instalar y configurar a mano bases de datos, colas y servidores web.
  • Cambiar de portátil o de SO no importa. Descarga la imagen y ejecútala.

Los problemas del enfoque anterior que soluciona

  • Deriva del entorno: ajustes locales ocultos, plugins de IDE instalados automáticamente o puertos abiertos que no existen en producción.
  • Infierno de dependencias en el host: cadenas de herramientas en conflicto, actualizaciones de paquetes que rompen otros proyectos.
  • Fricción en la incorporación: pasos de configuración que faltan, documentación obsoleta, conocimiento tribal.
  • Retos de reproducción: reproducir errores de pruebas/producción en un host desordenado es poco fiable.
  • Restricciones corporativas: capacidad limitada para instalar herramientas de compilación en los equipos de escritorio.
  • Salidas limpias: containers stop. Sin demonios residuales acaparando puertos/CPU.
  • Paridad con CI: la misma imagen se ejecuta localmente y en pipelines para obtener resultados coherentes.
  • Estandarización del equipo: comparte un archivo de compose y todo el mundo ejecuta la misma pila.

Lo que simplifica y en lo que no habíamos pensado

  • Documentación viva: el Dockerfile es una especificación ejecutable del entorno.
  • Viaje en el tiempo: fijar imágenes/bloqueos hace trivial revertir cambios en la cadena de herramientas.
  • Pilas paralelas: levanta múltiples versiones de servicios sin pelearte con el host.
  • Postura de seguridad: menos necesidad de instalaciones a nivel de host y de privilegios elevados.

Inconvenientes

  • Sobrecarga: las imágenes pueden ser grandes; las compilaciones y las descargas llevan tiempo y ocupan espacio en disco.
  • Experiencia local: el rendimiento de E/S de archivos, rarezas de red y permisos de volúmenes pueden darte problemas.
  • Depuración: la capa extra (contenedor + orquestador) añade complejidad para las herramientas y los logs.

Aspectos a considerar

  • Mantenimiento: los Dockerfiles, las imágenes base y el parcheo de CVE siguen necesitando atención.
  • Secretos/config: hay que gestionar variables de entorno, montajes y credenciales de forma segura.
  • No es una bala de plata: aún puedes configurar mal puertos, recursos o archivos de compose.