cronjobによる自動アップデートは安全ですか?

Discourseの自動更新をcronジョブで行うことを考えています。例えば、2週間に一度、夜間に以下のcronジョブを実行します。

cd /var/discourse
./launcher rebuild app

これは安全に行えると思いますか?それとも手動で行うべきでしょうか?

何かがうまくいかなくなり、サイトが壊れる可能性があります。実行する際には注意してください。

はい。ビルドの出力をすべてメールで送信しようと考えていました。そうすれば、朝に確認できます。

個人的には、自分のサイトでも全く同じことをしていますが、ブートストラップが失敗した場合に備えて、2つのコンテナを使用しています。

ブートストラップが正常に完了した場合にのみ、古いコンテナが停止し、新しいコンテナが起動します。

今のところ問題はありません。

Jayが言ったように、まれに、アップデートによって問題が発生する可能性があります(Discourse自体またはプラグイン/コンポーネントの問題)。
私は数年間で数回それを経験しました。非常にまれで、修正は迅速に行われますが、このため、インスタンスを再構築する前に、アップデートに関する情報を入手し(そして#bugカテゴリをチェックし:eyes:)、アップデートを行います。新しいバージョンが公式にリリースされてから数日間待つことが多いです。

また、時々 ./launcher cleanup を実行します。

そのため、情報を収集してから、自分でアップデートしたいときにアップデートする方が好きです。潜在的な被害制御があり、より安全です。

2026年について何か新しい情報はありますか?

本番サイトが停止するリスクを冒してでも、セキュリティアップデートをできるだけ早く適用したいと考えています(手動でのアップデートを避けるため)。Discourseはセキュリティアップデートとその他のアップデートを実際には区別していないので、毎日すべてを更新しても構いません。まだcronジョブが最善の方法ですか?

私個人としてはやりません。一つには、セキュリティ修正のためだけに毎月更新する必要があるわけではなく、リリースノートを読んで判断を下すからです。もう一つには、毎日更新すると、システムが停止する稀なケースに遭遇する可能性が高くなります。間違いなくダウンタイムは増えるでしょう。

誰か熟練した人が修正に来るまで、cronジョブがフォーラムを停止させることがあっても構わないのであれば、もちろんcronジョブを実行しても構いません。しかし、その熟練した人がここにいる開発者に連絡を取り、問題が診断され修正されるまでさらに数時間待つ必要があるかもしれない、ということを念頭に置いてください。

Discourseのアップデートは過去4年間、私のフォーラムを壊したことがないので、心配していません。もし稀に壊れたとしても、対応できます。

私の懸念は、よりセキュリティに関連する部分にあります。最近の出来事(1週間前のAxios npmパッケージの件など)では、ライブラリのハッキングが相次いでおり、新しいリリースから7日経ってからライブラリを更新する方が良いかもしれません。

もしセキュリティ関連の更新を即座に行い、それ以外は7日の遅延で更新できるのであれば、それが理想的だとは思いますが、Discourseではそのような機能はサポートされていないようです。

更新に関する問題は、フォーラムをクラッシュさせるだけでなく、目立たずに新しいバグ、機能の破損、プラグインやコンポーネントの互換性の問題などを引き起こす可能性があります。ただし、それは稀なことです。

フォーラムの更新頻度を劇的に上げることがクラッシュやバグに直面するリスクを高める可能性はありますが、それでも様子を見て、問題が多すぎれば元に戻すこともできます。

私が言いたいのは、誰かによっては「最善のアイデア」ではないかもしれませんが、それほどリスクが高いわけでもないということです。