Self-integrating Network Infrastructure Interface

SINET II。はい。

次期RUNESの設計。次期RUNESはRole-basedではなくなるので、名前も変更予定。


ネットワークが、自己組織化する。人が手を下すのは、プラグインのインストール(コピー)と、電源ボタンだけ。
後は勝手に冗長化して負荷分散して、障害が起これば補間する…といきたいところだけど、それをやるには分散な冗長化ファイルシステムが要るので、ちょっと足りない。(後で作る)

さらにCPU速度が必要なアプリは自動的にCPU性能の良いマシンで動くようになるし、ストレージが必要なサービスなら、ストレージが接続されたマシンで動く、というところまで持って行く予定。




ベースにdRubyを使用。というか全部dRuby。ネームサービスだけちょっと合わないので、そこを作る。できればコネクションプールも追加すると速くなるだろうけど。V-FIELDに載せると速い。まぁ遅くてもいいか。

依存関係情報は、YAMLで記述。
依存先は、とりあえずはプラグイン依存、ファイル(フルパス)依存、コマンド($PATHから探す)依存、ライブラリ(/etc/ld.confから探す)依存だけあれば十分かな。
ORとかはもう無し。面倒すぎる。

できれば依存関係は実行プログラムから全部推測したいのだけど、ちょっと無理っぽい。

その実行プログラムは、全部Rubyで書く。もうRubyしかダメ。
できればシェルスクリプトには対応したいところだけど、シェルスクリプトでは分散オブジェクトは使えない。使わないならOK。
他はPythonとかどうせ使わないし。


それから適用順制御はRUNESではやらない。dRubyとそのラッパーでやる。この方が何かと簡潔。



プラグインは例のごとくバンドル。
Example.bdl
 start.rb  (必須)
 meta.yaml (必須)
 resouces (オプション)
 default.conf (オプション)



1. ネームサービスを設計
2. プラグイン - dRubyラッパー
3. VIVER - RUNESインターフェース
4. V-FIELD - RUNESインターフェース