我将分享一下我在几个不同领域担任技术工作者的经验...
(注意:这是一个关于红帽公司以及我如何在其中成长职业生涯的故事。)
我于2000-2002年开始专业使用Linux。这正是人们广泛采用红帽公司的Red Hat Professional Editions (6.x, 7.x, 8.0)时期。这些版本可以免费下载,也可以购买打包套装,它们很容易在电脑零售店中找到。
对我来说,这带来了一个好处,就是让爱好者和家庭用户与正在逐渐出现在企业中的相同的产品产生了共鸣。当时我的工作是将客户服务器系统从商业版的UNIX(HP-UX、AIX和SCO)迁移到红帽平台上。
节省的成本是惊人的!用$40k的康柏ProLiant Intel服务器替换掉价值超过$100k的HP9000 PA-RISC服务器在成本和性能方面是绝对的胜利。
那么,为什么选择红帽?
红帽是第一个进入这个市场的,获得了关键的商业、供应商和硬件支持。看到大型应用程序供应商将红帽作为目标平台使用,使交易达成。像我这样的业余用户能够轻松地将在家中培养的技能转移到工作环境中。社区正在壮大。Slashdot、Freshmeat和LAMP堆栈统治着!对于Linux来说,这是一个好时代。 到这个阶段,我负责开发和评估Linux发行版作为专有ERP软件解决方案的平台。我一直坚持使用Red Hat。偶尔我会尝试其他发行版(Mandrake,SuSE,Debian,Gentoo),但总是会遇到打包问题、硬件支持(服务器或外设)、社区(规模)或其他无法忍受的问题。 一个例子:我使用的是配备了Digi串行扩展PCI-X卡和Esker VSIfax生产传真软件的Compaq/HP ProLiant硬件。后两者只支持Red Hat操作系统的驱动程序。在某些情况下,软件只以二进制或RPM形式提供,无法轻松在其他Linux变体上使用。 在信息技术世界中,势头至关重要后来我发现自己身处高频金融交易行业,在那里我负责关键自动化交易系统的研发和Linux工程。这个世界强调的是速度,通过仔细的测试和调优实现。再次强调,硬件支持至关重要。我需要特定的网络卡、专用硬件、服务器硬件或仅适用于RHEL或类似系统的应用程序库。即使在可以编译为其他Linux变体的情况下,也会涉及到社区因素。当我需要研究一个问题时,通常能在红帽Bugzilla报告的注释或评论中找到解决方案,或者有时,我会提交一个补丁或请求下一个版本的修复。
当我开始深入研究低延迟网络和内核调优时,我开始剖析原始的RHEL内核和RHEL MRG实时内核。我注意到在发布过程中有多少工作量...对于一个vanilla kernel.org内核来说,需要200多个补丁。阅读评论和提交说明。你可能会发现一些小细节,比如暴露sysctl
参数或者应用更合理的默认值。Red Hat付钱给人们来修补、测试和解决这些问题。我没有看到其他Linux发行版有同样的承诺...再加上企业平台保证拥有真正的安全性、错误修复和后移支持,可以持续多年。
今天...
越来越多的开发人员和Linux用户来自于非Red Hat、非SuSE、非企业级Linux环境。
所以存在冲突... 这些用户不明白为什么他们会受限于应用程序或库版本。老派管理员仍在适应新范式。看起来像是宗教信仰根源的论点实际上只是人们发展自己技能集的方式。
我今天看到了一则招聘广告,招聘一个非常高级的DevOps Linux工程师职位:
必须精通至专家级别的基于Debian的Linux发行版(Ubuntu和其变种可以接受。Red Hat勉强可以,但不是首选)。 所以我猜这两种方式都可以……我曾经放弃了一些工作机会,因为我将要管理的800台CentOS服务器被计划转换为Ubuntu。当然,Linux就是Linux……但我觉得我可能不会像我本可以那样有效。我曾经在Debian安装中遇到困难,希望使用基于RPM的发行版。我曾经就各种平台的优点进行过激烈的争论(通常把Gentoo排在最后)。 那么对于你的环境来说什么才是正确的选择呢?这取决于情况。我曾经在一些公司里,系统工程师主导决策,也有一些组织里开发人员为王。我认为最好的安排是开发人员和支持系统的人员在平台上达成一致。但除此之外,还要考虑长期支持、易用性、社区以及以最合适的方式适应你的应用堆栈。 一个有才华的开发人员应该能够在类似RHEL或Debian的环境中工作。而且,开发平台应该与生产环境相一致。从那里开始……