デプロイ自動化チェックリスト

デプロイを自動化するために何から手をつけていいやら、やることが多くて方向を見失いがち。そこで、チェックリストにしてみた。

http://www.ryuzee.com/contents/blog/4461

より、大項目を並べてみる。

# 項目
1 ソースコードのバージョン管理
2 設定ファイルのバージョン管理
3 データベーススキーマとデータのバージョン管理(マイグレーションの導入)
4 動作させるサーバのミドルウェアのインストール自動化や設定自動化
5 テスト自動化
6 CIサーバの構築
7 デプロイスクリプトの作成

方針:

  • 完成度が低くても、まずは一通り実現させることを優先する。
  • 項目の中で最も優先順位が高いのが CIサーバの構築。

チェック結果

プロジェクト毎に対応度合いは異なるが、(2012/9) 時点 は、以下の状況。

1.ソースコードのバージョン管理

ソースコード管理は、もはや当然のこと、以下のツールを使用している。

2.設定ファイルのバージョン管理

まだ有効な管理方法を見いだしていない。パスワードなどのセキュリティ上重要な設定は、ソースと同じように管理するわけにはいかない。

  • Chef Server

が使えるかもしれない。

3. データベーススキーマとデータのバージョン管理(マイグレーションの導入)

Java 系で使い始めたツールは、

  • dbdeploy

PHP 系は、

  • Phpmig

を検討しているが、まだ周辺が固まっていない部分があって保留中。

4. 動作させるサーバのミドルウェアのインストール自動化や設定自動化

以下のツールが便利。

5.テスト自動化

xUnit 系のツールを使用している。

また、モックオブジェクトフレームワークも役に立つ。

  • Mockito
6.CIサーバの構築

Java 系のプロジェクトのみで構築実績がある。

  • Jenkins

を利用している。ビルドツールが必要になる。

7.デプロイスクリプトの作成

Java 系のプロジェクト1つはよく出来たスクリプトがあるので、本当に素早くデプロイできている。
手元でスクリプトを実行するツールとして

を使用している。