IT部门应如何选择标准Linux发行版?


74

对于哪种Linux发行版适用于生产服务器环境,哪些发行版不适用,社区上有很多想法,但是,很多感觉似乎是基于宗教的,并且很少提供支持证据。

假设我们正在尝试选择一个Linux发行版进行标准化(因为我们有兴趣保持环境尽可能的同质化),那么哪些标准很重要,并且您如何确定不同发行版如何满足这些标准?


4
我希望其他人向我解释如何选择组织的单个Linux发行版。我处于这种情况下,“常识”会告诉我选择RHEL或CentOS,但是除了商业支持外,我还没有听到很多关于为什么其中一个比另一个更好的事实主张。
wfaulk

Answers:


59

我目前在使用Linux已有十多年的环境中工作。办公室中的每个人都在台式机和服务器上使用不同的发行版。因此,分配的选择往往围绕着许多事物而没有特定的顺序:

  1. 历史 -显然,像RedHat和Debian这样的系统已经存在了很长时间。因此,“如果没有破裂就不要修复”的格言可以用于这些。如果发行版很好地支持该软件,则升级将变得更加容易。
  2. 熟悉 -与历史类似,但是我们都有我们的最爱。我不屑一顾Debian,然后迁移到Ubuntu(这是一个艰难的决定,因为我倾向于致力于社区)。相反,必须记住如何在十几个不同发行版上做事是痛苦的(更不用说从头开始构建的发行版了)。
  3. 支持 -我迁移到Ubuntu的主要原因是,我感谢他们在提供付费支持方面所做的努力。如果客户担心长期运行系统,那将是一个卖点。与RedHat的方法类似(但当时RPM一直在发生)。出于这个原因,我们也有许多RedHat服务器。
  4. 依赖关系 -某些软件更易于在某些发行版上使用,仅仅是因为依赖包更容易获得或构建。例如,RedHat上的oVirt。在某些发行版中,没有针对某些软件的软件包。您可以编译它,但是如果软件包在另一个发行版中在那里,您为什么还要编译呢?
  5. 粒度 -Gentoo之类的发行版可以更好地控制版本控制和软件切换粒度。其他发行版具有各种形式的“固定”功能,但是仍然不那么可控或可靠。
  6. 绑定 -虽然大多数发行版都可以从源代码进行编译,但是某些发行版要比其他发行版更好。例如,如果您的项目为扩展功能修补了现有库,则可能会产生影响。
  7. 漂亮 -一些发行版看起来更好。每个极客都知道这只是毛茸茸的(这些天您可能可以将其作为Web应用程序使用),但是有些客户对此种东西感到惊讶,我们都知道。
  8. 稳定性 -某些发行版会流化软件的“稳定”版本,而不是“测试”,“实验”等。这可能意味着如果您知道所构建的版本最终会在稳定性上达成共识,则可能意味着很多。您可能会在“实验性”的基础上进行开发,因为知道到您的项目完成时,它将达到“稳定”状态,并且值得信赖。
  9. 软件包管理 -如果您每天都在开发某件东西,并且一次可以将数千台机器投入生产,那么您可能希望有一些东西可以简化在这些系统上构建,维护和跟踪软件包的工作。
  10. 一致性 -对于同一发行版,这更多是一个论点。当人们可以将注意力集中在一个发行版而不是多个发行版上时,出错的次数更少(安全性的错误更少)。
  11. 可预测的发布时间表 -如果要确保您的软件继续受支持,计划的升级将提供某种类型的稳定性。
  12. 安全性 -一些发行版具有活跃的安全团队,其职责是立即对任何批准的软件包中的真实安全风险做出响应。

关于选择每个系统的原因,这些只是我想到的几件事。在这项决定中,我看不到有人会指导或偏爱另一个发行版。多样性和选择可能很棒,并为您提供了一些非常好的选择来使项目快速启动,但这也是使您垂涎的绞索。确保您提前考虑了所需。计划系统的需求以及何时升级或淘汰系统。不要以为自己永远是维护它的人。


对于那些在普通用户社区中使用Linux在桌面上进行安装的用户来说,#7漂亮确实是更多的因素。
麦哲伦

