Validazione YML prima di ricostruire?

Questa è un’installazione Discourse self-hosted in un VPS privato con una tipica installazione Docker.

L’ho fatto di nuovo:
Ho atteso una “perfetta” ricostruzione dell’aggiornamento di due ore a v3.4.0.beta2-dev.
Poi ho aggiunto un paio di righe ad app.yml e ho atteso altre due ore per un’altra ricostruzione.
(Perché separare le operazioni? Perché un doppio colpo non è mai buono se c’è la possibilità di errori.)
Poi ho riscontrato errori di runtime nel log perché ho dimenticato gli spazi in app.yml (per l’account e la chiave MaxMind).
Quindi stasera devo fare un’altra ricostruzione.

Questo significa oltre sei ore di downtime virtuale, rispetto a un sito WordPress o di un altro CMS che richiederebbe solo pochi minuti nello stesso identico scenario. Questo urla “cattiva UX” e quindi “anti-marketing” - semplicemente non fa bene alla piattaforma.

L’unica ragione per cui ho dovuto fare una seconda ricostruzione è stata perché ho aggiunto queste maledette due righe. Vorrei davvero che una ricostruzione completa non fosse necessaria solo a causa di questa piccola modifica nel file di configurazione.

  1. Si è parlato di eseguire una convalida del file yml prima di una ricostruzione? Questa semplice funzionalità avrebbe eliminato un’operazione dispendiosa in termini di tempo e i conseguenti problemi.

  2. Si è parlato di un preprocessore che determina se è necessaria una ricostruzione completa dopo modifiche specifiche?

  3. Sono sorpreso che un errore YAML non sia stato segnalato nei log. C’è un motivo per cui la cartella principale .yml di runtime e forse altre non vengono controllate per errori sintattici? … O gli amministratori più esperti eseguono il proprio linting prima di una ricostruzione? :thinking:

Sto ospitando in Docker perché credo che sia la piattaforma “più facile” se/quando passerò questo sistema a qualcun altro per la manutenzione. Se ciò non è corretto, e ho optato non solo per “non il più facile” ma anche per “il più lento”, forse dovrei considerare un’opzione di installazione diversa.

Grazie!

Una configurazione a due container può creare il nuovo container mentre il vecchio continua a funzionare, quindi c’è solo un minuto circa di inattività mentre il nuovo container si avvia.

Questo è un tempo di ricostruzione molto buono. Immagino che tu stia usando un Raspberry Pi o qualcos’altro di molto lento?

Di solito, se c’è un problema di configurazione yml, ricevi un avviso subito.

Puoi controllare la dimensione del file usando questo codice, quindi puoi analizzare se è un problema di spazio

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

Tranne con quei due spazi con MaxMind. Funziona ma le cose geografiche non funzionano. Quindi non è un errore di sintassi yml in sé, ma è comunque un errore :man_shrugging:

1 Mi Piace