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

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

社区对于哪些 Linux 发行版适合生产服务器环境、哪些不适合有着很多的看法,然而,这种看法似乎大多是基于宗教的,很少提供支持证据。

假设我们试图选择一个 Linux 发行版来实现标准化(因为我们有兴趣让我们的环境尽可能的同质化),那么什么标准是重要的,以及如何确定不同的发行版满足这些标准的程度?

答案1

我目前工作的环境已经使用 Linux 十多年了。办公室里的每个人都在自己的桌面和服务器上使用不同的发行版。因此,发行版的选择往往围绕以下几个方面进行,没有特定的顺序:

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

这些只是我想到的关于选择每个系统的原因的几点。在这个决定中,我没有看到任何指导方针或对某个发行版的偏好。多样性和选择可能很棒,可以为您提供一些非常好的选择,让您快速启动项目,但它也可能成为您的绞索。一定要提前考虑你需要什么。规划系统的需求以及系统何时升级或退役。不要以为你总是维护它的人。

答案2

我将分享我在几个不同领域作为技术专家工作的经历……

(注意:这是一个关于红帽以及我如何在红帽的陪伴下成长的故事)

我从 2000-2002 年开始专业使用 Linux。当时正值 Red Hat 和Red Hat 专业版(6.x、7.x、8.0)。这些软件可以免费下载,也可以作为盒装套装使用。它们在计算机零售店很容易找到。

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

成本节省非常可观!用 4 万美元的 Compaq ProLiant Intel 服务器取代 10 万美元以上的 HP9000 PA-RISC 服务器,在成本和性能方面绝对胜出。

那么,为什么是 Red Hat?

Red Hat 是第一个进入这个市场的公司,获得了关键的业务、供应商和硬件支持。看到大型应用程序供应商将 Red Hat 用作目标平台,这促成了这笔交易。像我这样的业余用户能够轻松地将在家里磨练的技能转移到我们的工作环境中。社区正在壮大。斜线点鲜肉LAMP 堆栈统治!这是 Linux 的美好时光。

到那时,我负责开发和评估 Linux 发行版作为专有 ERP 软件解决方案的平台。我坚持使用 Red Hat。时不时地,我会尝试另一个发行版(曼德拉草苏西DebianGentoo),但会发现包装、硬件支持(服务器或外围设备)、(尺寸)社区或其他一些破坏交易的因素。

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

信息技术世界中的动力至关重要
没有人愿意成为推荐失败解决方案或项目最终会变得孤立,因此你要坚持安全的选择。我当时管理着一个需要可靠运行并拥有多层支持的技术堆栈。在那个时候选择不同的发行版将是……不负责任的。


2003 年,我与 Red Hat 的蜜月结束了,专业版停产该软件。红帽企业 Linux是替代品,并带来了不少负担......成本(昂贵的订阅模式)、可访问性(缩小用户群和社区)以及对未来的普遍困惑......

我开始寻找替代方案,重新评估 Gentoo、Debian 和 SuSE。我无法获得对我们技术堆栈所有组件的正确支持。我被迫坚持使用 Red Hat 生态系统……由于与 Red Hat Enterprise Linux 相关的成本变化很大,我最终运行了经过高度修改的 Red Hat 8.0过了它的生命周期。直到 RHEL 克隆成熟(白盒Linux, 然后,CentOS) 我准备真正地脱离我的标准。

Red Hat 衍生产品的主要优势是与付费 RHEL 版本二进制兼容。甚至可以在 RHEL 和 CentOS 之间进行就地转换,反之亦然。我继续使用类似 RHEL 的系统,直到我做出下一个职业转变...


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

当我开始深入研究低延迟网络和内核调优时,我开始剖析 RHEL 内核,并RHEL MRG 实时内核。我注意到发布时做了多少工作……200 多个针对 vanilla kernel.org 内核的补丁。阅读评论和提交说明。您可能有一些小事情,例如sysctl暴露参数或应用更合理的默认值。Red Hat 付钱给人们来修补、测试和修复这些问题。我没有看到其他 Linux 发行版做出同样的承诺……此外,企业平台保证具有真正的安全性、错误修复和反向移植支持


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

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

此时,我意识到 Red Hat 的发展速度对于想要走在前沿的开发人员来说太慢了。RHEL 6.x 是一个急需且受欢迎的升级,但当我开始采访订阅了 RHEL 的初创公司和公司时,这一主题变得更加明显。DevOps 原则


今天...
越来越多的开发人员和 L​​inux 用户来自非 Red Hat、非 SuSE、非企业 Linux 环境。

  • 他们正在使用 Ubuntu 或 Debian...
  • 他们不必处理老式硬件或大型供应商的支持。
  • 他们从头开始编写自己的应用程序(自支撑)。
  • 虚拟化和云计算抽象了硬件层,因此对古怪的 RAID 控制器驱动程序、PCI-X 外围设备或二进制分布式管理代理的担心甚至不在考虑范围内。
  • 这些用户想要他们习惯的工具和用户空间。

所以存在冲突……这些用户不明白为什么他们会受到应用程序或库版本的限制。老派管理员仍在适应新范式. 论点似乎根植于宗教的其实只是人们如何发展各自技能的功能。

今天我看到一则招聘高级 DevOps Linux 工程师的广告,上面写着:

必须精通基于 Debian 的 Linux 发行版(Ubuntu 及其变体也可以。Red Hat过得去, 但不是首选

所以我想这两者都有好处……我放弃了工作机会,因为我管理的 800 台 CentOS 服务器计划转换为 Ubuntu。当然,Linux 就是 Linux……但我觉得自己的效率不够高……我笨手笨脚地安装了 Debian,希望使用基于 RPM 的发行版。我曾就各种平台的优点展开过激烈的争论(通常 Gentoo 排在最后)。

那么什么才是适合您的环境的呢?这要视情况而定。我曾在系统工程师主导决策的公司工作过,也曾在开发人员为王的组织工作过。我认为最好的安排是开发人员和支持系统的人员就平台达成一致。但除此之外,还要考虑长期支持、可用性、社区以及以最合适的方式容纳您的应用程序堆栈。

一名优秀的开发人员应该能够在类似 RHEL 或 Debian 的环境中工作。而且,开发平台应该反映生产环境。您可以从那里开始...

相关内容