BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Nanite:Ruby程序的一个自我装配集群

| 作者 Mirko Stocker 关注 1 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2008年12月24日. 估计阅读时间: 3 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

Nanite(由Ezra Zygmuntowicz开发)是Engine Yard云计算策略的一个新兵:它是“Ruby程序的一个自我装配集群”,用以构筑高度可伸缩的Web应用的后端(请查看Ezra的声明)。

Nanite包含两部分:代理(agents)和映射(mappers)。代理实现了应用的功能并由映射进行管理,而映射是系统的控制节点。代理周期性地向映射报告其状态和(默认情况下)平均负载,因此映射可以将任务分发到负载最小的代理上。请查看Nanite的Readme文件以了解更多的信息和示例。

Nanite构建在RabbitMQ之上,而后者是用Erlang构建的“一个完整且高度可靠的企业消息系统”。根据其博客上的一篇评论所述,它还可以与其他任何兼容于AMQP的消息中间件协同工作。

InfoQ:Ezra,你在Engine Yard使用Nanite么?

当然,Nanite用作我们新的服务平台engine yard的后端。它在网络拥挤时会自动扩容EC2实例,同时它还是暴露给用户的服务的核心部分,因此用户可以将Nanite代理作为其应用的一部分而无需额外的工作。

InfoQ:除了Web以外,Nanite还能用在什么地方?

我认为除了Web以外Nanite还有很多应用场景。无论什么时候,当你需要从Ruby中跨越多个服务器来控制多个资源时,Nanite都是一个很棒的选择。

InfoQ:我们来谈谈Vertebra吧——下一代的云计算平台——几个月前提出的,Nanite和Vertebra的关系是什么样的?

Nanite和Vertebra最终将会借助于rabbitmq/xmpp桥来协同工作。Nanite适合在云环境下扩展个人应用,而Vertebra则更适合于连接多个异构系统——系统中的每个代理都可以在不同的客户服务器上。
Rabbitmq的安全模型基于vhosts,因此同一个vhost中的内容之间可以互相通信。这样我们就可以在每个应用空间中都拥有一个vhost并使用这种方式来扩展应用。对于用户等待的应用负载来说,Nanite还是一个高性能的消息。Vertebra的优势在于联合多台机器同时又保持其彼此的安全。

Nanite位于GitHub上,同时Vertebra会在圣诞节前(大约12月15日)以开源的形式发布。

查看英文原文:Nanite: A Self Assembling Cluster of Ruby Processes

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT