写点什么

企业级 Rails 部署环境 RubyWorks 发布

  • 2007-05-17
  • 本文字数:1019 字

    阅读完需:约 3 分钟

在 RailsConf 2007 开幕前夕, ThoughtWorks Studios 发布了 RubyWorks 0.0.1 版本。在其网站上这样介绍这个开源项目:

RubyWorks 是一个 Rails 生产部署环境,它由一组开源软件共同组成,提供了在 RedHat 企业版 Linux 或者 CentOS 服务器上部署 Ruby on Rails 应用程序所需的软件和配置支持。 只要将服务器的包管理器(up2date 或者 yum)指向 RubyWorks 发行库,再安装 RubyWorks 提供的软件包,就可以立即获得已经预先配置好的 Rails 部署环境。到目前为止,这是最接近于“一步到位”的 Rails 生产部署环境。

Rails 应用在生产部署环境下的各方面能力(性能、伸缩性、可靠性、可管理性,等等)一直是人们怀疑“Rails 是否能够进入企业应用”的重要原因。经过实践检验,由 HAProxy Monit Mongrel 共同构成的部署环境已经具备了足够强大的能力。但这些软件的配置并不是一件易如反掌的事。

RubyWorks 的出现正是为了解决这个问题:遵循 Rails 社群一贯的“约定俗成优于配置(Convertion-over-Configuration)”的传统,RubyWorks 提供了一个缺省配置好的 Rails 部署环境。缺省配置会在服务器上开启 4 个 Mongrel 进程,分别占用 3002~3005 端口;并用 HAProxy(使用 3001 端口)进行负载均衡。

在《 Agile Web Development with Rails 》的第一版中所推荐的部署方案是基于 FastCGI 的,而第二版则改为推荐基于反向代理的部署方案。James Duncan Davidson 在书中写道:

但 FastCGI 也有很多问题。FastCGI 诞生于 1990 年代中期,但在 Rails 出现之前,它一直默默无闻。即便在被 Rails 重新带回公众视野之后,产品级的、高质量的 FastCGI 环境仍然寥寥无几。很多开发者(包括我们自己)都尝试过各种 Web 服务器与 FastCGI 的组合,并在每种组合中都发现了严重的问题。当然还是有些开发者在 FastCGI 上完成了部署,也没有遇到什么问题,但有那么多人遇到那么多问题,这本身就足以说明:FastCGI 不是一个值得推荐的解决方案。 [……]

简而言之,FastCGI 确实是一枚火箭,但有时会因为各种奇怪的原因而爆炸在发射台上。使用代理让 Rails 应用直接与 HTTP 对话,这是整个社群的发展方向。

RubyWorks 项目领导人 Alexey Verkhovsky 也认为,只有在对“节约内存使用”非常重视的情况下(例如虚拟共享主机),FastCGI 才有其价值;而在普通的企业应用中,可靠性和可管理性重于节约内存,这也是 RubyWorks 选择基于反向代理和 Mongrel 的部署方案的原因。

RubyWorks 还计划于近期推出对 Ubuntu 和 Debian 服务器的支持。

2007-05-17 23:001321
用户头像

发布了 21 篇内容, 共 36105 次阅读, 收获喜欢 2 次。

关注

评论

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

2022-10-25:在一个 2 * 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示。一次 移动 定义为选择 0 与一个相邻的数字(上下左右)进行交换.

福大大架构师每日一题

算法 rust 福大大

概述Spark主要特点

穿过生命散发芬芳

spark 10月月更

css学习笔记3

虾仁疙瘩汤

CSS css3 10月月更

Vue组件入门(十四)依赖注入

Augus

Vue 10月月更

CSS学习笔记2

虾仁疙瘩汤

CSS css3 10月月更

Python在接口测试中的应用

芯动大师

学习方法 “程”风破浪的开发者 Python接口测试

深入浅出Python——Python高级语法之函数

何极光

Python 函数 10月月更

Commit之后发生了什么事情

我不吃六安茶

MySQL 事务

威胁网络安全的主要因素

阿泽🧸

网络安全 10月月更

华为云CDN为用户提供专业全面的加速服务

秃头也爱科技

从幻想走向科学:人类操纵大脑的条条大路

脑极体

Student Management System

David

#架构实战营 极客时间架构训练营

【web 开发基础】PHP 快速入门(11)-PHP 运算符之运算符的优先级

迷彩

表达式 10月月更 web开发基础 PHP基础 运算符优先级

CSS基础1

虾仁疙瘩汤

CSS css3 10月月更

数据共享:VueX学习

Studying_swz

Vue 10月月更

IoTDB 的架构、安装启动方法与数据模式 | 小白教程文档(二)

Apache IoTDB

数据库 IoTDB Apache IoTDB

DevOps | 如何快速提升团队软件开发成熟度,快速提升研发效能?

laofo

DevOps 研发效能 CMMI 敏捷研发 绩效考核

深入浅出Python——Python基础语法全解

何极光

Python 基础 10月月更

如何进行需求分析?

老张

软件工程 需求分析

同样是网络加速,企业为何愿意选择华为云CDN?

秃头也爱科技

2022年元宇宙应用场景发展趋势分析

易观分析

元宇宙

AAX增添新网关,满足全球用户需求

股市老人

限时免费领票|来云栖大会,看OceanBase 4.0最新进展

OceanBase 数据库

【通知】OBCA考试收费调整公告

OceanBase 数据库

C# 关于程序退出问题学习

IC00

C# 学习 程序员 上位机 10月月更

Spring Boot「14」MVC 与前端控制器模式

Samson

Java spring 学习笔记 spring-boot 10月月更

网络请求:Vue_Axios学习

Studying_swz

Vue 10月月更

对比学习算法在转转的实践

转转技术团队

人工智能 推荐算法 对比学习

SAP | 选择屏幕

暮春零贰

SAP 10月月更 屏幕

Baklib产品知识库|为什么说客户体验非常重要?

Baklib

企业级Rails部署环境RubyWorks发布_Ruby_Jeff Xiong_InfoQ精选文章