11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

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

  • 2009-09-22
  • 本文字数:1225 字

    阅读完需:约 4 分钟

一年前,纽约时报和 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

2009-09-22 00:031935

评论

发布
暂无评论
发现更多内容

“产学合作,协同育人”——安谋中国集成电路人才发展趋势沙龙圆满举行

脑极体

人工智能--野人过河

空城机

Java 算法 5月日更 大学笔记

[TcaplusDB知识库]TcaplusDB表定义

TcaplusDB

数据库 nosql 分布式 TcaplusDB

后台开发:核心技术与应用实践 — C++

奔着腾讯去

c++ 面向对象 服务器开发 C++后台开发

TcaplusDB君 | 行业新闻汇编(5月20日)

数据人er

数据库 nosql tencentdb TcaplusDB

对账模块和赊购退款、还款流程

try catch

支付 退款 对账 赊购

区块链专家与媒体面对面 | “区块链让数据产生价值”

CECBC

520有感而发

yu

520 单身福利

5分钟速读之Rust权威指南(七)

码生笔谈

rust

TcaplusDB | 小满,未来可期

数据人er

数据库 nosql tencentdb TcaplusDB

521的祝福-北爱的回忆

数据一哥

520单身福利 520 单身福利

显示器的未知之海:从电脑窗口到数字世界的Mate级探险

脑极体

未来每个人的生活可能都会离不开区块链

CECBC

内卷是必然

ES_her0

5月日更

Docker 镜像和容器

飞跃

Docker 520 单身福利

数据仓库如何确定主题域?

数据社

数据仓库 5月日更

C#常用特性和快捷键

fox

520单身福利

关于爱情的碎碎念

穿过生命散发芬芳

520单身福利

【得物技术】统一OLAP查询平台之语义层

得物技术

OLAP 查询 得物技术 平台 语义

波特五力模型

石云升

创业 战略 职场经验 5月日更

工业互联网平台赋能需充分挖掘数据价值

浪潮云

架构学习笔记:架构设计3原则

六维

架构 5月日更

Docker 入门

飞跃

翻译:谁将在AI中赚钱?by Simon Greenman John 易筋 ARTS 打卡 Week 48

John(易筋)

ARTS 打卡计划

apache dubbo 自定义全局统一的异常处理器

try catch

阿里专家离职带出来的Java面试全秘籍,我看了三个月,就收到了京东的offer

Java 程序员 架构 面试 计算机

中国数字货币释放利好消息!

CECBC

华仔训练营模块4作业

方堃

智慧公安微警务APP搭建,公安信息化建设

Flink的分布式缓存

大数据技术指南

flink 5月日更

学习笔记之:05 | 数组:一秒钟,定义 1000 个变量

Nydia

学习

CloudCrowd——一个100%的Ruby云方案_Ruby_Sebastien Auvray_InfoQ精选文章