¿Validación de YML antes de la reconstrucción?

Esto está en una instalación de Discourse autoalojada en un VPS privado con una instalación Docker típica.

Lo hice de nuevo:
Esperé una reconstrucción de actualización “impecable” de dos horas a v3.4.0.beta2-dev.
Luego agregué un par de líneas a app.yml y esperé un par de horas más para otra reconstrucción.
(¿Por qué separar las operaciones? Porque un doble golpe nunca es bueno si existe la posibilidad de errores.)
Luego encontré errores en tiempo de ejecución en el registro porque olvidé espacios en app.yml (para la cuenta y clave de MaxMind).
Así que esta noche necesito hacer otra reconstrucción.

Eso son más de seis horas de tiempo de inactividad virtual, en comparación con un sitio de WordPress u otro CMS que solo tomaría unos minutos en el mismo escenario exacto. Esto grita “mala experiencia de usuario” y, por lo tanto, “anti-marketing”: simplemente no es bueno para la plataforma.
La única razón por la que tuve que hacer una segunda reconstrucción fue porque agregué estas malditas dos líneas. Realmente desearía que no fuera necesaria una reconstrucción completa solo por este pequeño cambio en el archivo de configuración.

  1. ¿Se ha hablado de realizar una validación del archivo yml antes de una reconstrucción? Esa simple función habría eliminado una operación que consume mucho tiempo y los problemas posteriores.

  2. ¿Se ha hablado de un preprocesador que determine si se requiere una reconstrucción completa después de cambios específicos?

  3. Me sorprende que un error de YAML no se haya informado en los registros. ¿Hay alguna razón por la que la carpeta principal .yml en tiempo de ejecución y quizás otras no se verifiquen en busca de errores sintácticos? … ¿O los administradores más experimentados hacen su propio análisis antes de una reconstrucción? :thinking:

Estoy alojando en Docker porque creo que es la plataforma “más fácil” si/cuando le paso este sistema a otra persona para su mantenimiento. Si eso no es correcto, y he optado por no solo “no lo más fácil”, sino también “lo más lento”, quizás debería considerar una opción de instalación diferente.

¡Gracias!

Una configuración de dos contenedores puede crear el nuevo contenedor mientras que el antiguo sigue funcionando, por lo que solo hay un minuto o menos de inactividad mientras el nuevo contenedor se inicia.

Ese es un tiempo de reconstrucción muy bueno. Supongo que estás en Raspberry Pi o algo más que es muy lento.

Normalmente, si hay un problema de configuración en YAML, se te avisa de inmediato.

Puedes comprobar el tamaño del archivo usando este código, luego puedes analizar si es un problema de espacio

/var/discourse# du -sh /* | sort -h

Excepto con esos dos espacios con MaxMind. Pasa pero las cosas geográficas no funcionan. Así que no es un error de sintaxis yml per se, pero sigue siendo un error :man_shrugging:

1 me gusta