为什么运维(SA)普遍反对使用 CentOS 7 ?
作者:卡卷网发布时间:2024-12-25 01:19浏览数量:88次评论数量:0次
前两天写了个答案:
为什么国内互联网公司喜欢用Centos而不是Ubuntu?今天来回答一下这个为什么不用CentOS7?
其实问题时效性有点久了,现在是2020年,大部分生产环境早就普及了CentOS7
阿里云默认的系统版本好像就是7了,7.x的小版本号是啥忘记了
这个问题和之前的Ubuntu都是一样的原理,但起码CentOS7的版本升级风险比变更为Ubuntu小多了,但也花了2、3年的时间才在各互联网公司的生产环境逐步演进,为什么需要那么多时间?
我用之前回答《为什么国内互联网公司喜欢用Centos而不是Ubuntu?》的思路,重新回答这个问题,也是适用的
简单来说,就是为什么不用 xx新技术 代替 yy旧技术?
下面正文的CentOS vs Ubuntu ,请读者自动脑补为 CentOS 6 vs CentOS 7
感谢~
正文如下:
而我想说的更多是人、组织、风险与收益方面的深层原因
首先从RedHat或者CentOS(CentOS 6)入门系统运维工作的人应该是最多的,包括整个IT互联网的相关人才、文档化或者没文档化下来的经验是最丰富的,也就是说,CentOS(CentOS 6)的运维经验,在整个业界是最具有规模效应的,别小看这个规模效应。例如Java系的规模效应,远远高于PHP、Python等,也是同样的道理。
Ubuntu 是基于 Debian 架构而 CentOS 基于 Red Hat Enterprise Linux,内核版本不同意味着很多经验无法复用。
CentOS 相比 Ubuntu 来说是当做更加稳定的服务器版本来开发的,主要因为其软件版本更新更加低频以及它具备更加深度完善的测试流程,如果的确需要使用最新版本的软件,一般来说可以通过手工编译安装的方法,对于专业的运维工程师来说是小菜一碟。
我们要知道,生产环境的稳定性是运维团队的头号KPI,所以,没有金刚钻就别揽瓷器活。
做个不恰当的比喻,更好操作系统的差异,相当于你让一位Java程序员改用Python做项目,不都是编码吗,而且Python入门那么简单,又不用安装JVM等环境,码农们为什么不用?
所以,不熟悉Ubuntu而贸然把其用于生产环境,一旦出了系统异常:
- 谁来负责?
- 谁来Debug?
- 谁来背锅?
是提出使用Ubuntu的开发人员吗?
如果是的话,建议先写好邮件,承诺主动承担更换系统的所有风险,并抄送CTO、技术VP、技术总监们
最后谈谈风险和收益
风险:
更换系统版本的风险是所有未知的可能的线上故障,如果你运营是一个日活百万的高并发业务系统,1小时宕机可能损失几千万;也有可能Ubuntu在高并发压力下性能没CentOS稳定,导致需要更多的服务器机器做热备或者扩容,成本增加几百万;
收益:
更换系统版本的收益是开发人员发布代码更方便了,提高了一些编码效率;这一点有很多办法来解决,比如容器化或者更完善的CI\CD机制等;
我们运维团队曾经支撑过做视觉识别的开发团队,大家都知道很多深度学习框架的入门文档都是基于Ubuntu + NVIDIA驱动 + docker的形式跑起来的,所以他们一开始也在生产环境用Ubuntu环境,后来问题太多了,运维也很难帮忙解决,最后才逐渐迁移到CentOS环境
其实对于开发同学来说,也就是付出了一次性的在CentOS安装配置各种软件和驱动的时间而已,是一个很显性的时间成本。
但是,如果用Ubuntu作为生产环境的隐性风险,未来可能需要多花几倍的时间或者金钱去解决。
如果你是CEO或者CTO,你会怎么选?
程序员们写代码的目的是什么?
是为了业务运营地更好更稳定,为了提高用户使用的体验后,代码才有价值
同理,各种新兴技术也是一样
CentOS在绝大多数互联网公司中垄断地位不是一朝一夕形成的,如果要整个相关技术生态改成Ubuntu这样的新技术,包括IaaS、PaaS等,具体一点就是除了操作系统,还有其配套的硬件驱动、虚拟化、容器化、运行在其之上的数据库、缓存中间件等所有关联生态,这些都需要一点点的在业务中试用并反馈结果给开发、运维人员,以便他们对系统底层技术不停的进行适配和改进。
这个过程想想就头大,不是给你的PC从Windows装成Linux那么简单。
技术是为了业务服务,我们的互联网公司的老板们不是技术极客,不是为了科研论文而活,他们是为了实实在在的营收,搞那么一大阵势的底层架构调整,是为了所谓的“技术洁癖”,或者所谓追求技术社区的主流水平等等理由,如果你是技术总监以上的位置的话,估计很快就要下岗了~
而老旧的CentOS因为在业界和各种业务领域已经使用了很多年了,经过了无数的项目的试炼并不断的更新和发展,看似技术老旧,但是它的适配性和稳定性是经过时间的考验的。所以使用旧技术往往后期项目出幺蛾子的可能性较小。
美国怎么玩,和国内互联网没什么关系,我们没有追赶或者需要和他们同步的需求,他们爱用啥就用啥,对于追去新技术方面,美国肯定比我们激进。
但技术是为了业务服务的,中大型厂,在没有业务瓶颈或者硬伤的前提下,做这种变革能有什么好处。现实情况是,业务决策的管理者不会把这些当做团队的核心目标,具体不多说了。
看看腾讯、网易,多少用了十几年的技术架构还运行地好好的,以技术狂魔的眼光,肯定不把这些垃圾代码、架构放在眼里,但完全不妨碍腾讯、网易一年赚几十上百亿。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
相关推荐

你 发表评论:
欢迎