分かっていてもなかなかできないWebサービスの更新

ある日私はウェブで公開しているデータをSSHからサーバに入ってvimでちょろちょろ直してたのですが・・。

そこで改めて思ったことをメモっておきます。

ウェブサービス(と言うかサイト)を更新するときの話なんですが、普通にFTPなどでファイルをアップロードするとデザインが揺れますよね。
ようは更新が完了するまでの間のアクセスの人に送られるデータがよく分からないことになる。

なので、一般的には下のような手順をとるべきなんだろうと思います。

  1. webのDocumentRootをどこかへのシンボリックリンクにしておく
  2. 日付をつけたディレクトリなど、新しいディレクトリを作る
  3. そこに新しいデータをすべてアップロードする
  4. シンボリックリンクを張り替える

これならサイトが『よく分からなくなる場合が有る時間』はアップロード期間中から、シンボリックを張り替える期間(を、はさんでリクエストしている人がいる)時間になるので、だいぶ短くなります。

ただもっと気を遣うのなら下記のようになるのでしょうか。

  1. 日付をつけたディレクトリなど、新しいディレクトリを作る
  2. そこに新しいデータをすべてアップロードする
  3. DocumentRootを指定しなおす。
  4. restart graceful

これなら理論上は『よく分からなくなる場合が有る時間』はゼロになります。

よかったよかった。問題は面倒くさいということだけですね!