VertebraはEngine Yardの「プラットフォームであり、セキュアなクラウドアプリケーションを開発したり、管理したりするためのもの」であり、2008年6月に発表された(参考記事)。そしてついにLGPL3のもと、リリースされた(リンク)。
そこで、Vertebraは正確には何ができるのか(EngineYardのプレスリリース(リンク)からの抜粋)?
Vertebraはクラウドの自動化および分散、リアルタイムアプリケーションの記述に使用することができる。多数のクラウドの違いを受け入れ、プロセスおよびアプリケーション管理を自動化する機能があるため、プラットフォームは傑出している。
Vertebraの機能は、以下のとおりである。
- パワフル、スタンダードXMPP(Extensible Messaging and Presence Protocol)インフラ
- セキュリティポリシーを管理するための、セキュリティおよびディスカバリエージェント
- マシンおよび人間の両方を含む操作上のタスクを調整する、プロセス自動化エージェント
- システムプロビジョニングレジストリが、アプリケーションの自己組織化を可能にする
- 連合デザインにより、アプリケーションがインターネットのEメールとは異なるやり方で、シームレスかつ安全に操作できる
- 分散監査/ロギング機能
- 操作上の意識のための、分散ジョブコントロール
Engine Yardよりリリースされたので、Vertebraは独自のインフラの管理にも使用されるのかと思った。そこでEngine Yardの設立者でありアーキテクトであるJayson Vantuyl氏に話を聞いた。
広範にわたってVertebraを使用していません。RailsがBaseCamp(リンク)か ら抽出されたのと同じで、Vertebraは、かつて内部クラウドを管理したときに使用したさまざまな技法から抽出されています。ですから、そうしたとこ ろから誕生していながらも、まだ完全に統合しきれていません。そうは言っても、Virtual Machine管理のための基本的なインフラや、ステータスの照会が整備されています。
現状にかなり満足しています。なぜなら開発に完全に同期させる必要がある場合、われわれが可能な以上に速くVertebraは開発されなければいけないか らです。できるだけ早く、その価値をコミュニティに提供するために、かなり初期段階でVertebraをリリースしました。現段階(現在、バージョン 0.3)を越えるまでに進化したら、われわれのシステムに完全に統合するよう見込んでいます。これは、概してわれわれが必要とするテクノロジーを完全なも のにすることとわれわれの顧客が実験台ではないという尊重との間のバランスを取ることです。
VertebraのWebサイトでは、そのセキュリティ機能(リンク)および「Domain Name ServiceやEメールシステムのようなもっと伝統的なシステムに類似していて、Vertebraは自動的にフェデレートするように設計されている」と 書かれている。Jayson氏は以下のように説明している。
たいていのネットワークシステムのように、Vertebraは2段階のセキュリティレベルに集中しています。「トランスポートレベル」と「アプリケーションレベル」です。
サーバとクライアントかんのトランスポートレベルは、XMPPによって提供されます。たいていの人が馴染みのあるTLS/SSLです。ログインシステムに よって、クライアント接続が認証されます。フェデレーテッドサーバ接続の追加のセキュリティは「サーバの呼び戻し」の形式で提供されます。
秩序立って言うなら、Eメールを考えて見ます。非常によく似た方法でフェデレートします。Eメールは自動でフェデレートしますが、やや見境なくおこないます。Eメールのソースを検証するものがほとんどありません(SPFやDomainKeysが それに取り組んでいます)。XMPPサーバが別のサーバから主張される接続を受信すると、サーバに連絡します。そして、元の接続を返す必要があるといった 情報をそのサーバに提供します。この情報が推測されない限り、この特別な情報によってサーバは接続が正規であると信頼することができます。
Vertebraでは「Vertebra APIの真の人間を折り返す」(リンク)ことができる。非常に気になるこの機能は、面白そうであるが、実際はどういう意味なのか?
ワークフローシステムの一部として、人による対話のエージェントが作られ、XMPPチャットプロトコルを通じで、プロセスへの人の統合を可能にします。こ のように、現在ヒューマンシステムはモデル化され、XMPPチャットにより駆動することができます。また今後の自動化のために自動化のポイントが定義され ます。
もう少し詳しく言うなら、Vertebraではコードのすべてが「オペレーション」という形で公開されます。オペレーションはプログラマのツールで、機能 呼び出しというよく知られた形体で提供されます。これは、マシンとのインターフェイスによる接続では便利であるが、アプリケーションの記述は困難です。 ヒューマンシステムの開発も同様に、面倒です。問題を解決するために必要な、いくつかの作業があります。
インターフェイスの問題を取り除くわれわれの最初の試みは、コマンド行ツールを構築する手段の提供でした。これは実りのあるものでしたが、Ezraは我が 道を飛び出して、IMに対する制御を提供するために、XMPPのチャットシステムを使うことのメリットを特定しました。これにより、ある種のゲートウェイ エージェントを所有することはためになり、コマンド行の上にステップを提供します。
それについてさらに考えたとき、反転した場合もこのモデルが非常にパワフルになったことに気付きました。具体的には、上記のエージェントを通じて操作の起 動を許可する他に、操作の「受信」を可能にしたらどうなるでしょうか?この概念はいわゆる「The Meat Agent」に発展しました。人を「肉」と呼ぶのはいくらか軽蔑的かもしれません。しかし、このエージェントの目的は、システムによって人びとが組織化で きるようにし、クラウドでの操作を調整できるようにすることです。
それについて考えると、毎日これが実行されます。チケットのトラックシステムは、技術者を組織する方法です。共用カレンダーは、ビジネスや営業の人びとを 組織する手段です。自動化Eメールでさえ、この目的にかないます。Vertebraでは、これを一流の概念として形作りました。人びとは、マシンのワーク フローの一部になることができます。
詳しくはVertebraのWebサイト(リンク)を参照のこと。技術的な情報については、GitHubのVertebraリポジトリ(リンク)にアクセスのこと。
原文はこちらです:http://www.infoq.com/news/2009/01/vertebra-released