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.