Contenedores: qué aportan y cuándo sobran
Qué problema resuelve
Hacer coincidir versiones y dependencias entre máquinas. En vez de instalar y configurar en cada servidor, construyes una imagen y la ejecutas en todas partes. De ahí también la facilidad de escalar: ejecutar otra instancia es cuestión de segundos.
Cómo construir una buena imagen
Una base ligera y actualizada, una construcción multietapa para que las herramientas de compilación no lleguen a la imagen final, un usuario sin permisos completos, y una etiqueta de versión explícita, no solo 'latest'.
No pongas secretos en la imagen. Se inyectan en tiempo de ejecución.
Cuándo no hace falta
Un sitio estático, una función pequeña, o un sistema que corre en una plataforma gestionada que lo maneja ella misma. Los contenedores añaden una capa que mantener; si no obtienes de ellos portabilidad o uniformidad, prescinde de ellos.
En profundidad
Escanea las imágenes en busca de vulnerabilidades en el proceso de construcción, y reconstruye en un ciclo regular aunque no haya cambios de código: la mayoría de las vulnerabilidades vienen de la capa base. Y fija una política de etiquetado clara para poder decir siempre qué versión exacta está corriendo ahora.