網站搜尋

紅帽公司如何悄悄地徹底改變了企業伺服器Linux


RHEL 10 成為第一個捨棄傳統打包並擁抱不可變的主要企業 Linux 發行版。看看我們是怎麼走到這一步的。

在 Linux 被引入之前,我曾是一名 Unix 系統管理員。在那個時候,我會下載源代碼,解壓縮它所附帶的 tarball 壓縮包,編譯它,並在需要更新系統或安裝新包時進行安裝。這真是令人頭疼。

隨著1989年Unix System V Release 4 (SVR4)的到來,情況得到了改善,出現了第一個包管理系統:pkgadd、pkgrm和pkginfo。像IBM這樣的公司,推出了其AIX Unix發行版以及系統管理介面工具(SMIT),而Sun則以Solaris 2.0發佈了自己的專有版本,這使我的系統管理生活輕鬆了許多。

與此同時,林納斯·托瓦茲(Linus Torvalds)在1991年宣布他正在為386(486)AT克隆機器開發一個(免費的)操作系統(他說這只是個愛好,不會像GNU那樣大規模和專業),看到人們接受Linux並認真對待它,他感到很高興。

套件管理器的演變

受到SVR4包管理器的啟發,第一批旨在使Linux成為商業伺服器的Unix競爭者的發行版採納了這一想法。到了1993-1994年,第一批專門為Linux設計的包管理器開始出現。Rik Faith的包管理系統以鮮為人知的Linux發行版BOGUS為先驅。使其不僅僅是附註的是,它啟發了1994年更重要的紅帽包管理器(RPM)的創建。大約在同一時間,Debian Linux的創始人Ian Murdock建立了Debian包管理器(dpkg)。

這些套件管理器包括基本的依賴追蹤。直到 1990 年代末,更精細的工具如 Debian apt 和 Red Hat yum 出現,自動依賴解析才成為標準。從這一點開始,套件管理成為幾乎所有人安裝和管理操作系統修補程式以及程序的方式。

自2010年代開始,不可變的Linux發行版的概念開始逐漸成形。在Docker興起後,容器的普及使得人們對於最小化的Linux發行版產生了興趣,這些發行版的核心系統文件被鎖定為唯讀,只能整體(即原子性)更新,而不是一個包一個包地進行更新。

使用不可變的 Linux 發行版,您不需要單獨修補問題;您在重啟過程中一次性修補所有,包括系統更新。這意味著所有內容作為一個單一的交易進行更新。如果出現問題,您可以通過重啟舊的映像輕鬆切換回工作系統。沒有麻煩,也沒有繁瑣。

這種架構方法顯著提升了系統的安全性和穩定性,通過防止未經授權的更改和減少系統損壞的風險來實現。與大多數主要的 Linux 發行版逐步更新的方式不同,一切都是一次性更新的。

除了容器的興起,安全性和可靠性也推動了平台設計的這一變化。由於核心系統是只讀的,伺服器對於惡意軟體、意外的錯誤配置和未授權的變更的脆弱性降低了。容器化是一個關鍵特徵,將應用程式與核心系統及彼此隔離,進一步減少攻擊面。不可變的發行版還簡化了維護,確保運行相同映像的每台伺服器都是一致且可預測的,這使得管理大規模部署變得更容易。

第一個主要的不可變Linux,CoreOS,於2013年出現,專為大規模運行容器而設計。其設計確保核心操作系統為只讀,更新以原子方式應用並作為新映像推出。這使它非常適合雲原生環境和Kubernetes集群。

2018年,紅帽公司看準了機會,以250億美元的低價收購了CoreOS。從CoreOS,紅帽公司創建了另外三個重要的Linux發行版。

這些中的第一個是 Fedora CoreOS,其設計宗旨是簡約和自動化、原子式更新。Fedora CoreOS 非常適合用作容器託管和 Kubernetes 集群。它使用 rpm-ostree 來管理不可變基礎,並允許額外的包或容器化工作負載。

接下來是 Fedora Silverblue,一個不可變的 Fedora Workstation 變體。Silverblue 將不可變性帶到了桌面,使用 Flatpak 進行應用程序管理,並使用 ostree 進行原子更新。

RHEL 10 採用不變的方式

最後,紅帽企業Linux(RHEL)10來了。沒錯:紅帽的標誌性作業系統RHEL 10,是第一個採用不可變方法的主要企業Linux發行版。

為什麼?在上個月於波士頓舉行的紅帽峰會上,RHEL 的高級產品行銷總監克里斯·威爾斯解釋道:

I talk to a lot of administrators, and they will tell me that just the bane of their existence is having to go through and update and upgrade systems. They know that they need to do it. They want to do it. They're like, why does it have to be so hard? And if you think about it, how we take and patch those systems today really comes from the Unix world that we came from 20 years ago. That's traditionally how we've done things. In the Unix/Linux world, we have small software packages. They're all tied together, all the dependencies you have to go to update them, and cross your fingers. It all works.  	

And we thought, maybe there's a better way to do this. So we got to thinking, "What if we containerized the operating system layer? What if I took and used that on my production systems? What if the next time I build a new set of systems, instead of doing it the traditional way, in package mode, what if I containerize both the application layer, containerize the OS, put that out into an image?" Now, all of a sudden, I have that image and I can deploy that out to those systems if something goes wrong. Instead of having to roll it back like in the old days, you just put the old image back there, because, again, it's all going to be immutable.

現在,紅帽並不是唯一一家發現不可變的Linux可以如此有用的公司。儘管像Ubuntu和SUSE Linux Enterprise Server(SLES)這樣的品牌不那麼家喻戶曉,但仍有許多專注於商業的不可變Linux發行版,包括Flatcar Container Linux、openSUSE MicroOS、Ubuntu Core和Talos Linux。還有一些以安全為首的不可變發行版,如Chainguard OS。

然而,這之間存在權衡。習慣於傳統套件管理的系統管理員必須適應新的工作流程。有些自定義還需要變通方法。例如,假設你需要更改一個套件。使用舊的方法這很簡單;然而,在不可變系統中,你必須重新啟動系統。這對於高可用性系統來說,可能會帶來很大的麻煩。

然而,紅帽公司深信未來不可變的 Linux 的優勢將超過其劣勢。歷史上,紅帽公司一直是主導的企業級 Linux。我不會對他們在進行這一根本性變革時下注。

每日透過我們的《今日科技》通訊將早上的熱門新聞發送到您的收件箱。

相關文章