服务器部署的决策与实践(1)服务器操作系统的选择

CentOS 8 生命周期的突然缩短,让我再次面对服务器操作系统的选择。

如果你使用一个公司的产品,但不向他付钱,那么你就只是用户,而非客户。网游行业的从业经验又告诉我,不付钱的用户是产品的一部分。

Red Hat 决定将 CentOS 8 的支持周期将从原来预计的 2029 年缩短到 2021 年年底,并劝大家都去用 CentOS Stream,或者买他们家的商业服务,就是一个很好的例证。原来的 CentOS 用户,现在要么选择成为 Red Hat 的编外测试人员,为他们的商业客户提供价值,要么选择成为“氪金玩家”。

商业行为毕竟不是慈善事业,我们没啥好说的,只是又到了做选择的时间。

本文是 服务器部署的决策与实践 系列的一部分。

首先,最容易的就是交钱,当然,在技术上也没啥好讨论。

你也可以选择 CentOS Stream ,但它是个滚动更新的发行版,官方也不推荐用于生产服务器。

滚动更新的一个极端是 Arch Linux,如果你和我一样用过 Arch,就比较容易理解滚动更新的发行版确实不适合做服务器。因为有些更新是会打破兼容性的,需要用户手动干预并且谨慎操作才能确保日常更新不会打破系统的平稳运行。好比你发现一个组件有安全漏洞,想打个安全补丁,运行了 yum update,结果就从 CentOS 7 升级到了 CentOS 8,原因只是你没留意官方的一个升级公告,不过就算留心也没用,总会有安全补丁是某次不兼容改动后才提供的,要么留着漏洞,要么打破兼容。在用 Arch 时,这样的事情大概半年就会发生一次,解决倒也都不难,发现出问题了,去官网找到升级公告和提示,照做就搞定。但这样的事情发生在生产环境就会干扰到业务的持续运行,运维可不希望没事找事。用 Crontab 升级系统补丁的日子也一去不复返了。

当然,CentOS Stream 毕竟是个面向服务器的发行版,不会像 Arch 那么激进,平时大概不会做出不兼容的改动。但是不管怎样,定位摆在那里—— RHEL 的演习版本,也就是说 RHEL 发布大版本之日,就是 CentOS Stream 经历阵痛之时,根据最近三个大版本的更新情况,这个间隔略超 4 年,也就是说即便官方非常保守,CentOS Stream 也只能是一个可以连续稳定运行 4 年左右的发行版。

这一点可以从 CentOS 的 FAQ 中找到依据:

7. What happens when CentOS Stream switches from RHEL 8 to RHEL 9 based content?

Around the time the RHEL 9 Public Beta is issued, an additional set of CentOS Stream repositories and ISOs will be available. The existing CentOS Stream repositories representing RHEL 8 bits will continue to be available, and changes to these bits will continue as before, until approximately one year after the general availability of RHEL 9. At that time, the older repositories will be discontinued, although sources will continue to be available.

As the cut-over approaches, Red Hat will evaluate the situation at that time to determine how long the overlap will be. CentOS Stream is envisioned for primary use in situations where pinning to a specific set of binaries for the long-term is not required. Therefore the goal of the overlap is to serve either specific development needs or to allow for time for testing and upgrades.

RHEL 9 公开测试版发布之后,CentOS Stream 就有 8 和 9 两个源可以用,期间用户可以选择升级 9 或继续使用 8 ,等到 9 正式发布大概一年后,8 的源就下线了。如此说来,比我上面的算法多了 1 年,大概在 5 年出头,但因为这次推迟了一年更新,距离下次更新就少了一年,总的来说,还是 4 年。

根据 Red Hat 的说法,对于有研发能力的用户,CentOS Stream 提供了一个参与建设的机会。但像我们这样的最终用户,失去了些许稳定性和长期的更新,却什么也没得到。

再有就是换其他发行版了,一个特殊的例子是 Rocky Linux,只有一个名字,还没发布任何实质内容的发行版,由 CentOS 的一个创始人发起,旨在继承 CentOS 最初的使命。类似的事情不是第一次发生,2009 年 Oracle 收购 Sun,引发人们对 MySQL 前途的担忧。此时 MySQL 的创始人发起了 MariaDB 项目。时至今日,MariaDB 发展不错,甚至取代了 MySQL 在 CentOS 中的位置。但它和 MySQL 已不再完全兼容,市场表现也有很大差距。回到当时,我想的问题是:MySQL 的创始人既然这么重视它,最初又为什么把它卖掉?当然,最初是卖给 Sun 而非 Oracle ,也许他没想到会有这一天。就像 CentOS 并入红帽的时候,也没想过会是今天的局面吧。Rocky 的 FAQ 特别强调了这会是一个社区驱动的项目,永远不会被出售或被商业利益驱使。而且在技术上,Rocky 要比 MariaDB 幸运,毕竟反正是 RHEL 的复制品,只要是 1:1 复制,叫什么又有什么关系呢。但总体上,我对此还是持悲观的态度,信任一旦丧失,重新建立谈何容易。受伤的用户们能相信 Rocky 不会重蹈 CentOS 覆辙吗?

最后是 CentOS 的老对手们,多少可以从这次事件中分得一些从流失的用户,但具体选择哪个发行版,和这次事件应该不会有太大的关系,就不展开了。

码力不足,原本想谈谈“软件版本的选择”,以 CentOS 8 事件做个引子,结果都绕在上面了。

更多

12KB的Excel导出库sheetex是怎么来的

这是一个关于前端 Excel 导出库 sheetex 的故事:我为什么要做这个库,它为什么会这么小,以及你是否值得一试。 如过你问我“为什么非要在前端导出”,那将是另一个故事。 我的数据导出史 不知道你是否还记得自己是从什么时候开始接触数据导出的? 我对自己的“数据导出史”还算有些印象:在还没有正式工作的时候,如果有人问我要数据,我会在数据库管理工具里写个查询语句,然后视对方的用途,导出成SQL 语句、CSV 文件或者Excel 等;待到工作了,需要开发面向最终用户的系统,就不能再这么手工处理,导出功能成为系统标配,用户点击一个按钮,就要下载到相应的文件。 最早是 CSV 格式,因为其生成相对容易,而且也可以通过 Excel 软件进行查看,加上主要是内部用户,偶有无法打开也只要简单培训就能解决。 但随着用户类型变得广泛起来,这种“偶尔”也逐渐变成无法忍受,那么干脆直接导出 Excel 文件吧,反正开源库也已经成熟,于是使用 SheetJS

By 熊立丁
用 Aria2 & AriaNg 搭建离线下载平台

用 Aria2 & AriaNg 搭建离线下载平台

环境 硬件:Mac Mini 2014 4C4G 操作系统:Debian 12 IP地址:192.168.2.2 流程 1. 切换到管理员权限 su root 2. 安装 aria2 apt install aria2 3. 以服务的形式运行 aria2 aria2c --enable-rpc --rpc-listen-all=true --rpc-allow-origin-all --enable-rpc 启动 rpc 服务 --rpc-listen-all=true 允许从任意 IP 访问 --rpc-allow-origin-all 允许浏览器跨域访问 4. 配置 nginx 增加站点用于放置前端界面

By 熊立丁
浙ICP备15043004号-1