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.