关于哪些 Linux 发行版适合生产服务器环境,哪些不适合,社区有很多感觉,但是,很多这种感觉似乎是基于宗教的,很少提供支持证据。
假设我们正在尝试选择一个 Linux 发行版来标准化(因为我们有兴趣使我们的环境尽可能保持同质化),哪些标准很重要,您如何确定不同发行版满足这些标准的程度?
关于哪些 Linux 发行版适合生产服务器环境,哪些不适合,社区有很多感觉,但是,很多这种感觉似乎是基于宗教的,很少提供支持证据。
假设我们正在尝试选择一个 Linux 发行版来标准化(因为我们有兴趣使我们的环境尽可能保持同质化),哪些标准很重要,您如何确定不同发行版满足这些标准的程度?
我将分享我在几个不同领域担任技术专家的经历……
(注意:这是一个关于 Red Hat 的故事,以及我是如何在它的职业生涯中成长起来的)
我从 2000 年到 2002 年开始专业从事 Linux 工作。这是在广泛采用 Red Hat 和Red Hat 专业版(6.x、7.x、8.0)期间。这些都可以免费下载以及盒装套装。它们很容易在计算机零售店中找到。
对我来说,这有利于业余爱好者和家庭用户使用企业中开始出现的相同产品。我此时的工作是将客户服务器系统从商业 Unices(HP-UX、AIX 和 SCO)迁移到 Red Hat 平台。
节省的成本是可观的!用价值 4 万美元的 Compaq ProLiant 英特尔服务器替换价值 10 万美元以上的 HP9000 PA-RISC 服务器在成本和性能方面取得了绝对的胜利。
那么,为什么选择红帽?
红帽是第一个进入该市场的公司,获得了关键业务、供应商和硬件支持。看到大型应用程序供应商使用 Red Hat 作为目标平台,就达成了交易。像我这样的爱好者用户能够轻松地将在家中磨练的技能转移到我们的工作环境中。社区在发展。Slashdot、Freshmeat和LAMP 堆栈统治!这是 Linux 的好时机。
至此,我负责开发和评估 Linux 发行版作为专有 ERP 软件解决方案的平台。我坚持使用红帽。每隔一段时间,我会尝试另一个发行版(Mandrake、SuSE、Debian、Gentoo),但会发现包装、硬件支持(服务器或外围设备)、社区(规模)或其他一些破坏交易的问题。
举个例子:我使用的是 Compaq/HP ProLiant 硬件,配备了Digi Serial 扩展 PCI-X 卡和Esker VSIfax 生产传真软件。后两者仅对 Red Hat 操作系统提供驱动程序支持。在某些情况下,软件仅以二进制或 RPM 形式交付,无法在其他 Linux 变体上轻松使用。
信息技术世界中的势头很重要
没有人愿意推荐失败的解决方案或最终成为孤儿的项目,因此您坚持安全的选择。我正在管理一个需要可靠工作并有多层支持的技术堆栈。在那个时候选择不同的发行版就可以了。到过。不负责任的。
2003 年,随着该软件专业版的停止,我的红帽蜜月期结束了。Red Hat Enterprise Linux是替代品并带来了相当多的包袱......成本(昂贵的基于订阅的模型),可访问性(缩小用户群和社区)以及对未来的普遍困惑......
我开始寻找替代品,重新评估 Gentoo、Debian 和 SuSE。我无法在我们技术堆栈的所有组件上获得正确的支持。我被迫坚持使用 Red Hat 生态系统……由于与 Red Hat Enterprise Linux 相关的巨大成本转移,我最终在其生命周期结束后的几年里运行了高度修改的 Red Hat 8.0。直到 RHEL 克隆成熟(Whitebox Linux,以及后来的CentOS),我才准备真正离开我的标准。
Red Hat 衍生产品的主要优势过去和现在都是与付费 RHEL 版本的二进制兼容性。甚至可以在 RHEL 和 CentOS 之间执行就地转换,反之亦然。我继续使用类似 RHEL 的系统工作,直到我做出下一个职业转变......
后来我进入了高频金融交易行业,负责关键自动交易系统的研发和 Linux 工程。这个世界的重点是速度,通过仔细的测试和调整。同样,硬件支持是关键。我会有特定的网卡,专门的硬件、仅针对 RHEL 或 RHEL 类系统进行认证的服务器硬件或应用程序库。即使在可以为其他 Linux 变体编译的情况下,社区因素也会出现。当我需要研究问题时,通常情况下问题可以追溯到 Red Hat Bugzilla 报告中的注释或评论,或者有时,我只是提交补丁或请求下一个版本.
当我开始研究低延迟网络和内核调优时,我开始剖析现有的 RHEL 内核和RHEL MRG Realtime内核。我注意到发布时有多少工作...... 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 是一个非常需要和受欢迎的升级,但是当我开始采访那些遵守DevOps 原则的初创公司和公司时,这个主题变得更加明显。
今天……
越来越多的开发人员和 Linux 用户来自非 Red Hat、非 SuSE、非企业 Linux 环境。
所以有冲突……这些用户不明白为什么他们会在应用程序或库版本上受到限制。老派管理员仍在适应新范式。似乎植根于宗教的论点实际上只是人们如何发展各自技能的功能。
我今天看到一则招聘非常高级的 DevOps Linux 工程师职位的招聘广告,内容如下:
所以我想它是双向的……我已经放弃了工作机会,因为我要管理的 800 台 CentOS 服务器计划转换为 Ubuntu。当然,Linux 就是 Linux……但我觉得我并没有那么高效……我在 Debian 安装上摸索过,希望使用基于 RPM 的发行版。我曾就各种平台的优点进行过激烈的争论(通常将 Gentoo 放在列表的底部)。
那么什么适合您的环境?这取决于。我曾在系统工程师推动决策的公司工作过,也曾在开发人员为王的组织工作过。我认为最好的安排是开发人员和支持系统的人就平台达成一致。但除此之外,请考虑长期支持、可用性、社区以及以最合适的方式容纳您的应用程序堆栈的内容。
有才华的开发人员应该能够在类似 RHEL 或类似 Debian 的环境中工作。而且,开发平台应该反映生产环境。你从那里去...
我目前在一个使用 Linux 十多年的环境中工作。办公室里的每个人都在他们的桌面和服务器上使用不同的发行版。因此,分布的选择往往围绕着许多没有特定顺序的事物:
关于选择每个系统的原因,这些只是我想到的几件事。在这个决定中,我没有看到任何指导灯或一个发行版比另一个发行版的偏好。多样性和选择可能很棒,可以为您提供一些非常好的选择来快速启动项目,但它也是可以绞死您的绞索。确保你提前考虑你将需要什么。计划系统的需求以及系统何时升级或停用。不要假设您将永远是维护它的人。