capistranoとかvladとか
現状のデプロイ手順があまりに原始的な上に、作業に関わる人間が人力作業を嬉々としてやっているという絶望的な状況だったので、自ら改善すべく調査
デプロイツールっていったら何故かrails周りが盛ん。あとはJava関連でちらほら見掛かるぐらい。とりあえずCapistrano一択だったところに、最近Vladという似たようなのが出てきたところ。どちらもかなりrailsの実装を前提としているが、他のアプリにも使えなくはない。
基本的な考え方は共通していて
- サービスに使っているホストを役割り(role)で分類
- バージョン管理ソフトから必要なソースを取ってくる
- ホスト上の適切な場所に配置してまわる
- apacheをgraceful restart
- データベースのスキーマを更新
- 動作の流れをrakeで記述する
とか。デフォルトで用意されている手順(レシピ)が違っていたり、用語に若干差異があるぐらいでほとんどかわらないように思えた。rakeの記述力もあってか、やる気があればリリース手順としてどんなことでも出来そう。
敢えていうならばVladの方が後発だけあってレシピが簡潔に記述できるように洗練されていて、まだ規模が小さいことで全体の見通しがよいことぐらいか。いずれのソフトウェアもRailsのディレクトリ構成のときに最も簡単に適用することができるが、自作のレシピさえ書いてやればほとんどのアプリケーションのデプロイに使えると思った。逆に言うと、Railsアプリ以外で適用するとなると結構な部分のレシピを手書きで作ってやる必要がある。