ウェブアプリケーションのメンテナンス

常時稼動のウェブアプリケーションだと、一括メンテナンス画面差し替え等の仕組みを用意しておく必要があるが、切替えをどこでどうやってするのが一番良いのだろう?

  1. 設定ファイル
  2. データベースのとあるテーブル

「メンテナンス中」フラグの読み込み

  1. 起動時のみ(再起動が必要)
  2. 画面表示時に毎回読み込み(即時反映)

CDBIActiveRecord みたいにリッチなO/Rマッパーを使うと、パフォーマンスは置いといて、DB x 画面表示時でも良い様な気がしてくる。


と、ここまで書いて、フロントでウェブサーバが並列に走っていて1台だけトラブルが起こった時とかは、DBに置くと全部止まって困るなと思った。しかし、スキーマ変更等の場合は全てのサーバで一括してやりたいこともある。いや、でも、DBトラブルの場合があるからマズイな。


どうやってます?