BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Nanite: 自己集合するRubyプロセスクラスタ

Nanite: 自己集合するRubyプロセスクラスタ

ブックマーク

Naniteは、Ezra Zygmuntowicz氏がEngine Yardのクラウドコンピューティング戦略に追加した最新のプロダクトである。これは、Webアプリケーションのバックエンドとして高いスケーラビリティを確保するための"自己集合するRubyプロセスのクラスタ"である。(Ezra氏のアナウンスはこちら(リンク)

Naniteを構成するのは、エージェントとマッパという2つのパーツである。エージェントはアプリケーションの機能を実装するものであり、マッパはエージェントをシステムのノードとして管理する。エージェントは定期的に自身のステータスとロードアベレージをマッパへ通知するため、マッパはエージェントに対して効率よく処理を分配することができるのである。Naniteのreadmeファイル(リンク)では、より詳しい情報とサンプルを見ることができる。
 

Naniteは、RabbitMQ(リンク)を中心に構築されている。RabbitMQとは、Erlangで記述された高信頼で完成されたエンタープライズメッセージングシステムである。彼のブログのコメント(リンク)によると、RabbitMQ以外でもAMQP互換のメッセージミドルウェア上であれば動作するはずである。
 

InfoQ: Engine YardでNaniteは使われていますか。

NaniteはEngine Yardの新しいサービスプラットフォームとしてバックエンドに使われています。EC2のインスタンスを自動でスケールさせるのに役立っています。私たちがサービスのコアの一部分を公開することによって、サービスへのトラフィックは増加しますが、サービスの一部がNaniteエージェントを使っているために何も問題は起きません。

InfoQ: ウェブアプリケーション以外でNaniteが役に立つアプリケーションはありますか。

Naniteはウェブアプリケーション以外にも多く使われると考えています。多くのサーバを横断するリソースのセットをRubyからコントロールする必要がある場合、Naniteはよいソリューションとなります。

InfoQ: 数ヶ月前、次世代クラウドコンピューティングプラットフォーム(参考記事)としてVertebraについての話を伺いましたが、NaniteとVertebraの関係はどうなっているのでしょうか。

最終的には、NaniteとVertebraはrabbitmq/xmppブリッジを通して共に動作することができるでしょう。Naniteはクラウド環境上のアプリケーションを、さらにスケールさせるためのものです。Vertebraは、異種のアプリケーションのエージェントが分散したサーバに存在する場合に、それらを接続して新たなアプリケーションを構築するためのものです。
RabbitMQのセキュリティモデルはvhostsをベースにしていますので、同一バーチャルホスト上のどのようなプロセスでも相互にメッセージ交換を行うことができます。つまりこれは、バーチャルホストを用いてスケーリングする方法と相性がよいのです。また、Naniteは、アプリケーションへの負荷でユーザを待たせないための高性能なメッセージングフレームワークでもあります。Naniteで互いのセキュリティを担保した上で、Vertebraを用いて複数のマシンを接続できるようになると考えています。

NaniteはGitHub(リンク)で公開されており、Vertebraはクリスマス前、12月15日前後にオープンソースとしてリリース予定である。

 

原文はこちらです:http://www.infoq.com/news/2008/11/nanite

この記事に星をつける

おすすめ度
スタイル

BT