Create: 2013/07/03
LastUpdate: 2013/07/04
ここでは、OSSを組み合わせて、下図のようなイメージでWEBアプリケーション(PHP)の「バージョン管理」と「リリース」を支援するサーバを構築してみます。
ソースコードの管理には、Subversion を使用します。リリースには、Capistano を使用し、Subversionのリポジトリからソースコードを取得して本番環境へを配布するようにします。また、リリース時は、phpcs を使用したPHPの構文チェックを行い、構文チェックがNGの場合は受け入れない(リリースしない)こととします。
Subversionのレポジトリは、以下のように使用することにします。
開発担当者が、trunk と branches を使用してソースコードを管理し、リリース版を tags に作成します。
運用担当者が、tags からソースコードを取り出して受け入れチェックがOKならリリースすることにします。
- trunk ・・・ 開発中のコードを管理する。(メイン)
- tags ・・・ リリースするコードを管理する。変更しない。
- branches ・・・ リリースしたコードの保守
受け入れチェックでは、リリース条件の確認(他システムとの関連、リリース順序の保証など)や品質チェック(デグレの防止など)を行うことも考えられますが、複雑になるので、今回はPHPの構文チェックで代用します。
また、今回は、単純にWEBアプリケーション(PHP)とHTML、画像などの静的ファイルのリリースのみ考え、毎回、全部のファイルをリリースすることにします。DBのスキーマ変更やデータ変換などは考慮していません。
以下に上図の運用管理サーバ構築手順と使い方を紹介します。
- 1.サーバ構築
- 1.1.SunVersion+Apache のインストール
- 1.2.Capistrano のインストール
- 1.3.phpcs のインストール
- 2.テスト環境設定
- 2.1.テスト用のWEBアプリケーション作成
- 2.2.Subversionでレポジトリの作成
- 2.2.Capistranoでタスクの作成
- 3.動作確認
- 3.1.WEBアプリケーションのコミット
- 3.2.WEBアプリケーションのリリース
- 3.3.WEBアプリケーションのリリース番号チェック
今回は扱いませんが、以下のOSSを組み合わせるのも、おススメです。
Trac を利用してバグ管理とレポジトリ参照を行い、リリースなどの操作は、JobScheduler などを利用して自動化すると面白いかもしれません。バグ管理、レポジトリ参照、定時リリース(自動)、緊急リリース(手動)、切り戻し(手動)、などの操作を全てブラウザでできるようになると思います。
- Git ・・・ バージョン管理ツール。上図の Subversion の代わりに利用できる。
- Fabric ・・・ Python を使用したデプロイツール。 上図の Capistrano の代わりに利用できる。
- Trac ・・・ Pythonを使用したバグ管理ツール。
- Readmine ・・・ Ruby を使用したバグ管理ツール
- JobScheduler ・・・ ジョブ管理ツール。リリース操作の自動化などに利用できる。
- OTRS ・・・ 「ヘルプデスク管理機能」と「ITIL運用管理機能」を備えたツール。
■ 参考サイト
- 連載:オープンソースで始めるバージョン管理&タスク管理 - @IT
- デプロイツール比較 CapistranoとFabric
- Capistranoで簡単デプロイ -開発用サーバー編-
- No.101ITIL編20:「変更を円滑に実装するためのプロセス。"リリース管理"プロセス」 - 中小企業のためのIT化戦略