アプリケーションデプロイ時の当たり前のこと
十分な内部テストを行った後、いざ公開サーバにデプロイする場合の、当たり前に行わないといけないことの備忘録。特に、データベースのスキーマ変更を伴い、停止が必要な場合の例。
- 作業の開始を宣言する。事前に作業予定を告知し、作業者に割り込みが入らないようにする。
- スレーブサーバのコンディションを確認する。マスター側を停止した際に、スレーブ側が死んでいると全滅する。
- 旧アプリケーションのディレクトリを、属性も含めてバックアップする。(cp -p -r や tar -p など)
- 旧アプリケーションのデータベースをダンプする。(mysqldump)
- ウェブサーバを停止する。
- アプリケーションサーバを停止する。Java VM が完全に停止するまで待つ。
- アプリケーションサーバのワークディレクトリを削除する。
- データベース周りの変更処理は、テスト環境で作りこんだスクリプトにて自動的に行う。
- アプリケーションを配置する。
- アプリケーションサーバを開始し、ログファイルを確認する。
- ウェブサーバを開始する。
- ロードバランサーをパスして直接アクセスする。
- あらかじめ用意したテストパターンを実施し、動作の確認を行う。
- 作業の終了を宣言する。
肝心なのは、上記の手順書+チェックリストを作り、テスト環境にて何度も検証すること。
本番環境は冗長構成になっていますが、テスト環境がシングルサーバ環境の場合には、スレーブ側の DB の仕向け先に注意すること。間違って、スレーブ側に書き込むようなことがあると、マスター DB とスレーブ DB の同期が面倒になります。
森田::