Ruby Enterprise Edition 停止开发,Phusion 专注于 Passenger

  • Mirko Stocker
  • 李永伦

2012 年 3 月 9 日

话题:RubyRuby on RailsApacheDevOps语言 & 开发

Phusion Passenger 背后的公司宣布它们的Ruby Enterprises Edition(REE)将会停止开发。REE 基于 MRI Ruby 1.8.7,后者也正在淡出(1.8.7 将会继续获得常规维护,直到 2012 年 6 月,安全更新将会到 2013 年 6 月为止)。

REE 包含的补丁解决了 Ruby 1.8.7 的以下问题,使之在通常的面向服务器的使用场景表现更好: 

  • 对写入时复制友好的垃圾回收站,减少 Rails 应用的内存用量。
  • tcmalloc 内存分配器,降低内存用量。
  • 可以调度的垃圾回收器。
  • Brent Roman 的MBARI 补丁集
  • 更多分析和调试功能。

虽然已经淡出,但 Phusion 仍然发布新版。最新版本 1.8.7-2012.02 把底层的 Ruby 升级到 1.8.7-p358,把 RubyGem 升级到 1.8.15,包含了最新的 MBARI 补丁,现在兼容 Xcode 4 或以上和 OS X Lion。

Phusion 建议开始迁移到 Ruby 1.9,他们也在寻找新的维护者,提供后续维护服务: 

我们目前计划提供次要修复和更新,但建议用户逐渐迁移到 Ruby 1.9。Phusion Passenger 3.1 或之前版本的用户可以使用反向代理安装(reverse proxy setup)在同一台服务器上运行多个 Ruby 版本。从 Phusion Passenger 3.2 开始,它会原生支持多个 Ruby 版本,无需使用反向代理安装。

我们相信 Ruby Enterprise Edition 已经完成它的使命了。我们理解许多人目前由于兼容性的问题仍然依然于 Ruby 1.8。因此我们想找一些志愿者帮助维护 Ruby Enterprise Edition。如果你感兴趣,请联系我们

InfoQ采访了 Phusion 的 Hongli Lai,了解为何不会发布 REE 1.9: 

REE 的大多数补丁在 1.9 里都是不需要的,其中一些在 REE 里没有对应。举个例子,MBARI 补丁集是和 1.8 紧密相关的;一些 MBARI 补丁已经合并到 MBI 1.8 了,另一些解决的问题在 1.9 是并不存在。另一个例子是:caller_for_all_threads 补丁在 1.9 里已经废弃,因为 1.9 对于类似的功能有自己的官方 API。Ruby 1.9 没有提供任何调度 GC 的选项,但它的 GC 总体性能更优,因此没有太大的必要提供调度选项。

InfoQ:Phusion Passenger 3.2 将会支持多个 Ruby 版本,你能详细告诉我们 Passenger 的未来是如何规划的吗? 

我们的规划里有很多令人振奋的东西。不过目前无法告诉你所有东西,其中一个我们正在做的是把 Phusion Passenger 从目前的基于多线程的 I/O 体系换成基于时间的 I/O 体系。这使我们可以通过更健壮的方式处理 I/O,从而带来几乎没有限制的 I/O 并发,为更好地在将来支持流和 WebSockets 等功能铺平道路。

最新的 REE已经可以下载。你是否已经换到 Ruby 1.9?如果没有,是什么让你继续保持现状?

查看英文原文:Ruby Enterprise Edition End-of-Life, Phusion Focuses on Passenger

RubyRuby on RailsApacheDevOps语言 & 开发