2
我还要添加可预测的发布时间表。您不想启动多服务器部署项目只是为了发现下周将发行新版本的发行版。或使用古老的软件包运行相同的旧发行版多年(咳嗽* rhel5 / centos5),而没有已知的升级日期。例如:Ubuntu每6个月发布一次新版本,4月每2年发布一次LTS版本。知道这一点有助于您更好地计划项目和资源。
Mxx

69

我将分享我在几个不同领域担任技术专家的经历...

(警告:这是一个有关Red Hat的故事,以及我如何从中成长。)

我在2000-2002年开始专业从事Linux工作。这是在Red Hat和Red Hat Professional Editions(6.x,7.x,8.0)广泛采用期间。这些都可以免费下载,也可以打包下载。它们很容易在计算机零售商店中找到。

对我来说,这样做的好处是使业余爱好者和家庭用户可以使用在企业中开始出现的相同产品。我目前的工作是将客户服务器系统从商业Unices(HP-UX,AIX和SCO)迁移到Red Hat平台。

节省了大量成本!用4万美元的Compaq ProLiant英特尔服务器替换10万美元以上的HP9000 PA-RISC服务器绝对是成本和性能上的胜利。

那么,为什么要使用Red Hat?

红帽是第一个进入这个市场的公司,获得了关键的业务,供应商和硬件支持。看到大型应用程序供应商将Red Hat用作目标平台可以达成协议。像我这样的业余爱好者用户可以轻松地将在家中磨练的技能转移到我们的工作环境中。社区在成长。SlashdotFreshmeatLAMP堆栈统治!这是Linux的好时机。

至此,我负责Linux发行版的开发和评估,该发行版是专有ERP软件解决方案的平台。我坚持使用红帽。每隔一段时间,我会尝试另一个发行版(MandrakeSuSEDebianGentoo),但是会发现包装,硬件支持(服务器或外围设备),社区的(规模)或其他破坏交易的问题。

一个示例:我使用的是配备有Digi Serial扩展PCI-X卡Esker VSIfax生产传真软件的 Compaq / HP ProLiant硬件。后两个仅对Red Hat操作系统提供驱动程序支持。在某些情况下,软件仅以二进制或RPM形式提供,这妨碍了在其他Linux变体上的易于使用。

在信息技术世界中势头很重要
没有人愿意成为一个建议失败的解决方案或最终成为孤儿的项目的人,因此您坚持安全的选择。我当时正在管理一个技术堆栈,该堆栈需要可靠地工作并且需要多层支持。此时选择另一种分布将是正确的。是。不负责任的。


红帽蜜月在2003年因我不再使用该软件的专业版本而结束。红帽企业Linux是替代产品,并且带来了很多麻烦……成本(昂贵的基于订阅的模型),可访问性(缩减用户群和社区)以及对未来的普遍困惑。

我开始寻找替代方案,重新评估了Gentoo,Debian和SuSE。我无法在技术堆栈的所有组件上获得正确的支持。我被迫坚持使用Red Hat生态系统...由于与Red Hat Enterprise Linux有关的巨额成本变动,我最终在运行寿命结束的几年中运行了经过高度修改的Red Hat 8.0 。直到RHEL克隆成熟(Whitebox Linux和后来的CentOS),我才真正准备脱离标准。

红帽衍生物的主要优点是和与支付RHEL版本的二进制兼容性。甚至有可能在RHEL和CentOS之间执行就地转换,反之亦然。我继续使用类似RHEL的系统,直到下一个职业发展为止。


后来我发现自己进入了高频金融交易行业,负责关键的自动交易系统的研发和Linux工程。通过仔细的测试和调整,这个世界的重点是速度。同样,硬件支持是关键。我需要专用的网卡专用的硬件,仅针对RHEL或类似RHEL的系统认证的服务器硬件或应用程序库。即使在可以为其他Linux变体进行编译的情况下,也会出现社区因素。当我需要研究问题时,通常是可以在Red Hat Bugzilla报告中追溯到注释或评论的问题,有时,我只是提交补丁或请求下一个版本。

