アプリケーションデプロイ時の当たり前のこと

十分な内部テストを行った後、いざ公開サーバにデプロイする場合の、当たり前に行わないといけないことの備忘録。特に、データベースのスキーマ変更を伴い、停止が必要な場合の例。

  1. 作業の開始を宣言する。事前に作業予定を告知し、作業者に割り込みが入らないようにする。
  2. スレーブサーバのコンディションを確認する。マスター側を停止した際に、スレーブ側が死んでいると全滅する。
  3. 旧アプリケーションのディレクトリを、属性も含めてバックアップする。(cp -p -r や tar -p など)
  4. 旧アプリケーションのデータベースをダンプする。(mysqldump)
  5. ウェブサーバを停止する。
  6. アプリケーションサーバを停止する。Java VM が完全に停止するまで待つ。
  7. アプリケーションサーバのワークディレクトリを削除する。
  8. データベース周りの変更処理は、テスト環境で作りこんだスクリプトにて自動的に行う。
  9. アプリケーションを配置する。
  10. アプリケーションサーバを開始し、ログファイルを確認する。
  11. ウェブサーバを開始する。
  12. ロードバランサーをパスして直接アクセスする。
  13. あらかじめ用意したテストパターンを実施し、動作の確認を行う。
  14. 作業の終了を宣言する。

肝心なのは、上記の手順書+チェックリストを作り、テスト環境にて何度も検証すること。

本番環境は冗長構成になっていますが、テスト環境がシングルサーバ環境の場合には、スレーブ側の DB の仕向け先に注意すること。間違って、スレーブ側に書き込むようなことがあると、マスター DB とスレーブ DB の同期が面倒になります。

森田::