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


关于Linux发行版适用于生产服务器环境的情况有很多社区感觉,但是,很多这种感觉似乎都是基于宗教的,并且很少提供支持证据。

假设我们试图选择Linux发行版进行标准化(因为我们有兴趣保持我们的环境尽可能均匀),哪些标准很重要,以及如何确定不同发行版符合这些标准的程度?


70
2017-12-27 21:05




我希望别人解释一下 他们如何为他们的组织选择一个Linux发行版 对我来说。我处于这种情况,“常识”会告诉我选择RHEL或CentOS,但除了商业支持外,我还没有听到很多关于为什么其中一个比另一个更好的事实主张。 - wfaulk
serverfault.com/questions/53954/centos-vs-ubuntu - Iain


答案:


我目前在一个使用Linux十多年的环境中工作。办公室里的每个人都在桌面和服务器上使用不同的发行版。因此,分配的选择倾向于围绕许多事情,而不是特定的顺序:

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

对于选择每个系统的原因,这些只是我头脑中的一些问题。在这个决定中,我没有看到任何一个发行光或偏好另一个发行版。多样性和选择可以很好,并为您提供一些非常好的选择,让项目快速启动,但它也是可以挂起你的套索。确保你提前考虑你需要的东西。规划系统的需求以及系统何时升级或退役。不要以为你永远是维持它的人。


59
2017-12-28 02:45



对于普通用户社区而言,#7 Prettiness确实更适合那些在桌面上使用Linux的安装。 - Magellan
我还想补充一下 可预测的发布时间表。您不希望启动多服务器部署项目,只是为了发现下周新版本的发行版即将发布。或者用古老的包裹运行相同的旧发行版多年(咳嗽* rhel5 / centos5),没有知道升级日期。例如:Ubuntu每6个月发布一个新版本,4月每2年发布一次LTS版本。了解这有助于您更好地安排项目和资源。 - Mxx


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

(注意:这是一个关于红帽的故事以及我如何专业地成长起来)

我在2000 - 2002年开始专业地使用Linux。这是在红帽和红帽的广泛采用期间 红帽专业版(6.x,7.x,8.0)。这些可以免费下载以及盒装包装。它们很容易在电脑零售店中找到。

对我来说,这有利于吸引业余爱好者和家庭用户 相同 产品开始在企业中出现。我此时的工作是将客户服务器系统从商业Unices(HP-UX,AIX和SCO)转移到Red Hat平台。

节省的成本是巨大的!使用价值4万美元的Compaq ProLiant英特尔服务器取代10万美元+ HP9000 PA-RISC服务器,在成本和性能方面取得了绝对的成功。

那么,红帽为什么呢?

Red Hat是第一个进入这个市场的人,获得了关键业务,供应商和硬件支持。看到大型应用程序供应商使用Red Hat作为目标平台来完成交易。像我这样的爱好者用户能够轻松地将在家中磨练的技能转移到我们的工作环境中。社区在增长。 Slashdot的鲜肉 和 LAMP堆栈 统治!这是Linux的好时机。

到目前为止,我负责开发和评估Linux发行版作为专有ERP软件解决方案的平台。我坚持使用Red Hat。每隔一段时间,我会尝试另一个发行版(Mandrake的SuSE的Debian的Gentoo的),但会发现包装,硬件支持(服务器或外围设备)的问题 (大小) 社区或其他一些交易破坏者。

例如:我使用的是Compaq / HP ProLiant硬件 Digi串行扩展PCI-X卡 和 Esker VSIfax生产传真软件。后两者只有Red Hat操作系统的驱动程序支持。在某些情况下,软件仅以二进制或RPM形式提供,从而无法在其他Linux变体上轻松使用。

动力在信息技术世界中很重要
没人想成为推荐的人 失去 最终成为孤儿的解决方案或项目,因此您坚持安全选择。我正在管理一个需要可靠工作并具有多层支持的技术堆栈。在那一点上选择不同的分布将是公正的。是。不负责任的。


2003年红帽蜜月为我结束了 停止专业版 的软件。 红帽企业Linux 是替代品,带来了相当多的包袱......成本(基于订阅的昂贵型号),可访问性(缩小用户群和社区)以及对未来的普遍混淆......

我开始寻找替代方案,重新评估Gentoo,Debian和SuSE。我无法在技术堆栈的所有组件上获得正确的支持。我不得不坚持使用Red Hat生态系统......由于与Red Hat Enterprise Linux相关的大量成本转移,我最终运行了一个经过高度修改的Red Hat 8.0 for 年份 过了它的临终。直到RHEL克隆成熟(Whitebox Linux, 然后, CentOS的)我准备了一个真正的远离我的标准。

红帽衍生品的主要优势是和  与付费RHEL版本的二进制兼容性。甚至可以在RHEL和CentOS之间执行就地转换,反之亦然。我继续使用类似RHEL的系统,直到我接下来的职业生涯......


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

当我开始深入研究低延迟网络和内核调优时,我开始剖析股票RHEL内核和 RHEL MRG实时 内核。我注意到在发布版本时有多少工作......一个vanilla kernel.org内核的200多个补丁。阅读评论和提交说明。你可能有些小事 sysctl 暴露的参数或更严格的默认值。 红帽支付人员修补,测试和修复这些问题。 我没有看到其他Linux发行版的相同承诺...添加一个事实,即企业平台保证具有真正的安全性,错误修正和后端支持 年份


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

但是有一个问题......我的开发人员已经习惯了Gentoo并且拥有相对容易的核心库和应用程序版本的升级路径。他们无法适应红帽企业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和变种没问题。红帽 凑合但是  优选的)

所以我猜它有两种方式......我已经离开了工作机会,因为我要管理的800 CentOS服务器将被转换为Ubuntu。当然,Linux就是Linux ......但我并不认为自己会变得如此有效......我已经无法使用Debian安装,并希望使用基于RPM的发行版。我对各种平台的优点进行了激烈的争论(通常将Gentoo放在列表的底部)。

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

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


69
2017-12-28 03:21



@dyasny听到Debian观点会很有趣。 - ewwhite
@ewwhite你可能想让sourceforge的管理员投入。知道吗? - dyasny
@dyasny没有评论:) - ewwhite
这位先生,是迄今为止我在服务器故障中遇到过的最好的帖子。我想我会把这个的实际副本放在我的架子上和我的工作立方体里。你回应了整个时代系统工程师的声明。很棒,很棒的帖子。 - Soham Chakraborty
@SohamChakraborty哦,我只是感觉老了......但是今天,在这个网站上看到一个招聘广告后,我突然意识到我在当天使用Red Hat的原因与人们在他们的网站上请求Ubuntu等的原因相同。系统今天。这是他们在桌面上熟悉的东西! - ewwhite