我目前正在研究 Ruby/Ruby on Rails 作为 Python/Django 的替代品。我的主要问题是,在 Linux 上安装 Ruby gems 和/或 Ruby on Rails 项目时,特别是一般的 dist 或 Gentoo 的最佳实践是什么还不清楚。
在 Gentoo 中,开发人员倾向于打包 gem。这是通过 portage 而不是 gem 安装它们的首选方式。但是我不知道这是否是正确的方法,因为您将始终缺少主要项目及其依赖项,您要么必须为其编写自己的 ebuild(没什么大不了的)并对其进行维护。那时我看不到任何更多优势,因为一旦我编写了自己的 ebuild,我就必须密切关注包以进行新的开发,因为包不会有任何神奇的颠簸。:-) 此外,Ruby 世界是一个快速移动的目标,并不是 dist 树中的所有打包 gem 都真正跟上速度。
另一方面,直接通过 Bundler 或直接通过 gem 包管理器安装似乎也有点不稳定。如果您不小心,您会绕过 diss 包管理器并有两个相互竞争的管理器。例如,dist 更新到 Ruby 1.9.4 并引入了一些特定于 dist 的特性和一些 gems 意外损坏。然而,他们为它修补了自己的包装宝石。或者,如果您使用 Bundler,项目在其依赖项的版本方面往往相当严格,因此,即使某个依赖项的安全更新可用,您也可能无法获得它,因为该项目明确指定了一个版本。所以你必须再次手动跳入。
现在,我很感激社区对处理此类事情的正确方法 (TM) 以及如何在生产服务器上正确维护 Ruby/Ruby on Rails 基础和多个项目(包括第三方项目)的意见。
请注意,这不是关于如何部署项目/应用程序。这是关于维护的最佳实践...
我是 Gentoo 的长期用户,无论是在桌面还是服务器上。作为一名软件工程师,我喜欢它的灵活性和可定制性(以及它的前沿和滚动发布的事实)。但是对于我的新服务器,我想使用不同的发行版。主要是因为编译所有内容会阻碍虚拟服务器,但也因为 Gentoo 过于前沿,有时更新应该(更多)正确测试和延迟。
(附带说明:这些年来,我已经成功部署/维护了几个 Gentoo 机器,而且大多数时候,事情进展得非常顺利,而且这些机器都很棒。)
因此,我想根据经验(而非意见)向社区寻求建议,哪些发行版最适合以下标准:
立即想到的是CentOS和Debian,但不幸的是,它们在软件包方面都已经过时了。
我正在关注Ubuntu,但与 Universe 或其他发行版相比,他们正式支持的软件(主要/受限存储库)相当小。我也不太确定他们对官方软件包的维护情况(关于安全修复),而且我真的不喜欢他们在做出影响用户的决定时的企业(= 封闭)心态。附带说明:我最近为朋友安装了 12.10 桌面,并没有留下深刻印象。
ArchLinux接近Gentoo,减去包编译,恕我直言。我自己还没有尝试过,但立即脱颖而出(消极地恕我直言)的是相当小的核心团队和缺少的安全团队。似乎没有专门的安全列表,他们最近才集成了包签名(我不知道这是否是强制性的)。还有相当多的软件包仅通过 AUR 或其他方式支持。关于这一点,我无话可说。
OpenSuSE也是我关注的东西,但我最后一次尝试 SuSE 是在内核 1.x 时代,老实说(当时我是一个非常年轻的极客:P)。所以我对它的现状几乎一无所知。
老实说,Fedora也是我考虑过的。它通常维护得很好,并且(如果它没有延迟几个月)有一个很好的发布时间表。另一方面,我读过很多关于 Fedora 18 的坏消息,尤其是关于升级路径。此外,它绝对是非常前沿的。
除了感谢您阅读本文并抽出宝贵时间之外,我无法在这篇相当长的帖子中添加太多内容。:-)
我觉得我需要更新我的问题。尽管我完全同意给出的答案,但它们并不是我真正想要的。所以这里有几点希望能澄清我的情况:
我已经维护服务器 10 多年了,所以(至少目前)我不考虑雇用某人来帮助我或减轻负载。
我知道我的 Linux 方法。它一直是我的主要系统超过 15 年左右。作为一名软件工程师和极客,我不会用它换取全世界。:)
我正在根据我提到的不同发行版的经验寻求建议。我知道我可以在虚拟机中安装所有这些(我最终会安装在候选名单上的那些),但即使我认为发行版 xy 很棒,但它绝对没有说明它的维护情况如何。或者一旦有新版本发布,这条路有多坎坷。只有时间可以证明。诸如此类的东西,我一直在寻找。一个星期的简单试运行无法显示的体验。基于仅长期使用发行版的经验的建议。
我还必须强调,我在上面原始帖子中的列表几乎总结了对我来说很重要的内容。
我目前正在考虑为我的托管项目建立一个新的基础设施。基本上它将被托管托管,重点关注基于 Django 的应用程序。当然,所有这些都将基于 Linux,使用 PostgreSQL 作为数据库,使用 nginx 或 Apache 作为 Web 服务器以及 Gunicorn 等。
现在我正在寻找可以租用的服务器系统市场,很难买到符合预算和所有标准的东西。所以想请教以下问题。
我能找到的所有好产品要么使用单个高端 XEON E3-12xx(Quads @ >= 3.2Ghz)或多核 Opteron(6000 或更旧的 8 核或更多 @ 2.00 - 2.40 GHz)。从 I/O POV 来看,两者通常都有带电池的 HW-RAID10、足够的 RAM 来满足我的需求(24-32 GiB ECC-RAM)和 1 Gbit/s 的上行链路。我发现的单一报价也相当不错,但基于两个 E5620 XEON,恕我直言,它们相当过时,并且该系统的价格与其他系统相同。
现在我被撕裂了。XEON 在我见过的每个综合基准测试中都优于 Opterons——强调综合。但我坚信,当涉及到服务器的工作时,许多内核确实提供了很大的好处,因为服务器的工作需要并行执行更多的工作(例如,上下文切换也更便宜)。但是由于每个内核的差异为 1 Ghz 或更多,我不再那么确定,因为就我而言,我正在比较不同的微架构(至强与皓龙)和不同代。
所以我想问社区:对于以应用程序为中心的 Web 服务器,它必须以较低的速率使用更多的内核还是以较高的速率使用更少的内核,并且还必须处理数据库负载?
邮件系统是另一回事。理想情况下,我希望在三个不同的服务器上拥有邮件、数据库和网络。但这不在预算之内。因此,根据我为 Web 服务器获得的系统,邮件系统也有可能最终出现在该系统上……我知道这不是最佳选择。我在这里担心来自邮件系统的所有小写操作会对 DB 和 Web 性能产生多大影响。以 32 GiB 的 RAM 为例,在不久的将来,数据库将完全适合 RAM,直到服务显着增长(如果有的话)。
一种可能的(或多或少是最佳的)场景:例如,8 核 Opteron 62xx @ 2 Ghz 机器上的 Web 和 DB(其他一切同上)以及较小的 E3-1230 上的邮件系统。但是我再次对 Opteron 的性能感到非常担忧。:( …
linux ×2
arch-linux ×1
email-server ×1
fedora ×1
gentoo ×1
multi-core ×1
opensuse ×1
opteron ×1
ruby ×1
rubygems ×1
ubuntu ×1
web-server ×1
xeon ×1