BT

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

CloudCrowd——一个100%的Ruby云方案

| 作者 Sebastien Auvray 关注 0 他的粉丝 ,译者 霍泰稳 关注 1 他的粉丝 发布于 2009年9月23日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

一年前,纽约时报和ProPublica联合发起了耐特新闻挑战2009竞赛。DocumentCloud赢得715,500美元的奖金,任务是构建一个基于文档的应用,使得组织和检查文档变得更加容易。因为考虑到同时要处理好几个资源消耗比较大的任务,DocumentCloud决定完全用Ruby实现自己的云方案:CloudCrowd

DocumentCloud主要是使用CloudCrowd处理PDF文档,但是也可以用来处理下面一些资源消耗大的任务:

  • 创建或者伸缩图片;
  • 在PDF上进行文字抽取,或者OCR;
  • 视频解码;
  • 迁移大文件集合或者数据库;
  • Web抓取

CloudCrowd架构文档中有如下描述:

CloudCrowd不是为大量小事务所设计,而是为那些大型、消耗资源比较多的事务所准备的。

CloudCrowd的灵感来自于MapReduce框架。它的架构基于一个使用工作者守护进程进行实际处理的中央服务器。它提供了一个REST-JSON API,以及一个用于检测的Web控制台。CloudCrowd使用Amazon S3用于文件存储,但如果需要的话,也可以使用其他工具进行存储。

InfoQ据此采访了CloudCrowd的作者Jeremy Ashkens。Jeremy是DocumentCloud的新人,也是Ruby-Processing项目的作者。

InfoQ:和RightScale Gems或者Nanite相比,CloudCrowd有什么特点?为什么你们要构建自己的方案?

Jeremy Ashkenas:嗯,其实CloudCrowd使用了RightScale AWS gem。它使用S3进行所有结果数据(包括中间和最终数据)的分布式存储。这个变化很大,也是一个很有意思的研究方向,它要通过RightScale gem装载更多的EC2实例,以支持CloudCrowd群集的自动伸缩。中央服务区拥有用于决策自动伸缩需要的所有信息——它了解工作者的数目,它们的地点,它们的状态,以及工作序列的大小等。这只是一个关于为实例装载选择算法,并确保新的实例已有所有需要安装的依赖文件的问题。

和Nanite相比较,CloudCrowd的方向是成为Ruby高手容易理解和定制的简单易用工具。它使用的是绝大多数Ruby开发者熟悉的技术,比如ActiveRecord和标准的ActiveRecord数据库,以及用于通讯和伸缩的HTTP和S3等。所有的这些都很容易调试和研究。最小的CloudCrowd action是一个简单的Ruby类,它被用来定义一个“进程”方法,执行计算中的并行部分,并保存到S3。你可以将CloudCrowd理解为像Hadoop和 Nanite等企业级系统的替代品。不需要Erlang,AMQP或者RabbitMQ等。另外,它没说一定可以用来处理极大容量的数据,但大多数情况下应该都可以应用,这主要取决于你处理问题的效率如何。

InfoQ:为什么使用Ruby?有没有考虑到用其他语言,比如Erlang?

Jeremy Ashkenas:我之所以使用Ruby,是因为我们想将DocumentCloud其他的部分都粘合在一起。注意,许多示例action中的事务不是在Ruby里完成的,而是将他们交付给适当的工具。作为一个粘合语言,Ruby很棒,类如图片处理、PDF转换、视频编码等都可以轻松地交给GraphicsMagick、Tesseract和FFmpeg等工具去处理。

查看英文原文:CloudCrowd - A 100% Ruby Cloud Solution

评价本文

专业度
风格

您好,朋友!

您需要 注册一个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