在我开始研究低延迟网络和内核调整时,我开始剖析了普通的RHEL内核和RHEL MRG Realtime内核。我注意到发行时需要做的工作……Vanilla kernel.org内核有200多个补丁。阅读评论并提交注释。您可能会sysctl遇到一些小问题,例如暴露参数或应用更多理智的默认设置。红帽公司需要人们来修补,测试和修复这些问题。我没有看到其他Linux发行版同样的承诺...增加了企业平台是保证有真正的安全,bug修正和反向移植支持的事实


因此,我最终搬到了另一家几乎在服务器台式机上都是Gentoo的金融公司……这对我来说是一场灾难。来自Red Hat和CentOS的世界,我在Gentoo设置中遇到了许多稳定性和管理问题。版本控制是最大的问题,但社区支持的减少和缺乏实际测试也是令人担忧的问题。我开始将RHEL引入环境,因为我们的某些第三方软件需要它...

但是有一个问题……我的开发人员习惯了Gentoo,并拥有相对容易的核心库和应用程序版本升级路径。他们无法适应采用Red Hat Enterprise Linux标准化的固定主要版本。在开发和发布过程中遇到了以下问题:为什么无法将GLIBC 2.7移植到RHEL 5.x上,或者为什么某些编译器或库版本不可用。当被告知在主要版本的RHEL / CentOS之间进行升级本质上需要完全重建时,他们对解决方案失去了很多信心。

在这一点上,我意识到对于想要站在前沿/前沿的开发人员来说,Red Hat的发展太慢了。RHEL 6.x是急需的升级版本,但是一旦我开始采访那些遵循DevOps原则的初创公司和公司时,这个主题就变得更加明显。


如今,
越来越多的开发人员和Linux用户来自非Red Hat,非SuSE,非企业Linux环境。

  • 他们正在使用Ubuntu或Debian ...
  • 他们不必处理老式硬件或大型供应商的支持。
  • 他们从头开始(自己支持)编写自己的应用程序。
  • 虚拟化和云计算将硬件层抽象化,因此不必担心时髦的RAID控制器驱动程序,PCI-X外设或二进制分布式管理代理。
  • 这些用户需要他们习惯的工具和用户领域。

因此存在冲突...这些用户不理解为什么要限制他们使用应用程序或库的版本。老派管理人员仍在适应新范式似乎植根于宗教的论点实际上只是人们如何发展各自技能的功能。

我今天看到了一个非常高级的DevOps Linux工程师职位的招聘广告,内容是:

必须精通基于Debian的Linux发行版(Ubuntu和变体都可以。RedHat通过,但不是首选)

因此,我猜它是双向的。我已经放弃了工作机会,因为我要管理的800台CentOS服务器已计划转换为Ubuntu。当然,Linux是Linux ...但是我不认为自己会像以前那样有效...我对Debian安装感到迷惑不解,希望使用基于RPM的发行版。我对各种平台的优缺点有激烈的争论(通常将Gentoo放在列表的底部)。

那么,什么适合您的环境呢?这取决于。我去过系统工程师负责决策的公司,以及开发人员为王的组织。我认为最好的安排是开发人员和支持系统的人员在平台上达成共识。但除此之外,请考虑长期支持,可用性,社区以及以最合适的方式容纳您的应用程序堆栈的内容。

有才华的开发人员应该能够在类似RHEL或类似Debian的环境中工作。而且,开发平台应该反映生产环境。你从那里去...


3
@dyasny听到Debian的观点会很有趣。
ewwhite 2012

@ewwhite您可能想让sourceforge的管理员介入。知道吗?
dyasny

@dyasny没有评论:)
ewwhite

4
这位先生,是迄今为止我在serverfault中遇到的最好的帖子。我想我会对此进行物理复制,然后放在我的书架上和工作区中。您回响了整个时代系统工程师的说法。很棒,很棒的帖子。
Soham Chakraborty

1
@SohamChakraborty哦,我只是觉得老了...但是今天,在阅读了该网站上的招聘广告后,我突然发现,我当天使用Red Hat的原因与人们在其上要求使用Ubuntu等的原因相同。今天的系统。这是他们在桌面上所熟悉的!
ewwhite
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.