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
评论