对于哪种Linux发行版适用于生产服务器环境,哪些发行版不适用,社区上有很多想法,但是,很多感觉似乎是基于宗教的,并且很少提供支持证据。
假设我们正在尝试选择一个Linux发行版进行标准化(因为我们有兴趣保持环境尽可能的同质化),那么哪些标准很重要,并且您如何确定不同发行版如何满足这些标准?
对于哪种Linux发行版适用于生产服务器环境,哪些发行版不适用,社区上有很多想法,但是,很多感觉似乎是基于宗教的,并且很少提供支持证据。
假设我们正在尝试选择一个Linux发行版进行标准化(因为我们有兴趣保持环境尽可能的同质化),那么哪些标准很重要,并且您如何确定不同发行版如何满足这些标准?
Answers:
我目前在使用Linux已有十多年的环境中工作。办公室中的每个人都在台式机和服务器上使用不同的发行版。因此,分配的选择往往围绕着许多事物而没有特定的顺序:
关于选择每个系统的原因,这些只是我想到的几件事。在这项决定中,我看不到有人会指导或偏爱另一个发行版。多样性和选择可能很棒,并为您提供了一些非常好的选择来使项目快速启动,但这也是使您垂涎的绞索。确保您提前考虑了所需。计划系统的需求以及何时升级或淘汰系统。不要以为自己永远是维护它的人。
我将分享我在几个不同领域担任技术专家的经历...
(警告:这是一个有关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用作目标平台可以达成协议。像我这样的业余爱好者用户可以轻松地将在家中磨练的技能转移到我们的工作环境中。社区在成长。Slashdot,Freshmeat和LAMP堆栈统治!这是Linux的好时机。
至此,我负责Linux发行版的开发和评估,该发行版是专有ERP软件解决方案的平台。我坚持使用红帽。每隔一段时间,我会尝试另一个发行版(Mandrake,SuSE,Debian,Gentoo),但是会发现包装,硬件支持(服务器或外围设备),社区的(规模)或其他破坏交易的问题。
一个示例:我使用的是配备有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环境。
因此存在冲突...这些用户不理解为什么要限制他们使用应用程序或库的版本。老派管理人员仍在适应新范式。似乎植根于宗教的论点实际上只是人们如何发展各自技能的功能。
我今天看到了一个非常高级的DevOps Linux工程师职位的招聘广告,内容是:
必须精通基于Debian的Linux发行版(Ubuntu和变体都可以。RedHat通过,但不是首选)
因此,我猜它是双向的。我已经放弃了工作机会,因为我要管理的800台CentOS服务器已计划转换为Ubuntu。当然,Linux是Linux ...但是我不认为自己会像以前那样有效...我对Debian安装感到迷惑不解,希望使用基于RPM的发行版。我对各种平台的优缺点有激烈的争论(通常将Gentoo放在列表的底部)。
那么,什么适合您的环境呢?这取决于。我去过系统工程师负责决策的公司,以及开发人员为王的组织。我认为最好的安排是开发人员和支持系统的人员在平台上达成共识。但除此之外,请考虑长期支持,可用性,社区以及以最合适的方式容纳您的应用程序堆栈的内容。
有才华的开发人员应该能够在类似RHEL或类似Debian的环境中工作。而且,开发平台应该反映生产环境。你从那里去...