オーケストレーションツールと愉快な仲間たち

間に何か挟まりましたが、連投です。というか、投稿するのは私だけなので、間隔の多少はあれど常に連投と言えなくもないです。
なんか寂れた掲示板とか購読者の居ないメルマガを彷彿とさせますね。

そんなブルー入った気分で始まる今回のネタは、前回に引き続きツールまとめです。

さて「オーケストレーション」が耳慣れない方もいらっしゃるでしょうから参考リンクを。
wikipedia オーケストレーション
wikipedia: プロビジョニング
…分かりにくいですね、はい。
個人的には「デプロイとかサーバ群の設定とかをまとめて自動化できるツール」みたいに考えています。(急募:ツッコミのできる有識者)

ではリストの方を見ていきましょう。狭義のオーケストレーションツールと一緒に、サーバ構成管理ツールとかも入ってるのは見なかった方向でお願いします。

実行タイプは「S/C」がクライアント上でエージェントプログラムを走らせる必要があり、「SSH」がクライアントに SSH ログインできればいいものです。

ツール名 言語 実行タイプ 特徴など
Chef Ruby S/C OS 抽象化あり、べき等性あり
Capistrano Ruby SSH 並列SSHのようなもの、デプロイによく用いられる
Serf golang S/C サーバのグループに対するイベントドリブンフレームワーク
Consul golang S/C サービス検知、障害検知。Serf 上に構築される
Ansible Python SSH べき等性あり、テンプレートによるファイル生成が可能
Fabric Python SSH 並列SSHのようなもの、Capistrano と似ている
Cuisine Python SSH Fabric 上に構築される。べき等性あり、OS 抽象化あり

非常に大雑把な説明となっております。「コレは!」と思うものがあれば、ぜひ調査して概要を教えてくださいませ。

その他、関連して使えそうなツールを、いくつか挙げておきます。

・情報収集・グラフ化:cacti とか munin とか
・稼動監視:Zabbix、nagios、Sensu
・サーバ状態テスト:serverspec(Ruby)
・総合管理ツール:Hinemos、Icinga あたり?
・プロセス自動再起動:runit, monit, god, launchtool, daemontools
・スーパーサーバ:inetd, xinetd, ipsvd, ucspi-tcp

以上です。