【51CTO评论】这两天关注CentOS的朋友们应该都知道,CentOS 6终于发布了。发布固然是一件好事,可是作为RHEL 6的克隆版,CentOS 6的发布时间距离RHEL 6发布的时间足足相差了8个月;而同样是RHEL 6的克隆版,甲骨文Unbreakable Linux 6在RHEL 6发布后一个月左右就已经推出。当然有人说甲骨文是有商业支持的,可同样是社区支持版本,Scientific Linux 6也能够在2011年5月发布——要知道,Scientific Linux的社区规模和用户规模相比CentOS要小得多。
诚然,对于服务器发行版而言,对于服务器版本升级的需求主要在补丁修补上,而像CentOS 5到CentOS 6这种大版本的升级,在生产服务器上是很少需要的,主要是应用在新进入的服务器上。不过,这并不意味着管理员们对于版本更新姗姗来迟不会表示怨言。standalone-sysadmin博客就表达了这方面的怨言,该博主在Twitter上抱怨道:
CentOS 6.0发布了。很好的时间点,再晚点的话我就要投奔其他的RHEL克隆版了。
这位SA为什么对发行版的更新频率表示如此的关切?以下是他的答案:
在1995年8月,红帽宣布推出Red Hat Commercial Linux 1.1(红帽商用Linux)。包含安装支持的费用是39.95美元(附加的服务需要额外付费)。这在当时是个新概念,因为非常多的开源支持者对在自由软件上花钱表示不置可否。
不过,这对于Linux在企业中的使用打开了新的一扇门,因为他们需要有厂商支持的软件。倒不是说Linux的使用率因为这件事而爆发,但的确为Linux的发展拓展了新的空间。
在今天,大部分企业用Linux发行版都是基于红帽和Debian的。红帽的Red Hat Enterprise Linux(RHEL)是个非常成功的发行版。我之所以关注RHEL,是因为我所工作的公司的IT基础架构是基于RHEL的标准的。
我的故事
红帽企业级Linux提供了稳定的环境和可靠的支持。新版本和软件升级经过了充分的测试,非常可靠。同时,它也不便宜。我叫过几次支持,红帽支持人员都快速解决了我的问题,一点儿数据都没丢过。
如果你的企业很大,也有钱花费在技术支持上,那么购买RHEL无疑是***的选择,所以一开始,我为我所在企业的基础架构购买了几个RHEL版本。然而后来我们发现,支持费用有越来越高的倾向,所以我们开始考虑其他方案。
大家也知道,从搭好的系统切换出去是很难的,尤其是这个系统用过、维护过几年之后。当时我还没有接触过puppet和CFengine这类神器,而我之前已经经历过一次从Slackware切换到RHEL的过程,实在不想再折腾一次了。
当时我的想法是,如果能找到个免费的RHEL克隆版,就可以轻易的切换过去,因为我的脚本都不用改!当然,免费RHEL克隆版就没有支持,不过既然我们已经做好了决定不给红帽付那么多钱,那么这种事情也是做好准备的。
结果我还真的找到了——CentOS。CentOS本质上是一个二进制兼容的RHEL版本。因为RHEL用的很多软件都是在GNU许可协议之下的开源软件,所以红帽的代码是开源的,CentOS就是使用了红帽的源代码,去除了所有Red Hat标识和其他版权文字,再重新打包成Community ENTerprise OS(社区企业级操作系统)。
很棒的想法,这也促使我立刻做出了全部迁移的决定。当我离开那家公司的时候,几乎每一台服务器都运行在CentOS之上。
问题
对于企业级系统架构,有几点是非常重要的。其中有一点就是及时性。
软件开发是个花时间的过程。而开发出来的软件,一般并不会立刻被打包进发行版当中(除了某几个非常前沿的发行版),而是会经过反复的测试,修改了bug之后才被加入。身为企业发行版,RHEL非常注重稳定性,所以其版本更新当中很少加入软件的大版本升级,而只接受小版本升级,而且经过重重测试。可以说,发行版发布的时候软件是什么版本,之后就一直是那个版本。
CentOS由于其发行的方式,决定了其追赶者的性质。这倒不是什么大问题,因为在企业的系统架构中是严禁随意对软件进行升级的。即使发行版的开发者、测试者和发布者经过了严密的测试,你仍然需要在企业的测试环境中先测试新版本,然后根据日程将升级滚动到生产环境当中。这个过程可以大大减少升级中出现问题的几率。
不过在有些时候,软件升级不仅是好看,而且还是必须的。比如,你的某个服务需要依赖某个软件的较新版本,或者某个软件在***的升级中修复了原先存在的安全漏洞。
这种时候就需要发行版做出快速的反映,而CentOS的表现实在不尽如人意。有人会说了,你如果真需要安全更新,那么就购买企业级支持。在我看来这是个鱼和熊掌不可兼得的事情。是要花钱更新,还是不花钱不更新,这跟企业整体的预算和盈利情况有关。身为SA,需要在公司的预算之内行动。
我的公司负担不起支持费用,所以我决定耐心等待CentOS进行更新。
对于CentOS,我十分欣赏,也十分感谢所有为CentOS做贡献的人。然而作为SA,我们需要实际些,因为要对企业的系统架构负责。
下图显示了CentOS的每个版本比RHEL晚了多少天:
可以清楚的看出,CentOS 6.0花费的时间远远超过了之前的版本。事实上,最近几个版本的延误情况似乎越来越糟。我个人没在CentOS项目里做过,不清楚这背后的原因。可能跟红帽的新策略有关(51CTO编辑注:虽然CentOS管理组通告说这对他们没影响),可能跟CentOS管理组的内乱有关……谁知道呢。整个开发的流程不够透明,我感到很郁闷,因为我需要了解更多。
结果,我不得不开始考虑其他的发行版。
其他选择
CentOS***的竞争者就是Scientific Linux,这个发行版由CERN,Fermilab和全球其他的实验室编译打包。这个发行版我还没深入尝试过,不过在尝试之前,建议大家先看看这个发行版都做了哪些定制。
RHEL Derivative上列出了好几个,不过我都还没尝试过。
我现在面临三个选择:付费用RHEL;换个别的发行版并希望它能够稳定发展;继续用CentOS并希望它能够稳定发展。说真的,我也不知道该选哪个。
不过我可以给大家提供一个建议:让你的系统架构尽可能的减少对底层操作系统的依赖性(或者说,让底层操作系统不那么重要)。这并不是说你不再需要给软件打补丁,不过在一个抽象化的系统架构上,你可以轻易的跟某个不再喜欢的OS厂商说再见。
你对此是怎么看的?欢迎分享你的想法!
【编辑推荐】